PgcEdit Copyright r0lZ, 2004 Licence: GNU General Public Licence (GPL) 1. Qu'est PgcEdit? Toute personne désireuse de comprendre ou de modifier le fonctionnement d'un DVD connaît IfoEdit (http://www.ifoedit.com/). IfoEdit est un excellent programme freeware qui permet d'examiner et de modifier (presque) toutes les informations contenues dans les fichiers IFO des DVDs. IfoEdit est écrit par Derrow. IfoEdit permet, entre autres choses, de modifier les commandes associées aux PGCs (Program Chains). Toutefois, sur ce point précis, il souffre de nombreuses limitations: il ne connaît que certaines des 41 commandes existantes, ne gère que certains des paramètres de ces commandes, ne permet pas de créer des programmes structurés avec conditions, branchements etc... De plus, il est très difficile d'avoir une vision d'ensemble de toutes les commandes du DVD, car celles-ci sont disséminées à différents endroits du DVD, parmi quantité d'autres données. J'ai écrit PgcEdit pour compléter IfoEdit. PgcEdit ne permet que d'éditer les commandes et de modifier certains paramètres des PGCs (Program Chains). Par contre, il n'a pas les mêmes limitations: il permet d'éditer toutes les commandes avec tous leurs paramètres, sans autres limitations que celles imposées par le standard, et la philosophie de PgcEdit permet d'avoir une meilleure vue d'ensemble de la programmation du DVD. J'y ai aussi ajouté quelques fonctions en bonus. De plus, PgcEdit a un mode Trace dans lequel on peut suivre le déroulement des commandes, et voir les changements dans les GPRMs, les SPRMs et les PUOs. Cette simulation en fait un outil d'apprentissage et de debugging très efficace. PgcEdit est écrit en Tcl/Tk. Tcl/Tk est un langage de scripting interprété. J'ai choisi Tcl/Tk pour sa grande facilité à construire des interfaces itératives (GUI), et c'est un gros travail: il faut une boîte de dialogue différente pour chacune des commandes! Par contre, ce choix comporte des inconvénients: étant un langage interprété, Tcl/Tk est lent. Mais cela n'a que peu d'incidence sur PgcEdit. Un autre grand avantage de Tcl/Tk est qu'une application peut tourner indifféremment sur toute plate-forme qui dispose d'un interpréteur Tcl/Tk (Linux, Windows, MacOSX). 2. Usage La structure interne des DVDs est complexe. Il n'entre pas dans le cadre de ce manuel d'exposer cette structure, ni d'expliquer le rôle de chacune des commandes. Voyez l'excellent site de MPUCoder: http://www.mpucoder.com/dvd/ pour une introduction à cette structure. Le fonctionnement de PgcEdit devrait être relativement évident pour quiconque connaissant cette structure, ou habitué à IfoEdit. Il n'est pas possible de charger un fichier IFO individuellement dans PgcEdit. En effet, PgcEdit est conçu pour charger tous les fichiers IFO d'un DVD en même temps. Ceci permet de présenter toutes les commandes du DVD dans un ordre cohérent et facilement accessibles. Mais ça signifie aussi que la structure du DVD doit être correcte pour pouvoir charger correctement l'ensemble des fichiers. Notez que les commandes associées aux boutons des menus se trouvent dans les fichiers VOB, et ne sont donc pas éditables dans PgcEdit. Vous pouvez cependant les examiner. Utilisez MenuEdit ou VobEdit pour éditer ces commandes. Lorsque vous avez chargé un DVD dans IfoEdit, vous pouvez sélectionner le PGC à éditer avec le menu déroulant du bouton "PGC", ou via la liste "PGC selector" située à gauche de la liste des commandes. On peut sélectionner une commande en cliquant dessus. On peut aussi sélectionner plusieurs commandes en même temps avec un shift-click, ou en faisant glisser la souris sur ces commandes. Faire un double-click sur une commande appelle l'éditeur de commande. Notez également que lorsqu'on clique sur une commande GoTo, la ligne où ce GoTo branche est affichée en couleur un bref instant. Si cette ligne n'existe pas, c'est la ligne contenant le GoTo qui est affichée en rouge. Les mêmes fonctionnalités existent pour les lignes avec des Jump, Call ou Link (ou des Set+Link). Dans ce cas, c'est le PGC de destination qui est affiché en couleur. Un clic avec le bouton du milieu (ou Control-Clic droit) sur une de ces commandes vous amène directement à la ligne ou au PGC de destination. Notez aussi que les lignes où branchent des GOTOs sont surlignées en jaune, et celles contenant certaines erreurs (utilisation illégale d'une commande dans le domaine courrant, ou paramètre illégal) en rose. (Voir Options/Highlight Errors and GOTO targets.) Lorsqu'on a sélectionné une ou plusieurs commandes, on peut utiliser les boutons d'action situés en bas. Les mêmes actions sont disponibles via le menu "Edit", ou via le menu popup dans la liste des commandes. Le bouton Scratchbook permet d'avoir un espace où on peut copier, coller, éditer des commandes sans toucher à la structure du DVD. Vous pouvez utiliser cet espace pour stocker des commandes dont vous aurez besoin plus tard, ou pour y construire un programme que vous pourrez copier/coller dans un PGC lorsqu'il sera au point. Il est possible de sauvegarder les commandes du scratchbook sur disque; vous pouvez donc aussi vous en servir pour conserver des commandes dont vous avez souvent besoin. En bas se trouve une petite interface permettant de rechercher du texte dans le PGC courrant (boutons "<" et ">") ou dans tout le DVD (boutons "<<" et ">>"). L'option "case" recherche le texte en tenant compte de la casse. L'option "reg expr" recherche une 'regular expression'. Dans une telle expression, les points "." correspondent à n'importe quel caractère, et ".*" (point+étoile) correspond à un nombre quelconque de caractères (comme le * en MS-DOS). La plupart des caractères spéciaux (parenthéses, accolades...) doivent être 'escapés' avec le backslash (\). D'autres possibilités très puissantes sont présentes: voir cette page pour la description officielle des regular expressions de Tcl/Tk: http://www.tcl.tk/man/tcl8.4/TclCmd/re_syntax.htm . Il y a aussi cette table, plus facile à lire: http://www.wellho.net/regex/tcl.html Notez aussi le menu "Options/Set current search string as default" qui permet d'initialiser le champ de recherche au démarrage de PgcEdit. 3. Les Menus 3.1. Menu File File/Open DVD: charge tous les fichiers IFO du DVD sélectionné. File/Save DVD: sauvegarde les fichiers IFO du DVD, dans le dossier d'origine. Les tables de secteurs des VTS (VTS Sectors) sont mises à jour en fonction des fichiers VOB contenus dans le dossier lors de la sauvegarde. File/Reopen DVD: re-charge les fichiers IFO du DVD courant. Utilisez ce menu si vous avez modifié les fichiers IFO avec un programme externe, comme par exemple IfoEdit. File/Save IFOs as: Permet de sauvegarder les fichiers IFO du DVD courant dans un autre dossier. Notez que le calcul des VTS Sectors se fera sans les fichiers VOB (ou avec les VOBs présents dans le dossier de destination au moment de la sauvegarde). Ce calcul ne sera donc pas "juste". Cette fonction est destinée à la sauvegarde temporaire des IFOs, en guise de backup, ou pour référence future. Notez que le dossier de destination du menu "Save DVD" n'est pas modifié lors de cette opération. File/New DVD: Crée un fichier VIDEO_TS.IFO vide dans le directory spécifié. Ce fichier est ensuite lu dans l'éditeur, et peut servir de base pour importer des titres et menus venant d'autres DVDs. File/Import VTST Titles: Importe tous les titres d'un VTS d'un autre DVD. Un nouveau VTS est créé et la table des titres est mise à jour. Les menus du VTS source ne sont pas importés. Les fichiers VOB peuvent être copiés (ou déplacés) automatiquement. Aucune commande du DVD original n'est modifiée. A vous de le faire. File/Create Backup, Restore Backup et Delete Backup: Backup des fichiers IFO, au cas où les choses tourneraient mal! Voir aussi le menu Options. File/Open Scratchbook et Save Scratchbook: Permet de conserver sur disque le contenu du Scratchbook. File/Import PGC Commands et Export PGC Commands: Importe et exporte les commandes du PGC courrant. La fonction Import écrase les commandes qui se trouvent dans le PGC courrant. Notez que seules les commandes sont sauvegardées. Les autres paramètres du PGC (ceux que vous pouvez changer avec la fonction Edit PGC, tels que les Prohibited User Operations et la table des Cells) ne sont pas exportés. Le format de fichier est le format interne de PgcEdit (ASCII). File/Import all PGC Commands et Export all PGC Commands: Même chose que ci- dessus, mais importe/exporte tous les PGCs en une opération. La fonction Import essaye d'importer tous les fichiers dont les noms correspondent aux PGCs du DVD courrant. Donc, si vous voulez importer uniquement certains d'entre eux, effacez ou renommez ceux que vous ne voulez pas importer. File/Check DVD +/-R Size: Calcule la place utilisée par les fichiers IFO, BUP et VOB du dossier source du DVD, et affiche le pourcentage de la place utilisée sur un DVD-R ou un DVD+R de capacité standard. Notez que ce calcul ne tient pas compte des éventuelles modifications apportées au fichiers IFO chargés dans PgcEdit. Pour obtenir un résultat exact, il faut donc sauver le DVD avant d'utiliser cette fonction. File/Explore DVD folder: Disponible seulement sous Windows: ouvre le dossier du DVD courrant dans une fenêtre Explorer. File/Quit et File/Kill: Quitte PgcEdit. Le menu Kill quitte immédiatement, sans confirmation, sans sauvegarde des setups et en bypassant les éventuels messages d'erreur. 3.2. Menu Edit Edit/Edit Cmd: permet de modifier la commande courante avec l'éditeur de commande (voir plus bas). Edit/Edit PGC: Appelle l'éditeur de PGC pour le PGC courant (voir plus bas). Edit/Add Before et Add After: ajoute une commande NOP avant ou après la (ou les) commande(s) sélectionnée(s). Edit/Delete: Supprime les commandes sélectionnées. Edit/Duplicate: Duplique les commandes sélectionnées. Edit/Copy, Append, Cut, Paste replace, Paste before et Paste after: gestion du presse-papier. "Append" permet d'ajouter les commandes sélectionnées à celles déjà présentes dans le presse-papier. "Paste replace" remplace les commandes sélectionnées par le contenu de presse-papier, tandis que "Paste before" et "Paste after" ajoutent les commandes du presse-papier avant ou après les commandes sélectionnées. Edit/Decr GOTOs et Incr GOTOs: Décrémente ou incrémente de 1 tous les numéros de lignes des commandes Goto (et SetTmpPML) contenues dans la sélection. Edit/Move Up et Move Down: Permet de déplacer les commandes sélectionnées. Edit/Jump to Target: Si la ligne sélectionnée contient un GOTO, cette fonction permet de sélectionner automatiquement la ligne où le GOTO branche. Si la ligne sélectionnée contient un Jump, Call, Link ou un Set+Link, elle sélectionnera le PGC de destination. Edit/Undo cmds changes: Remet en état d'origine les commandes du PGC courrant. Attention! Cette fonction est très limittée: elle ne fonctionne que pour les commandes, et le buffer d'undo est réinitialisé chaque fois qu'un autre PGC est affiché. Cela signifie que si vous changez de PGC, celui que vous quittez perd sa possibilité d'undo. Vous pouvez toutefois passer au scratchbook et revenir au même PGC sans perdre l'undo. Il n'y a pas d'undo pour le scratchbook. Edit/Copy as text: copie dans le clipboard les commandes sélectionnées exactement comme elles apparaissent dans la liste principale. Note: Les raccourcis clavier visibles dans ce menu ne fonctionnent que quand la liste principale (contenant les commandes) est active. 3.3. Menu Trace Trace/Trace Mode: Passe en mode Trace. Dans ce mode, on peut 'jouer' le DVD, avec simulation de toutes les commandes rencontrées. En mode Trace, l'interface est modifiée pour inclure dans le bas de la fenêtre principale les contrôles permettant de démarrer et d'arrèter la Trace, de monitorer les GPRMs, les SPRMs et les PUOs, de mettre des breakpoints, etc... Le manuel du mode Trace doit encore être écrit. Désolé. 3.4. Menu Preview La plupart des options de ce menu ne sont disponibles que sous Windows. Sorry. Preview PGC: Lance le preview sur le PGC courrant. Toutes les cells du PGC sont montrées, dans l'ordre de la table des cells du PGC. Notes: Pour visualiser une cell particulière, on peut utiliser les boutons Play (>) dans la liste des cells du PGC Editor. Le Preview est aussi disponible via la fenêtre qui montre les boutons de menus, et en mode Trace. On peut forcer la fenêtre de Preview à être toujours devant les autres, avec l'option Always On Top, qui se trouve dans le petit menu système de la fenêtre de Preview. Preview full domain VOB(s): Montre tout le fichier (ou tous les fichiers) VOB du domaine courrant. Utile pour avoir un apperçu du contenu du domaine, avant de faire un Blank Out de tous les PGCs du domaine. Automatically Start Preview Playback?: Quand cette option est sélectionnée, le playback démarre automatiquement quand la fenêtre de preview s'ouvre. Full Size/Medium Size/Small Size. Permet de changer la taille par défaut de la fenêtre de Preview, ainsi que celle affichant les boutons de menu. 3.5. Menu Utilities Utilities/Title Play Map table: Affiche la table globale des Titres du DVD (VMG_TT_SRPT), et permet de modifier les "Prohibited User Operations" définies dans cette table. Utilities/Domain Streams attributes: Permet de modifier certains des attributs des streams du domaine courrant (VMGM menu, VTSM menu or VTST title.) Utilities/Region Code: Permet de modifier ou d'effacer (zone free) le code de région du DVD. Il y a aussi un bouton qui permet de lancer une recherche de "sprm(20:player region code)" dans tout le DVD. Certains DVDs (surtout en zone 1) utilisent ce sprm pour tester le code de région du lecteur. Utilities/Filter Prohibited User Operations: Permet de supprimer sélectivement certaines des opérations interdites, et ceci séparément pour tous les menus du Video Manager, pour tous les menus des Title Sets, pour tous les Titres, et pour la table globale des Titres. Notez qu'il peut encore y avoir des PUOs dans les fichiers VOB. Ces PUOs ne sont pas accessibles à PgcEdit, qui ne s'occupe que des fichiers IFO. Utilities/Enable Navigation Buttons: Permet d'utiliser la touche "Chapitre précédent" de la télécommande lorsqu'on est dans le premier chapitre d'un titre pour revenir au début du chapitre, la touche "Chapitre Suivant" lors du dernier chapitre pour aller à la fin du titre, et la touche "Retour" (Return ou GoUp) pour revenir au début du titre courrant. Notez que cette fonction ne modifie pas le comportement des touches qui ont déjà une programmation spécifique. De plus, la touche "Chapitre Suivant" ne sera programmée que si il y a des post- commands dans le PGC. Utilities/Remove Parental Managment: Supprime la table ainsi que les références relatives au contrôle parental. La fonction cherche aussi dans le VMGM, toutes les commandes SetTmpPML, et les remplace par des GOTOs. En conséquence, le DVD sera joué sans tenir compte du niveau parental configuré dans le lecteur. Note: Il est possible de tester le SPRM 13 (contenant le niveau parental du lecteur) avec les commandes du PGC. Cette situation n'est pas modifiée. Vous devez remplacer les sprm 13 partout dans les commandes par la valeur constante 15 pour éviter complétement le contrôle parental. Utilities/Remove Parental Managment: Certains DVDs ont une protection empêchant de visionner le DVD (ou certains passages) si le niveau parental configuré dans le lecteur est inférieur au niveau du DVD. Cette fonction permet de supprimer cette protection. Utilities/Blank out all PGCs in Domain: Modifie tous les PGCs de tous les Titres du VTS courrant pour que ces titres ne soient plus joués, et remplace les VOBs de ces titres par un seul petit VOB (de 10KB), ou les remplace par un clip 'vidéo supprimée' (ou encore supprime complètement le VOB des menus). Utilities/New Menu: Remplace tous les PGC de menu du VMGM ou du VTSM courant. New Menu crée un simple PGC (Title menu si le PGC courant appartient au VMGM, ou Root menu si c'est un VTSM). Aucune video n'y est associée. Cela permet par exemple de brancher sur le First-Play PGC lorsqu'on utilise la touche Root Menu ou Title Menu de la télécommande. Vous devrez ensuite modifier les commandes selon vos besoins. Utilities/Import Menu: Permet de remplacer le menu courant par celui d'un autre DVD. A la différence de la fonction "Merge Menu Tables" de IfoEdit, Import Menu permet d'importer un menu VMGM dans un menu VTSM, ou vice-versa (mais ce n'est pas forcément conseillé!). De plus, il gère à la demande la copie des éventuels fichiers VOB. Utilities/Remove Menu: Supprime toutes les données relatives aux PGCs et aux fichier VOB éventuel du menu du VMGM ou du VTSM courant. Utilities/Set Menu Type: Permet de modifier le type du menu courrant (Title menu pour VMGM; Root, SubPic, Audio, Angle et Chapter menus pour VTSM). Utilities/Show Menu Buttons: Permet de voir le layout des boutons du menu courrant, ainsi que les commandes qui lui sont associées. Le bouton Jump to Target permet également de charger dans la fenêtre principale le PGC cible de la commande (dans le cas ou la cible est un autre PGC), ou de passer directement au Programme ou à la Cellule cible (dans le cas ou la cible fait partie du même PGC). Notez qu'on peut utiliser les curseurs du clavier pour voyager de bouton en bouton, comme le ferait une véritable télécommande. Utilities/Swap Menu LUs: Permet de permuter deux LUs, avec tous leurs PGCs. Celà peut-être utile pour tester un LU particulier avec IfoEdit, ou pour forcer un LU comme défaut pour les lecteurs qui ne permettent pas le choix du langage par défaut pour les menus . Utilities/Copy LU cmds to other LUS: Copie toutes les commandes de tous les PGCs du LU courrant vers tous les autres LUs. En principe, tous les LUs ont la même structure, et seule les mots écrits dans la vidéo changent. Cette fonction vous permet donc de modifier les commandes du LU de votre choix, et de reporter ensuite les modifications aux autres LUS. Utilities/New PGC: Crée un nouveau PGC. Vous devez sélectionner un PGC avant d'appeler cette fonction. Le nouveau PGC sera crée après tous les PGCs du même groupe (par exemple, à la fin du Menu-LU courrant). Utilities/New 'Play All' Title: Crée un nouveau PGC contenant toutes les VOB/ Cell IDs du titleset courrant, dans l'ordre. Ce PGC permet de jouer toute la vidéo en une fois, ce qui peut être pratique pour des DVDs multi-épisodes qui n'ont pas d'option pour jouer tous les épisodes à la suite. Utilities/Set Provider ID: Permet d'encoder le nom du fournisseur du DVD (une donnée de VIDEO_TS.IFO/VMGM_MAT que IfoEdit ne permet pas de modifier). Utilities/Set DVD-TEXT General Name: Permet d'encoder ou de modifier le nom général du DVD (et le nom du film). Certains lecteurs de DVD (lecteurs multi - platines, la plupart des lecteurs Sony...) sont capables d'afficher ce nom pour identifier le DVD. Ce nom est une donnée parmi d'autres du VMG_TXTDT_MG. Si le VMG_TXTDT_MG n'existe pas, il sera crée. Utilities/Remove DVD-TEXT data: Retire toutes les informations DVD-TEXT du DVD. Attention: tout le VMG_TXTDT_MG est effacé, et pas seulement le nom général du DVD. 3.6. Menu Info Info/PGC: Affiche les commandes et paramètres du PGC courrant sous forme de texte. Vous pouvez ainsi copier les commandes pour les poster dans un forum. Affiche aussi les commandes des boutons des menus, s'il y a lieu. Info/Title Play Map Table: C'est un dump sous forme de texte de la table globale des Titres du DVD (VMG_TT_SRPT). Voir aussi le menu Utilities / Title Play Map Table. Info/DVD Commands: Génère un texte avec toutes les commandes de tous les PGCs du DVD. Ce texte est affiché dans une fenêtre depuis laquelle on pourra sauvegarder le texte sur disque, ainsi que faire des recherches de mots. Cette fonction liste aussi les commandes des boutons des menus, s'il y a lieu. Cette fonction peut être très lente. Sorry. Info/PGCs params and Cell Tables: Affiche les paramètres (ainsi qu'un dump de la table des Cells) de tous les PGCs du DVD. Info/DVD Menu Buttons Commands: Génère un texte avec toutes les commandes des boutons de tous les VOBs de menus (VIDEO_TS.VOB et VTS_**_0.VOB). Info/Calls cross references: Pour chaque PGC du DVD, liste toutes les commandes qui branchent sur ce PGC. A la fin du texte se trouve aussi la liste de tous les PGCs non référencés. Info/Streams: Affiche les attributs des streams video, audio et sub-picture de tous les Title Sets du DVD. Info/Find Unused GPRMs: Affiche une liste des GPRMs qui ne sont utilisés dans aucun des PGCs du DVD. Notez que les commandes des boutons de menus qui se trouvent dans les fichiers VOB ne sont pas testées. 3.7. Menu Macros Macros/Kill PGC playback: IfoEdit permet de supprimer le playback d'un menu, pourvu qu'il n'ait pas de boutons. Il ne permet pas de supprimer le playback d'un Title. Cette fonction, par contre, peut être utilisée indifférament pour les titres et les menus (sans boutons!). Elle modifie les commandes du PGC courant pour que la vidéo du PGC ne soit plus jouée. Macros/Enable All Operations: Permet, en une seule opération, de retirer du PGC courrant toutes les Opérations Interdites à l'Utilisateur (PUOs) et de permettre l'utilisation des touches 'Chapitre précédent', 'Chapitre Suivant' et 'Retour' de la télécommande. (Voir Utilities/Enable Navigation Buttons.) Macros/Reset Used GPRMs to 0: Cette macro insére les commandes nécessaires pour remettre à 0 tous les GPRMs qui sont utilisés dans un PGC du DVD au moins. Celà peut être utile avant de faire un jump au FP-PGC, de manière à s'arrurer que le lecteur se trouve dans le même état que lorsqu'on insére un disque. Il vaut mieux ne resetter que les GPRMs utilisés pour que les autres macros qui nécessitent un (ou plusieurs) GPRM pour fonctionner puissent les trouver. Macros/Import First-Play Clip, Import Title's Intro Clip et Insert Title's Closing Clip: Ces macros permettent d'importer un titre d'un autre DVD et modifie les commandes pour que le titre importé soit joué automatiquement lors du démarrage du DVD, ou avant ou après le titre courrant. Notez que les deux premières macros nécessitent un GPRM libre pour pouvoir opérer. Macros/DVDShrink Remote Buttons: DVDShrink (http://www.dvdshrink.org) permet, en mode re-author, de mettre plusieurs titres à la suite sur un même DVD. Quand un titre est fini, le titre suivant est joué automatiquement. Malheureusement, il n'est pas possible d'aller directement à un titre précis, car il n'y a pas de menu. 2COOL a écrit un très ingénieux guide suggérant une solution pour ce problème: "Using Title Menu Button to Skip Titles in Re-authored DVD Shrink Movies" (voir http://forum.doom9.org/showthread.php?threadid=61238). Mais cette procédure est relativement complexe et lente à mettre en oeuvre, spécialement quand il y a de nombreux titres sur le DVD. J'ai donc écrit cet utilitaire pour automatiser une procédure similaire. Elle n'est utilisable que sur un DVD qui a été généré par DVDShrink en mode re-author, et permet donc d'utiliser la touche Title Menu de la télécommande pour passer directement au titre suivant. En plus, cette macro permet de rendre opérationnelles les touches Previous Chapter (|<<) et Next Chapter (>>|) lorsqu'on est respectivement dans le premier ou dernier chapitre d'un titre, et d'utiliser la touche 'Return' pour revenir au début du titre courrant. La macro permet également de retourner automatiquement au premier titre lorsque le dernier titre est terminé. 3.8. Menu Tools Le menu Tools est un menu configurable dans lequel vous pouvez définir des programmes externes, qui pourront être exécutés depuis PgcEdit. Tools/Configure Tools: Configuration du menu Tools. Facile à comprendre. Je conseille vivement de mettre IfoEdit dans ce menu. A titre d'exemple, voici comment faire: a. Sélectionnez le menu ConfigureTools et cliquez sur le bouton Add New. b. Dans la zone Label, tapez IfoEdit. c. Le champ Application doit contenir le chemin complet de IfoEdit.exe. d. Dans le champ Arguments, mettez "%p\%i" (avec les guillemets), et %p comme Working Folder. e. Ensuite, si vous désirez que IfoEdit soit indépendant de PgcEdit, cochez seulement l'option Run in Background. Attention au risque de modification du même fichier dans deux programmes différents! f. Si par contre vous voulez que IfoEdit soit lancé comme une fonction de PgcEdit, désactivez Run in Background, et cochez au moins Save DVD, Iconify PgcEdit et Reopen DVD. De cette manière, lorsque vous lancerez IfoEdit, PgcEdit sauvera les IFOs, puis sera désactivé tant que IfoEdit tournera, et enfin il rechargera les fichiers éventuellement modifiés par IfoEdit avant d'être à nouveau activé. g. Pour terminer, cliquez sur OK, puis sur Save (pour conserver le setup sur HD) ou sur Use (pour la session courante seulement). 3.9. Menu View View/Toolbar, View/PGC Selector et View/Edit Buttons: Montrer ou cacher certaines parties du GUI. View/Pgc Selector Side: Avec ce sous-menu, vous pouvez choisir le côté où le sélecteur de PGC doit être placé. Si vous sélectionnez Top (haut) ou Bottom (bas), vous pouvez aussi changer sa hauteur. View/Tcl Calculator/Converter: C'est un petit calculateur et convertisseur décimal/hexadécimal/ASCII. ATTENTION! Ce calculateur utilise la syntaxe de Tcl, qui est quelque peu inhabituelle! En particulier, un calcul qui utilise uniquement des entiers donnera un résultat entier! Par exemple: 3 / 2 donne 1, alors que 3 / 2.0 donne 1.5. Vous pouvez entrer un nombre en hexadécimal (0x0A) en octal (012) ou en décimal (10). Vous pouvez entrer un code ascii de maximum 3 signes dans la partie droite pour le convertir en entier. Les codes de langue utilisés sur les DVD sont des codes de 2 lettres en minuscule, par exemple, "en" (25966) pour english, "fr" (26226) pour français... Presser Enter effectue le calcul et le résultat s'affiche dans la zone inférieure. Si le résultat est entier, sa conversion en hexadécimal et en ASCII s'affiche aussi. Notez qu'il est possible de taper un chiffre en hexadécimal ou en octal dans la plupart des champs numériques de PgcEdit. 3.10. Menu Options Le menu Options permet de configurer PgcEdit (sauf les programmes du menu Tool qui sont configurés indépendamment). Les options sont simples. Le sous-menu Install permet de créer automatiquement des raccourcis et les associations de fichiers. Ce sous-menu n'est pas présent si vous utilisez PgcEdit.tcl avec un interpréteur Tcl/Tk externe, ni sous Linux ou Mac. Si "Adjust Command Editor window size" est coché, la hauteur de la fenêtre de l'éditeur de commande change quand vous sélectionnez une autre commande, de manière à contenir exactement toute l'interface de la commande. Le sous-menu "Preview video screen size" permet de choisir la taille de l'écran vidéo virtuel qui affiche les boutons quand on utilise l'utilitaire 'Show Menu Buttons', et celle du Preview par défaut. "Tearoff Menus" ajoute une ligne en pointillé comme premier élément de chaque menu. Sélectionner cette ligne permet de détacher le menu et d'en faire une fenêtre que vous pouvez placer où vous voulez. Utilisez ceci, par exemple, pour changer plusieurs options à la fois dans un menu détcahé. N'utilisez pas cette option avec Tcl/Tk Aqua sous Mac. "Automatically renumber GOTOs upon cmds insert/delete" adapte automatiquement les numéros de lignes des commandes GOTOs quand vous insérez ou supprimez des lignes dans la même section. Attention: the GOTOs qui sont DANS un bloc copié/collé ne sont jamais renumérotés. La dernière option, "Save current scratchbook as default", permet de 'retenir' le scratchbook de session en session. Sélectionner la fonction Undo quand on est en mode scratchbook a pour effet de recharger ces commandes par défaut. Note: Certaines options du mode Trace sont aussi sauvegardées avec les options de ce menu. 3.11. Menu Help Menu d'aide et documentation. Ne nécessite pas d'aide !-) 4. PGC Editor IfoEdit permet de modifier quasiment toutes les données des PGCs. L'éditeur de PgcEdit ne permet que d'en modifier certaines. Je n'ai gardé que les plus utiles, ou celles où IfoEdit ne permet pas d'édition simple et conviviale (comme par exemple les couleurs des sub-pictures et les assignations de streams). Notons qu'il est possible de supprimer toutes les Prohibited User Operations du PGC en cliquant sur ce bouton avec le bouton droit de la souris. 5. Command Editor Le Command Editor permet d'éditer les commandes. Il est composé de plusieurs parties. Au dessus se trouvent les menus qui permettent de sélectionner une instruction. Le trois premiers menus présentent chacun la liste complète de toutes les commandes, classées différemment dans chacun de ces menus. Le quatrième menu ne reprend que les Jumps et les Calls, classés selon le type de PGC source et destination. Il permet de sélectionner facilement le Jump ou Call légal pour chaque situation. En dessous des menus se trouve le champ contenant la représentation hexadécimale de la commande, ainsi que le nom de la commande courante. Ensuite se trouve un champ qui contient la commande courante "désassemblée", avec la même syntaxe que celle utilisée dans la liste des commandes de la fenêtre principale. En dessous se trouve l'interface permettant de modifier les paramètres de la commande courante. Cette interface est différente pour chaque commande. Les champs numériques de cette partie de l'interface permettent d'encoder les paramètres en décimal, en hexadécimal, en précédant les nombres de "0x", en octal, précédés de "0", ou en ASCII, précédés de "'" (apostrophe). A droite de ces champs numériques se trouve, entre parenthèses, les limites légales du paramètre. Il n'est en principe pas possible d'encoder une valeur illégale du paramètre. Cependant, pour être en mesure de taper un paramètre en hexadécimal ou en octal, on doit pouvoir taper un zéro, même si cette valeur est illégale. Dans ce cas, un beep vous en informe, et la commande désassemblée est affichée sur fond de couleur. Notez que seules les erreurs théoriques sont détectées: il est donc possible d'encoder des paramètres vides de sens mais légaux. Par exemple un Jump au VTS 99 est légal, et sera donc accepté, mais il n'a de sens que si le VTS 99 existe. Le champ hexadécimal est mis à jour automatiquement lorsqu'on change de commande, et lorsqu'on modifie les paramètres de la commande courante. Il est aussi possible d'encoder la commande directement en hexadécimal. Lorsqu'on édite manuellement ce champ, les modifications ne sont pas mises à jour automatiquement dans les autres parties de l'interface. Pour forcer la mise à jour de la commande, il faut valider le contenu du champ hexadécimal. Pour ce faire, il suffit de taper Enter dans ce champ, ou de cliquer sur le bouton-menu à droite du champ et de sélectionner l'option Validate. Lors de la validation, le contenu du champ hexadécimal est analysé, et transcrit dans les autres parties de l'interface. Si une erreur est détectée, il peut se passer deux choses: a. Si la commande résultante n'existe pas, un message d'erreur vous en informe, et le curseur est positionné sur le digit qui a provoqué l'erreur. b. Si un paramètre est illégal ou hors limites, il est corrigé dans le champ hexadécimal, et ce paramètre est surligné en couleur, pour que l'on puisse facilement repérer les erreurs. Dans ce second cas, vous pouvez revenir au contenu du champ avant validation en sélectionnant l'option Undo Validation du menu de validation, ou effacer les surlignements avec Clear Validation Highlights. L'option Disassemble Without Validate permet de visualiser la commande désassemblée sans corriger les erreurs éventuelles de paramètres, et sans transférer les paramètres dans la partie intéractive de l'interface. Ceci permet de vérifier que la commande est complète et cohérente avant de la valider effectivement. Ce menu contient également des options pour copier/coller le contenu du champ. Copy as Hex String et Copy as Binary sont des options permettant d'exporter la commande vers un autre programme. L'option Copy simple est utilisée en interne par PgcEdit. 6. Clipboard Pour des raisons de compatibilité avec Linux et Mac, le presse-papiers (clipboard) est géré de manière particulière par Tcl/Tk. Notons un effet désagréable de cette gestion: si vous placez une donnée de PgcEdit dans le clipboard (par cut ou copy), puis que vous quittez PgcEdit, faire un paste dans un autre programme ne donne rien: le clipboard est vidé de son contenu lorsque le programme Tcl/Tk qui l'a rempli est terminé. Souvenez-vous de laisser PgcEdit ouvert tant que des données utiles sont dans le clipboard. Il est parfaitement possible de faire des copier/coller entre deux DVDs en ouvrant deux PgcEdit en même temps. 7. Raccourcis à la souris ou au clavier Click-Droit sur le bouton-menu "PGC": Afficher/cacher le "PGC Selector". Click-Double ou Click-Milieu sur un PGC du "PGC Selector": Edit PGC. Click-Droit sur un PGC du "PGC Selector": Appelle le menu popup "PGC". Click-Milieu dans la liste des commandes: Edition du PGC courrant. Click-Droit dans la liste des commandes: Appelle le menu popup "Edit". Click-Double sur une commande: Edit command Escape dans une boîte de dialogue: Ferme la boîte (idem que bouton Cancel) Note: Les raccourcis du menu Edit sont disponibles seulement lorsque la liste principale des commandes est active.