— StudioDigital

Archive
Keynote hacking

Keynote s’ouvre au Physical computing!!! Il est possible de commander votre présentation Keynote avec des capteurs divers grâce à KeynoteHijack. Cette application a été développé à la base avec l’idée de contrôler les présentations Keynote avec des tags RFID.

J’ai développé KeynoteHijack en cocoa, keynote est commandé avec applescript depuis objective-c directement. Je poste ici la version compilée et toutes les sources codes.

Image_5.png

J’ai utilisé le superbe module pour parler par le port série en cocoa depuis ce site http://www.harmless.de/cocoa.php de l’auteur Andreas Mayer

Le logiciel est en version 0.2alpha pour le moment, manque de temps pour le finaliser en une version mieux écrite et avec plus d’options… C’est plutôt stable pour l’instant et simple à utiliser.

Je poste également le code pour Arduino qui peut servir à tester l’application et comprendre les instructions de l’API.

Par exemple pour aller au frame 2 de la présentation keynote il faut envoyer ça depuis l’Arduino :

 Serial.print(2,DEC);  Serial.print(";");  delay(1000);

Toujours finir avec « ; » c’est l’indication de la fin de message

Pour aller sur next frame ou previous frame :

 Serial.print("next");  Serial.print(";");  delay(1000);
 Serial.print("previous");  Serial.print(";");  delay(1000);

L’option send only differences est utile dans le cas d’un lecteur RFID qui envoi en permanence le n° de tag, donc le code va envoyer seulement les différences par rapport au dernier message reçu.

application – binaries KeynoteHijack0.2Binary.zip

arduino exemple keynoteHijackArduino.zip

source codes KeynoteHijack.zip

Read More

Voici un exemple très simple comment on peut exécuter appleScript depuis l’Objective-C et écouter la réponse.
- (BOOL)isPlaying
{

NSString *sourceScript = [NSString stringWithFormat:@"tell application \"Keynote\" to playing"];
NSAppleScript *script = [[NSAppleScript alloc] init];
NSDictionary *reponse = nil;
NSAppleEventDescriptor *result;

[script initWithSource:sourceScript];
[script compileAndReturnError:nil];

result = [script executeAndReturnError:&reponse];


if ([[result stringValue] isEqualToString:@"false"]) { return NO; } else { return YES; }
}
Read More

J’ai essayé de commander la présentation Keynote par le code. La documentation est très pauvre là dessus. Après qq essais j’ai reussi de trouver les commandes de base pour la lecture de la présentation… Insérer le code dans l’AppleScript Editor et ouvrez une présentation dans Keynote

Voici le code simpleCode.scpt

Ce que je préfère, c’est commander Keynote depuis le Terminal directement (ça donne des idées avec stdout ;)). Dans cette exemple je lance la présentation et je vais sur une frame précise :

osascript -e 'tell application "Keynote" to tell slideshow 1 to start'

osascript -e 'tell application "Keynote" to tell slideshow 1 to show slide 4' osascript -e 'tell application "Keynote" to tell slideshow 1 to name'

Pour explorer keynote par le code la seule documentation que j’ai pu trouver est dans l’AppleScript Editor > Window > Library puis appuyer sur + pour ajouter une appli, puis choisir Keynote

Image-5.jpg

Read More