Le lecteur audio
Transcription
Le lecteur audio
Girder et NetRemote Table des matières Introduction.........................................................................................................................................................2 Configuration de Girder.......................................................................................................................................2 Structure du fichier htpc.gml...............................................................................................................................3 Au démarrage du PC............................................................................................................................................3 Remarques sur la conception...............................................................................................................................3 Les commandes X10............................................................................................................................................4 Le contrôleur MIDI : G_MIDIController............................................................................................................4 L'hôte VST : G_VSTHost....................................................................................................................................4 Le mixeur audio : G_AudioMix..........................................................................................................................4 Le contrôleur de media : G_MediaController.....................................................................................................5 Les actions globales : G_Global..........................................................................................................................5 Démarrage de Girder : G_PowerON.................................................................................................................10 Arrêt du PC : G_PowerOFF...............................................................................................................................11 Le lecteur audio : G_PCReader.........................................................................................................................11 Le lecteur DVD : G_DVDReader......................................................................................................................11 Le lecteur HD DVD : G_HDDVDReader.........................................................................................................13 Le lecteur Blu-Ray DVD : G_BRDVDReader..................................................................................................13 Les touches clavier pour MPC...........................................................................................................................14 Le plugin DVBViewer.......................................................................................................................................15 Page 1/19 Girder et NetRemote Introduction Ce document décrit mon utilisation de Girder en relation avec NetRemote Il s'appuie sur mon fichier htpc.gml J'utilise la vresion 5 de Girder De plus j'ai installé le plugin Variable Conditional Configuration de Girder Menu File>Settings – Main – General Settings – Onglet General – Start With Windows : coché – Plug-in Settings – Onglet Plugins – Auto enable plugins : coché – Liste des plugins chargés – CD/DVD Event (version 4) – Communication Server – Device Notify driver – Generic Transport Plugin (version 5) – Keyboard – Lua Misc Function Library (version 4) – Mouse Control – Scheduler – SendMessage – SimpleTimer – TaskCreate – TaskSwitch – Tree Script – USB-UIRT driver – Window Conditional – X10-CM1X – Onglet X10-CM1X – Comport : COM 3 (ceci est valable pour mon système) – Device : CM11 or CM12 – Communication Server – Run Server : coché – Server Port : 20005 – Server Password : girder – Allow Remote Code : coché – Automation – NetRemote (version 4) – Onglet Generic Config – Enable NetRemote : coché Menu File>Component Manager (version 5) – Communications Page 2/19 Girder et NetRemote – NetRemote – Onglet Generic Config – Enable NetRemote : coché – Log Messages : coché Structure du fichier htpc.gml Le fichier est constitué des groupes suivant : – G_MIDIController : regroupe les actions liées à l'application de contrôle MIDI – G_ VSTHost : regroupe les actions liées à l'application hôte VST – G_AudioMix : regroupe les actions qui définissent les paramètres du logiciel de contrôle de la carte son – G_MediaController : regroupe les action du logiciel de contrôle des medias audio et video – G_Global : regroupe les actions disponibles à tout moment et communes aux autres groupes – G_PowerON : regroupe les actions exécutées au démarrage de Girder – G_PowerOFF : regroupe des les actions exécutées à l'arrêt du PC – G_PCReader : regroupe les actions liées au lecteur audio – G_DVDReader : regroupe les actions liées à la lecture des DVD standards – G_HDDVDReader : regroupe les actions liées à la lecture des HD-DVD – G_BRDVDReader : regroupe les actions liées à la lecture des Blu-Ray DVD – G_SATReader : regroupe les actions liées à l'application satellite Au chargement du fichier par Girder, les groupes G_PCReader, G_DVDReader, G_HDDVDReader, G_BRDVDReader et G_SATReader sont désactivés Au démarrage du PC Quand le PC démarre il exécute automatiquement Girder, celui-ci émet l'évènement GirderOpen, qui déclenche la macro M_TurnAllON, qui entre autre allume le moniteur du PC Si le PC est démarré par son bouton d'allumage ce sont les seuls évènements qui se passent. Si le PC est démarré par la télécommande en sélectionnant le bouton B.pchc de la page P.Accueil du groupe HOME de la télécommande, il y a envoi des évènements qui initialise le PC comme préampli audio-video, qui entre autre allume les amplis de puissance et démarre certains logiciels Remarques sur la conception Un groupe commence par G_, un sous-groupe par SG_, un sous-sous-groupe par SSG_, une macro par M_. On a la possibilité de choisir différents lecteurs audio et video. Pour cela j'ai introduit une variable pour chaque lecteur, qui précise s'il est le lecteur choisi : – foobar : pour Foobar – winamp : pour Winamp – mpc : pour Media Player Classic (MPC) – zp : pour Zoom Player (ZP) – pdvd : pour PowerDVD – wdvd : pour WinDVD La variable est à 1 si le lecteur est sélectionné, sinon à 0 Page 3/19 Girder et NetRemote Les commandes X10 Pour allumer/éteindre certains appareils j'utilise des modules AM12 et LM12 pilotés par un module CM11 USB. J'utilise les codes suivant : – Lumière : House Code = A, Unit Code = 1 – Moniteur : House Code = B, Unit Code = 1 – Amplis : House Code = C, Unit Code = 1 – Tuner : House Code = C, Unit Code = 2 – Satellite : House Code = C, Unit Code = 4 – Préampli-Phono : House Code = C, Unit Code = 3 Le contrôleur MIDI : G_MIDIController On trouve dans ce groupe les actions liés au contrôleur MIDI : c'est un clavier MIDI virtuel qui permet de piloter les plugins VST, j'utilise VMC (Virtual MIDI Controller) – M_Run (RUN_MIDIC) : macro, exécute le contrôleur MIDI si celui-ci ne l'est pas – Close : ferme le contrôleur MIDI s'il est en cours d'exécution – a-j : envoie les touches clavier a-j au contrôleur MIDI. Les codes MIDI suivant sont associés à ces touches : a : CC,1,0,0 (Sélectionne PC et CD) b : CC,1,0,1 (Sélectionne Tuner) c : CC,1,0,2 (Sélectionne Aux) d : CC,1,0,3 (Sélectionne Phono) e : CC,1,0,4 (Sélectionne Multi-CH) f : CC,1,64,127 (Extd Surround) g : CC,1,64,0 (Direct) h : CC,1,7,1 (Vol+) i : CC,1,7,2 (Vol-) j : CC,1,7,0 (Mute) L'hôte VST : G_VSTHost Regroupe les actions liées à l'hôte VST, j'utilise ici Console – M_Run : macro, exécute l'hôte VST si celui-ci ne l'est pas – M_Close : macro, ferme l'hôte VST s'il est en cours d'exécution – SetRate44 : positionne une fréquence audio de 44,1Khz pour l'hôte VST – SetRate48 : positionne une fréquence audio de 48Khz pour l'hôte VST – SetRate96 : positionne une fréquence audio de 96Khz pour l'hôte VST – Play : active la sortie audio de l'hôte VST – M_ResetTo44 : macro, redémarre l'hôte VST avec une fréquence de 44,1Khz – M_ResetTo48 : macro, redémarre l'hôte VST avec une fréquence de 48Khz – M_ResetTo96 : macro, redémarre l'hôte VST avec une fréquence de 96Khz Le mixeur audio : G_AudioMix Regroupe les actions liées au mixeur audio, j'utilise ici PatchMix qui gère la carte son E-MU 1820m – M_SetRate44 : macro, charge une session audio à 44,1Khz dans le mixer audio – M_SetRate48 : macro, charge une session audio à 48Khz dans le mixer audio Page 4/19 Girder et NetRemote – M_SetRate96 : macro, charge une session audio à 96Khz dans le mixer audio Le contrôleur de media : G_MediaController Regroupe les actions liées au controlleur de media, j'utilise MediaBridge qui fonctionne en accord avec NetRemote – M_Run (RUN_MEDIABRIDGE) : macro, exécute le contrôleur de media, si celui-ci ne l'est pas, informe NetRemote une fois que l'application est prête – M_Close : macro, ferme le contrôleur de media s'il est en cours d'exécution Les actions globales : G_Global On trouve dans ce groupe toutes les actions qui peuvent être exécutées à tout moment On trouve entre parenthèses l'évènement qui déclenche l'action – SG_Controls : groupe d'actions pour simuler le clavier et la souris – SSG_Keyboard : groupe d'actions pour simuler certaines touches du clavier – LK_Arrow (L_KEYB) : flèche gauche – RK_Arrow (R_KEYB) : flèche droite – UK_Arrow (U_KEYB) : flèche haut – DK_Arrow (D_KEYB) : flèche bas – SSG_Mouse : groupe d'actions pour simuler le comportement d'une souris – R_Mouse (R_MOUSE) : déplace la souris vers la droite – UR_Mouse (UR_MOUSE) : déplace la souris vers droite/haut – UL_Mouse (UL_MOUSE) : déplace la souris vers gauche/haut – DR_Mouse (DR_MOUSE) : déplace la souris vers droit/bas – DL_Mouse (DL_MOUSE) : déplace la souris vers gauche/bas – L_Mouse (L_MOUSE) : déplace la souris vers la gauche – U_Mouse (U_MOUSE) : dépalce la souris vers le haut – D_Mouse (D_MOUSE) : déplace la souris vers le bas – LC_Mouse (LCLICK_MOUSE) : exécute un clic gauche – DLC_Mouse (LDCLICK_MOUSE) : exécute un double-click gauche – SG_Readers : les actions pour activer les lecteurs audio et vidéo : chaque action informe NetRemote du lecteur utilisé – SetMPC (MPCHC) : positionne MPC comme lecteur vidéo – SetZP (ZOOMPLAYER) : positionne Zoomplayer comme lecteur vidéo – SetPowerDVD (POWERDVD) : positionne PowerDVD comme lecteur vidéo – SetWinDVD (WINDVD) : positionne WinDVD comme lecteur vidéo – SetWinamp (WINAMP) : positionne Winamp comme lecteur audio – SetFoobar : positionne Foobar comme lecteur audio – SG_Light : les actions qui agissent sur la lumière ambiante L'allumage/extinction de la lampe est réalisé par un module X10 LM12 (House Code = A, Unit Code = 1, Function Code = BRIGHT/DIM, Repeat Count = 10) qui reçoit ses ordres du module CM11, l'action est progressive – M_LightON (LIGHT_ON) : macro, allume la lumière – M_LightOFF (LIGHT_OFF) : macro, éteint la lumière – LightSwitch (LIGHT_SWITCH) : allume/éteint la lumière – SG_Monitor : les actions pour allumer/éteindre le moniteur du PC L'allumage/extinction du moniteur PC est réalisé par un module X10 AM12 (House Code = B, Unit Code Page 5/19 Girder et NetRemote – – – – – – – = 1, Function Code = ON/OFF, Repeat Count = 1) qui reçoit ses ordres du module CM11 – M_MonitorON (MONITOR_ON) : macro, allume le moniteur du PC – M_MonitorOFF (MONITOR_OFF) : macro, éteint le moniteur du PC – MonitorSwitch (MONITOR_SWITCH) : macro, allume/éteint le moniteur du PC SG_Amplis : les actions pour allumer/éteindre les amplis L'allumage/extinction des amplis est réalisé par un module X10 AM12 (House Code = C, Unit Code = 1, Function Code = ON/OFF, Repeat Count = 1) qui reçoit ses ordres du module CM11 – M_AmplisON (AMPLIS_ON) : macro, allume les amplis – M_AmplisOFF (AMPLIS_OFF) : macro, éteint les amplis – AmplisSwitch (AMPLIS_SWITCH) : macro, allume/éteint les amplis SG_Tuner : les actions pour allumer/éteindre le Tuner L'allumage/extinction du Tuner est réalisé par un module X10 AM12 (House Code = C, Unit Code = 2, Function Code = ON/OFF, Repeat Count = 1) qui reçoit ses ordres du module CM11 – M_TunerON (TUNER_ON) : macro, allume le tuner – M_TunerOFF (TUNER_OFF) : macro, éteint le tuner SG_Sat : les actions pour allumer/éteindre le boîtier satellite L'allumage/extinction du boîtier satellite est réalisé par un module X10 AM12 (House Code = C, Unit Code = 4, Function Code = ON/OFF, Repeat Count = 1) qui reçoit ses ordres du module CM11 – M_SatON (SAT_ON) : macro, allume le boîtier satellite – M_SatOFF (SAT_OFF) : macro, éteint le boîtier satellite SG_Phono : les actions pour allumer/éteindre le préampli phono L'allumage/extinction du préampli phono est réalisé par un module X10 AM12 (House Code = C, Unit Code = 3, Function Code = ON/OFF, Repeat Count = 1) qui reçoit ses ordres du module CM11 – M_PhonoON (PHONO_ON) : macro, allume le préampli phono – M_PhonoOFF (PHONO_OFF) : macro, éteint le préampli phono SG_AudioSessions : regroupe les actions qui définissent le contexte audio – M_Session44 : macro, positionne l'ensemble des paramètres d'une session audio en 44,1Khz – CloseCurrInput : ferme l'entrée courante si c'est une entrée vidéo – DisableAudioVideo : on désactive tous les groupes audio et vidéo – SetVSTHost44 : on redémarre le VSTHost avec une fréquence de 44,1Khz si ce n'est pas le cas – CurrInputIsSelectedInput : l'entrée sélectionnée devient l'entrée courante – SetAudioVolToZero : met le volume audio à zéro – SetAudioDirect : correspondance direct des canaux (stéréo en stéréo, multi-canaux en multi-canaux) – PeqON : active la correction paramétrique – BmsON : active le Bass Mahagement – M_Session48 : macro, positionne l'ensemble des paramètres d'une session audio en 48Khz – M_Session96 : macro, positionne l'ensemble des paramètres d'une session audio en 96Khz SG_SetDisplay : regroupe les actions qui sélectionne le diffuseur – M_SetMonitor (SET_MONITOR) : macro, positionne le moniteur PC comme diffuseur – M_SetTV (SET_TV) : macro, positionne le téléviseur comme diffuseur – M_SetVP (SET_VP) : macro, positionne le vidéoprojecteur comme diffuseur SG_SelectSource : regroupe toutes les actions qui sélectionne la source audio ou vidéo utilisée et qui positionne le contexte correspondant – M_SelectPC (SRC_PC) : macro, sélectionne le PC comme source audio (lecture de la musique stoquée sur disque dur) et positionne le contexte audio correspondant – SelectedInputIsPC : on a sélectionné l'entrée PC – PCReady : on informe NetRemote que le PC est prêt si l'entrée courante est déjà le PC – ExitIfCurrInputIsPC : on sort si l'entrée courante est déjà le PC Page 6/19 Girder et NetRemote StopCurrReader : stoppe le lecteur en cours CloseVideoReader : ferme le lecteur video ou sat s'il est en cours – SetCurrInput : positionne la nouvelle entrée courante – SetAudioVolToZero : met le volume à 0 – SetSession44 : positionne la session audio en 44,1Khz – SetInputPC : positionne le PC comme source audio – EnablePCReader : active le groupe G_PCReader – RunPCReader : démarre le lecteur audio (dans mon utilisation, le lecteur audio utilisé est Winamp qui est démarré dès le départ avec MediaBridge, et qui est toujours en mémoire) – PCReady : informe NetRemote qu'on attend la prochaine commande – PlayDefault : joue la playlist par défaut M_SelectTuner (SRC_TUNER) : macro, sélectionne le Tuner comme source audio et positionne le contexte audio correspondant – SelectedInputIsTuner : on a sélectionné l'entrée Tuner – TunerReady : on informe NetRemote que le PC est prêt si l'entrée courante est déjà le Tuner – ExitIfCurrInputIsTuner : on sort si l'entrée courante est déjà le Tuner – StopCurrReader : stoppe le lecteur en cours – CloseVideoReader : ferme le lecteur video ou sat s'il est en cours – SetCurrInput : positionne la nouvelle entrée courante – SetAudioVolToZero : met le volume à 0 – SetSession44 : positionne la session audio en 44,1Khz – SetInputTuner : positionne le Tuner comme source audio – TunerReady : informe NetRemote qu'on attend la prochaine commande M_SelectAux (SRC_AUX) : macro, sélectionne l'entrée Aux comme source audio et positionne le contexte audio correspondant – SelectedInputIsAux : on a sélectionné l'entrée Aux – AuxReady : on informe NetRemote que le PC est prêt si l'entrée courante est déjà l'entrée Aux – ExitIfCurrInputIsAux : on sort si l'entrée courante est déjà l'entrée Aux – StopCurrReader : stoppe le lecteur en cours – CloseVideoReader : ferme le lecteur video ou sat s'il est en cours – SetCurrInput : positionne la nouvelle entrée courante – SetAudioVolToZero : met le volume à 0 – SetSession96 : positionne la session audio en 96Khz – SetInputAux : positionne l'entrée Aux comme source audio – AuxReady : informe NetRemote qu'on attend la prochaine commande M_SelectPhono (SRC_PHONO) : macro, sélectionne l'entrée Phono comme source audio et positionne le contexte auddio correspondant – SelectedInputIsPhono : on a sélectionné l'entrée Phono – PhonoReady : on informe NetRemote que le PC est prêt si l'entrée courante est déjà l'entré Phono – ExitIfCurrInputIsPhono : on sort si l'entrée courante est déjà l'entrée Phono – StopCurrReader : stoppe le lecteur en cours – CloseVideoReader : ferme le lecteur video ou sat s'il est en cours – SetCurrInput : positionne la nouvelle entrée courante – SetAudioVolToZero : met le volume à 0 – SetSession96 : positionne la session audio en 96Khz – SetInputPhono : positionne l'entrée Phono comme source audio – PhonoReady : informe NetRemote qu'on attend la prochaine commande – – – – – Page 7/19 Girder et NetRemote – – – – M_SelectDVD (SRC_DVD) : macro, on se prépare à lire un DVD, on positionne le contexte audio et vidéo correspondant – SelectedInputIsDVD : on a sélectionné la lecture de DVD – DVDReady : informe NetRemote qu'on attend la prochaine commande si on est déjà en lecture de DVD – ExitIfCurrInputIsDVD : on sort si on est déjà en lecture de DVD – StopCurrReader : stoppe le lecteur en cours – CloseVideoReader : ferme le lecteur video ou sat s'il est en cours – SetCurrInput : positionne la nouvelle entrée courante – SetAudioVolToZero : met le volume à 0 – SetSession48 : positionne la session audio en 48Khz – SetInputMultiCH : positionne l'entrée multi-canaux – EnableDVDReader : active le groupe G_DVDReader – RunDVDReader : exécute le lecteur logiciel de DVD – DVDReady : informe NetRemote qu'on attend la prochaine commande M_SelectHDDVD (SRC_HDDVD) : macro, on se prépare à lire un HD DVD, on positionne le contexte audio et vidéo correspondant – SelectedInputIsHDDVD : on a sélectionné la lecture de HD DVD – HDDVDReady : informe NetRemote qu'on attend la prochaine commande si on est déjà en lecture de HD DVD – ExitIfCurrInputIsHDDVD : on sort si on est déjà en lecture de HD DVD – StopCurrReader : stoppe le lecteur en cours – CloseVideoReader : ferme le lecteur video ou sat s'il est en cours – SetCurrInput : positionne la nouvelle entrée courante – SetAudioVolToZero : met le volume à 0 – SetSession48 : positionne la session audio en 48Khz – SetInputMultiCH : positionne l'entrée multi-canaux – EnableHDDVDReader : active le groupe G_HDDVDReader – RunHDDVDReader : exécute le lecteur logiciel de HD DVD – HDDVDReady : informe NetRemote qu'on attend la prochaine commande M_SelectBRDVD (SRC_BRDVD) : macro, on se prépare à lire un BR DVD, on positionne le contexte audio et vidéo correspondant – SelectedInputIsBRDVD : on a sélectionné la lecture de BR DVD – BRDVDReady : informe NetRemote qu'on attend la prochaine commande si on est déjà en lecture de BR DVD – ExitIfCurrInputIsBRDVD : on sort si on est déjà en lecture de BR DVD – StopCurrReader : stoppe le lecteur en cours – CloseVideoReader : ferme le lecteur video ou sat s'il est en cours – SetCurrInput : positionne la nouvelle entrée courante – SetAudioVolToZero : met le volume à 0 – SetSession48 : positionne la session audio en 48Khz – SetInputMultiCH : positionne l'entrée multi-canaux – EnableBRDVDReader : active le groupe G_BRDVDReader – RunBRDVDReader : exécute le lecteur logiciel de BR DVD – BRDVDReady : informe NetRemote qu'on attend la prochaine commande M_SelectCD (SRC_CD) : macro, on se prépare à lire un CD audio, on positionne le contexte audio correspondant – SelectedInputIsCD : on a sélectionné l'entrée CD – CDReady : on informe NetRemote que le PC est prêt si l'entrée courante est déjà le CD – ExitIfCurrInputIsCD : on sort si l'entrée courante est déjà le CD Page 8/19 Girder et NetRemote StopCurrReader : stoppe le lecteur en cours CloseVideoReader : ferme le lecteur video ou sat s'il est en cours – SetCurrInput : positionne la nouvelle entrée courante – SetAudioVolToZero : met le volume à 0 – SetSession44 : positionne la session audio en 44,1Khz – SetInputCD : positionne le CD comme source audio – EnableCDReader : active le groupe G_PCReader – RunCDReader : démarre le lecteur audio (dans mon utilisation, le lecteur audio utilisé est Winamp qui est démarré dès le départ avec MediaBridge, et qui est toujours en mémoire) – CDReady : informe NetRemote qu'on attend la prochaine commande – M_SelectSAT (SRC_SAT) : macro, on se prépare à regarder le satellite, on positionne le contexte audio et vidéo correspondant – SelectedInputIsSAT : on a sélectionné la lecture du satellite – SATReady : informe NetRemote qu'on attend la prochaine commande si on est déjà en lecture du satellite – ExitIfCurrInputIsSAT : on sort si on est déjà en lecture du satellite – StopCurrReader : stoppe le lecteur en cours – CloseVideoReader : ferme le lecteur video ou sat s'il est en cours – SetCurrInput : positionne la nouvelle entrée courante – SetAudioVolToZero : met le volume à 0 – SetSession48 : positionne la session audio en 48Khz – EnableSATReader : active le groupe G_SATReader – RunSATReader : exécute le lecteur logiciel du satellite – SATReady : informe NetRemote qu'on attend la prochaine commande – M_SelectOFF (SELECT_OFF) : aucune entrée sélectionnée, met le volume à zéro SG_Audio : regroupe les actions qui agissent sur le volume audioReader – ExtSurround (NR_SURR) : permet de diffuser sur tous les canaux un son de base en stéréo – Direct (NR_DIRECT) : les pistes audio sont reproduites dans leurs canaux respectifs – AjustVol (NR.Volume) : ajuste le volume pour qu'il soit conforme à la valeur positionnée sur la télécommande – M_AudioVolToZero : macro, met le volume audio à zéro – M_PeqON (PEQ_ON) : active la correction paramétrique – M_PeqOFF(PEQ_OFF) : désactive la correction paramétrique – M_BmsON (BMS_ON) : active le Bass Management – M_Bms_OFF(BMS_OFF) : désactive le Bass Management SG_DVDDrive : regroupe les actions pour ouvrir et fermer le lecteur physique de DVD – Open : ouvre le lecteur – Close : ferme le lecteur – OpenClose (EJECT) : ouvre ou ferme le lecteur suivant son état SG_HDDrive : regroupe les actions pour ouvrir et fermer le lecteur physique de DVD – Open : ouvre le lecteur – Close : ferme le lecteur – OpenClose (HD_EJECT) : ouvre ou ferme le lecteur suivant son état SG_BRDrive : regroupe les actions pour ouvrir et fermer le lecteur physique de DVD – Open : ouvre le lecteur – Close : ferme le lecteur – OpenClose (BR_EJECT) : ouvre ou ferme le lecteur suivant son état M_Reset (RESET) : macro, réinitialise l'ensemble télécommande et PC, comme à l'allumage – CloseMediaController : ferme le controlleur de media – CloseAudioVideo : forme lecteurs audio et video – – – – – – – Page 9/19 Girder et NetRemote DisableAudioVideo : désactive les groupes des lecteurs audio et video InitVar : réinitialse les diverses variables – CloseDVDDrive : ferme le lecteur physique DVD – CloseHDDrive : ferme le lecteur physique HD DVD – CloseBRDrive : ferme le lecteur physique BR DVD M_StopAllReaders : macro, stoppe tout lecteur en cours – StopAudioReader – StopDVDReader – StopHDDVDReader – StopBRDVDReader – StopSATReader M_CloseVideoReader : macro, ferme le lecteur video ou satellite s'il est en cours – CloseSATReader – CloseDVDReader – CloseHDReader – CloseBRReader M_CloseAudioReader : macro, ferme le lecteur audio s'il est en cours – ClosePCReader M_CloseAudioVideoReaders : macro, ferme tous les lecteurs en cours M_DisableAudioVideo : macro, désactive tous les groupes audio et video M_GirderExit : macro, quitte Girder – Shut down : envoie la commande d'extinction du PC – FocusGirder : met Girder au premier plan – SendExit : envoie le code pour quitter M_NoInput (NR_NOINPUT) : macro, aucune entrée sélectionnée – – – – – – – – – Démarrage de Girder : G_PowerON Quand le PC s'allume, après le chargement de l'OS, Girder s'exécute, il charge le fichier htpc.gml, puis émet l'évènement GirderOpen : celui-ci active l'exécution de la macro M_TurnAllON : – M_TurnAllON (GirderOpen) : macro, exécute les actions d'initialisation du PC comme préampli audio/video, une fois ceci fait Girder est alors en attente d'évènements – MonitorPowerON : allume le moniteur PC – Reset : Initialise des variables, ferme d'éventuelles applications ouvertes – NoInputSelected : aucune entrée n'est sélectionnée – PCStarted : informe NetRemote qu'il est prêt à recevoir des évènements Suivant que l'on a démarré le PC par la télécommande (donc via NetRemote) ou par le PC lui-même le comportement diffère ensuite : en effet dans le cas où l'on veut uniquement utiliser le PC il n'y a aucune raison d'allumer les amplis et démarrer les logiciels spécifiques à l'utilisation du PC comme préampli audiovidéo. Dans le cas où il a été démarré par la télécommande, il reçoit deux événements : – AMPLIS_ON : cet événement exécute la macro G_Global/SG_Amplis/M-AmplisON qui allume les amplis – RUN_MEDIABRIDGE : cet événement exécute la macro G_MediaController/M_Run qui exécute MediaBridge utilisé pour fournir des infos concernant les musiques et videos à NetRemote, ainsi que le lecteur audio qui est toujours présent Page 10/19 Girder et NetRemote Arrêt du PC : G_PowerOFF Regroupe les actions pour éteindre le PC – M_TurnAllOFF (NR_QUIT) : macro, ferme tous les logiciels et éteint tous les appareils – AmplisPowerOFF – TunerPowerOFF – SatPowerOFF – PhonoPowerOFF – CloseMediaController – CloseAudioVideo – CloseMIDIController – CloseVSTHost – MonPowerOFF – GirderExit Le lecteur audio : G_PCReader On trouve ici toutes les actions qui permettent la gestion du lecteur audioReader – SG_Run : regroupe les actions pour exécuter le lecteur audio – M_Run : macro, exécute le lecteur audio positionné – M_RunFoobar : macro, exécute Foobar – M_RunWinamp : macro, exécute Winamp – SG_Close : regroupe les actions qui ferme le lecteur audio – M_Close : macro, ferme le lecteur audio en cours – CloseFoobar : ferme Foobar – CloseWinamp : ferme Winamp – SG_Controls : regroupe les actions qui gérent le lecteur audio. A priori il n'apparait pas d'actions concernant Winamp car celles-ci sont gérées par l'intermédiaire de MediaBridge (voir le document MyRemote.pdf pour la configuration) – SG_Playlists Le lecteur DVD : G_DVDReader On trouve ici toutes les actions qui permettent la gestion du lecteur DVD – SG_Run : regroupe les actions pour exécuter le lecteur DVD – M_Run : macro, exécute le lecteur DVD positionné – M_RunZP : macro, exécute Zoomplayer – Execute : démarre Zoomplayer – Wait : on attend qu'il soit prêt – Focus : pour être la fenêtre active – MoveToDisplay : déplace sur le diffuseur si c'est le téléviseur ou le videoprojecteur – SetFullScreen : passe en plein écran – M_RunMPC : macro, exécute Zoomplayer – M_MoveZPToDisplay : macro, déplace Zoomplayer sur le diffuseur si c'est le téléviseur ou le vidéoprojecteur – MoveToLeft : déplace Zoomplayer sur le côté gauche du moniteur PC – MoveToDisplay : déplace Zoomplayer sur le diffuseur – M_MoveMPCToDisplay : macro, déplace MPC sur le diffuseur si c'est le téléviseur ou le Page 11/19 Girder et NetRemote – – vidéoprojecteur – MoveToLeft : déplace MPC sur le côté gauche du moniteur PC – MoveToDisplay : déplace MPC sur le diffuseur SG_Close : regroupe les actions qui ferme le lecteur DVD – M_Close : macro, ferme le lecteur DVD en cours – CloseZP : ferme Zoomplayer s'il est en cours d'exécution – CloseMPC : ferme MPC s'il est en cours d'exécution SG_Controls : regroupe les actions qui gérent le lecteur DVD. A priori il n'apparait pas d'actions concernant Zoomplayer car celles-ci sont gérées par un plugin via TCP/IP. Pour cela on précise le même port utilisé pour la communication pour le plugin et pour Zoomplayer Page 12/19 Girder et NetRemote Le lecteur HD DVD : G_HDDVDReader On trouve ici toutes les actions qui permettent la gestion du lecteur HD DVD – SG_Run : regroupe les actions pour exécuter le lecteur DVD – M_Run : macro, exécute le lecteur DVD positionné – M_RunPowerDVD : macro, exécute PowerDVD – Execute : démarre PowerDVD – Wait : on attend qu'il soit prêt – Focus : pour être la fenêtre active – MoveToDisplay : déplace sur le diffuseur si c'est le téléviseur ou le videoprojecteur – SetFullScreen : passe en plein écran – M_RunWinDVD : macro, exécute WinDVD – M_MoveZPowerDVDToDisplay : macro, déplace PowerDVD sur le diffuseur si c'est le téléviseur ou le vidéoprojecteur – MoveToLeft : déplace PowerDVD sur le côté gauche du moniteur PC – MoveToDisplay : dépalce PowerDVD sur le diffuseur – M_MoveWinDVDToDisplay : – SG_Close : regroupe les actions qui ferme le lecteur HD DVD – M_Close : macro, ferme le lecteur HD DVD en cours – ClosePowerDVD – CloseWinDVD – ClosePowerDVD : ferme PowerDVD s'il est en cours d'exécution – CloseWinDVD : ferme WinDVD s'il est en cours d'exécution – SG_Controls : regroupe les actions qui gérent le lecteur DVD. – M_Play – M_Stop – M_Pause – M_Previous – M_Next – M_RootMenu – M_LMenu – M_UMenu – M_RMenu – M_DMenu – M_OKMenu – M_Forward xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Le lecteur Blu-Ray DVD : G_BRDVDReader Page 13/19 Girder et NetRemote Les touches clavier pour MPC – – – – – – – – – – – – – – – – – – – – – – – – – – – – Ouvrir un fichier : ctrl o Ouvrir un DVD : ctrl d Lecture/Pause : <SPACE> Lecture : ctrl <SPACE> Pause : shift <SPACE> Stop : ; Avance rapide : ctrl <UP> Recul rapide : ctrl <DOWN> Vitesse normale : ctrl r Delai audio +10ms : <ADDITION> Delai audio -10ms : <SUBTRACT> Saut avant : ctrl <RIGHT> Saut arrière : ctrl <LEFT> Chapitre précédent : alt <PAGE_UP> Chapitre suivant : alt <PAGE_DOWN> Menu Root : alt r Menu Title : alt t Menu gauche : alt >LEFT> Menu haut : alt <UP> Menu droite : alt <RIGHT> Menu bas : alt <DOWN> Menu OK : alt <SPACE> Plein écran : alt <ENTER> Langue audio suivante : a Langue audio précédente : shift a Sous-titre suivant : s Sous-titre précédent : shift s Sous-titre on/off : w Page 14/19 Girder et NetRemote Le plugin DVBViewer ********************************************************************************* * * * Girder 4.0 plug-in for DVBViewer 3.xx Version 1.0 * * (c) Eiffel 2007 * * * ********************************************************************************* System requirements: ******************** - Girder 4.x or newer (Girder 3.x is supported by another plug-in available on the DVBViewer forum) - DVBViewer 3.5 or above (plug-in requires COM interface capability for two-way interaction with DVBViewer, although it also supports DVBViewer GE with a reduced feature set (This Girder plug-in can only send commands to DVBViewer GE) - Plug-in is designed to interface with any remote supported by Girder 4.0 and can easily support a VFD or LCD display (by default, the LCD display 'output' is redirected to the lua console and emulates a 2x20 display) Feature set: ************ - Extensible set of commands to control DVBViewer from Girder: 100s of commands are available, and have been assigned symbolic names such as DVBV.PAUSE, DVBV.CHANPLUS or DVBV.OSDSHOW. These commands can easily be sent from any lua script with the following syntax: DVBV:SendCommand(DVBV.[command name]) - Many of these commands have been preassigned to standard Girder remote events for plug and play support (the default assignments for some less frequently used commands will likely have to be modified, as each remote is different and as none has perfectly labeled buttons) - By default, this plug-in will only control DVBViewer if the application has focus (this feature can be very easily disabled to support, for instance, a multitasking environment) - Plug-in allows to monitor the status of DVBViewer 3.x though Girder events which are triggered by status changes within DVBViewer (e.g. PLAY->PAUSE, new channel, start of recording). This is similar to what DVDSpy, a popular Girder plug-in, provides for some other applications More information on the status change is provided via the pld1, pld2, and pld3 event payloads. These events include events generated by DVBViewer through its COM interface, as well as some additional events providing more information (e.g., elapsed time when playing a file, or discerning between more media types such as RADIO, TELEVISION, PVR MODE, DVD, MUSIC on a media type change) Page 15/19 Girder et NetRemote - The plug-in also provides easy access to a number of variables to track the status of DVBViewer, as well as to all the internal 'tags' which are maintained by DVBViewer (The download section of the DVBV forums contains a small application called dvbvspy.exe which shows a list of the available tags). - As an illustration of the power of the event approach, the plug-in emulates a 2x20 LCD display by printing text on the Lua console (this could easily be rerouted to Girder's OSD or to a VFD) - This plug-in also provides full access to the DVBViewer COM objects, allowing, for instance to schedule recordings, or control the DVBViewer OSD from Girder. The documentation on these objects can also be found in the DVBV download section) Installation: ************* - Simply open the attached .gml file from within Girder - Open the Girder log, if you want to see all the events generated by the plug-in (Disable TreeScript in the log settings to see only the most relevant messages and skip 'internal' polling events) - Open the Girder console to see the results of the LCD emulation (a new line is printed each time a line on the LCD display needs to change) Event list (all these events are generated by the Girder Events 'device' (#18)) ********** DVBViewer.onChannelChange --> returns the channel name, channel number, and TV program title as pld1, pld2 and pld3 DVBViewer.onAddRecord --> returns the record Id as pld1 when a recording is added. this can then be used in conjunction with the corresponding COM object to retrieve any information about the added record DVBViewer.Recording --> returns either "Start" or "End" as pld1 depending on the recording status of the application DVBViewer.Playback --> returns either "Start" or "End" as pld1. When pld1 contains "Start", pld2 contains the value of the Media.Title tag DVBViewer.Playlist --> returns the playlist name as pld1 (usually containing its file location) Page 16/19 Girder et NetRemote DVBViewer.State --> this events is triggered when the state of the application changes. pld1 contains one of the following values: "STOP", "PAUSE" or "PLAY"; pld2 contains either "" (empty string), "Video/Audio/DVD", "DVB" or "MPG2TS" DVBViewer.Elapsed --> this event is triggered each time the playtime/position, duration, or percentage complete changes for the current media source. To reduce event traffic, this event is not generated every second, but only when a change occurs. With recorded or timeshifted media, pld1 contains the elapsed time in hh:mm:ss format, pld2 contains the duration of what is being watched or listened to using the same format, and pld3 contains the percentage elapsed. When watch or listening to a live broadcast, pld1 contains the time to the end of the current program using the hh:mm format, pld2 contains its duration using the same format, and pld3 contains the percentage of remaining time. DVBViewer.Media --> this event provides more detailed information than DVBViewer.State on the type of media being played. pld1 contains one of the following values: 'PVR' (Timeshift), 'DVD', 'VIDEO', 'OTA' (On The Air TV), 'AUDIO' (Audio file), 'RADIO' (Live radio broadcast) DVBViewer.onRDS --> returns the RDS message just received as pld1 DVBViewer.Close --> this event is triggered when the application is shut down (in my testing this is not a 100% reliable way to sense that the application is closing) DVBViewer.Menu --> this even is triggered upon entering a menu/dialog box, or upon changing the selection in a menu or dialog box. pld1 is the window/page name, pld2 is the control name (equivalent to a submenu name), and pld3 is the current menu selection. Note that when there is no control/submenu name, pld2 contains an empty string, and that pld2 and pld3 are always distinct. DVBViewer.MenuOff --> this event is triggered when no menu or dialog box is displayed on the application's OSD DVBViewer.Teletext --> returns a page and sub page numbers as pld1 and pld2 DVBViewer.onMessage --> returns an OSD message as pld1 (I've never seen such messages and don't know if this is still supported by the latest DVBViewer versions) Key Lua functions ***************** DVBV:SendCommand(command) -- where command is a number or a variable such as DVBV.PAUSE, DVBV.ONTOP, etc. DVBV:Connect() -- this function must be invoked at least once, to initialize the communication Page 17/19 Girder et NetRemote between Girder and DVBViewer. It will only succeed if DVBViewer is already running (In the attached script, it is called automatically when the 'DVBViewer TaskSwitch' or 'TaskCreate' events occur) DVBV:Disconnect() -- this function ends the connection established by DVBV:Connect() and should be called once DVBViewer is closed. In the attached script, it is invoked automatically when the 'DVBViewer [Close]' event occurs DVBV:Get(tag_name) -- this function returns the value of the corresponding tag. See DVBVSpy.exe for a list of the possible tag names DVBV:Trimtime(string,minsize) -- this function trims the unnecessary leading 0s which the DVBViewer.Elapsed and other events/functions may generate. minsize is an optional parameter which defines the minimum length of the resulting string. In practice, the shortest string returned will contain 4 characters and follow the x:xx format. (Read only) user accessible variables ************************************* DVBV.menumode (true if a menu is displayed, false otherwise) DVBV.currentontrol (the name of the control or submenu currently selected) DVBV.lastitem (the current menu selection) DVBV.isrecording (true when recording, false otherwise) DVBV.playstate (contains string "STOP", "PAUSE" or "PLAY") DVBV.state (string, see State event) DVBV.media (string, see Media event) DVBV.duration (string, see elapsed event) DVBV.position (string, see elapsed event) DVBV.percentage (string, see elapsed event) DVBV.COM (The DVBViewerServer.DVBViewer object or nil if no connection has been established) DVBV.OSD (The DVBViewerServer.DVBViewer.OSD object or nil if no connection has been established) DVBV.DataManager(The DVBViewerServer.DVBViewer.DataManager object or nil if no connection has been established) Known issues... *************** - The default remote control key assignments may not please everyone as they are tailored to my tweaked RS15-2116 JP1 remote. I suggest that you review and change the event assignments to suit your preferences (The numkeys, and transport functions should be alright for most people, but the OSD navigation, arrows, volume/mute or color buttons are unlikely to suit many!) - I haven't been able to test (or see) some events that DVBV is supposed to generate, as my testing was conducted with a Freeview tuner without Teletext or Page 18/19 Girder et NetRemote RDS capability. They *should* work, but I can't confirm it - While the core of DVBViewer has been stable during my testing, some of the HTPC or OSD features are somewhat imperfect. As a result, tracking menu selections from within Girder is not always perfect (this happens, for instance, when a popup OSD dialog box comes up while navigating another menu... ) Page 19/19