#!/bin/csh ####################################################################################################################################### # # # T R A N S F E R T D ' U N E L I S T E D ' I M A G E S # # S U R L E D I S Q U E V I D E O B E T A - P A L : # # # # # # Utilisation : # # # # $xci/disk_video_P$Z <Racine_images> <premiere> <derniere> <palette> <disk> <face> <init> <Emode> "<formatI>" <g> [r [d [e [p]]]] # # $xci/disk_video_P$Z <Racine_images> <premiere> <derniere> RVB <disk> <face> <init> <Emode> "<formatI>" <g> [r [d [e [p]]]] # # # # $xci/disk_video_P$Z <Image_unique> UNIQUE UNIQUE <palette> <disk> <face> <init> <Emode> "<formatI>" <g> [r [d [e]]] # # $xci/disk_video_P$Z <Image_unique> UNIQUE UNIQUE RVB <disk> <face> <init> <Emode> "<formatI>" <g> [r [d [e]]] # # # # || || # # || || # # \/ || # # || # # E [0,9] || # # \/ # # # # E [1,2] # # # # avec : # # # # <Racine_images> = <racine_images> # # <Image_unique> = <Image_unique> # # # # ou : # # # # <Racine_images> = "<racine_images> <postfixe>" # # <Image_unique> = "<Image_unique> <postfixe>" # # # # # # Nota sur le "sens" d'enregistrement : # # # # On notera que la sequence peut etre # # aussi bien generee en marche avant # # (premiere < derniere) qu'en marche # # arriere (premiere > derniere)... # # # # # # Performances : # # # # Le 19971219174728, sur '$LACT12' il a ete mesure # # que, cette machine n'etant pas chargee, une image # # 'Pal' en vraies couleurs {$ROUGE,$VERTE,$BLEUE} # # demandait 25 secondes pour etre enregistree alors # # que 22 secondes sont necesaires pour une image 'Std'. # # # # Le 19980218090413, en passant de 1200 a 9600 # # bauds, le temps de 25 secondes a ete reduit a # # 21 secondes... # # # # Le 19980226161253 en enregistrant des images # # 'Pal' stockees sur '$xiim_LACT29', une duree # # d'enregistrement de 24 secondes a ete mesuree. # # # # En resume, l'enregistrement de 512 images au # # format 'Pal' stockees sur '$xiim_LACT29' demande # # trois heures trente minutes. # # # # # # Enregistrement successif de plusieurs images "UNIQUE"s : # # # # Afin d'eviter de perdre trop de temps avec les # # "blank check"s que provoquent, explicitement ou # # implicitement, les operations "Initialisation" # # et "initialisation" respectivement, on pourra # # utiliser l'operation vide "rien" de la facon # # suivante : # # # # $xci/disk_video_P$Z <premiere> UNIQUE UNIQUE <palette> <disk> <face> Initialisation (...) # # $xci/disk_video_P$Z <seconde> UNIQUE UNIQUE <palette> <disk> <face> rien (...) # # $xci/disk_video_P$Z <troisieme> UNIQUE UNIQUE <palette> <disk> <face> rien (...) # # (...) # # $xci/disk_video_P$Z <derniere> UNIQUE UNIQUE <palette> <disk> <face> rien (...) # # # # ainsi il n'y aura donc qu'un seul "blank check". # # # # On pourra regarder : # # # # v _____xivPdf_6_2/$Fnota # # # # ou des essais ont ete fait dans ce sens... # # # # # # Suspension de l'enregistrement d'une sequence : # # # # Il parait possible de suspendre l'enregistrement # # d'une sequence (par exemple pour visionner une # # sequence deja enregistree). Soit 'IMAGE' le nom # # de l'image suivante a enregistrer ; il suffit de # # faire un : # # # # mv IMAGE sIMAGE # # # # La commande '$xci/disk_video_P$Z' se met alors en # # attente de l'image 'IMAGE' en editant un message # # d'erreur periodique. Puis on notera l'adresse # # courante 'ADRESSE' du disque. # # # # Pour relancer l'enregistrement, il suffit de # # remettre au prealable le disque precedent (s'il y # # avait eu un changement de support), puis de se # # repositionner par : # # # # r ADRESSE # # # # et enfin de debloquer la boucle d'attente par : # # # # mv sIMAGE IMAGE # # # # Cela semble suffire (a condition que la sequence # # d'initialisation ne soit pas a refaire...). # # # # # # Redemarrage sur defaut : # # # # Malheureusement, sur 'SYSTEME_SG4D..._IRIX_CC' la # # commande 'DISPLAY' a tendance a se bloquer mysterieusement. # # La meilleure solution est alors d'aborter la commande # # '$xci/disk_video_P$Z' ; le fichier '$Sequence' donnant # # le catalogue des images enregistrees est mis a jour # # avant d'effectuer 'DISPLAY'. Dans ces conditions, on # # detruira la derniere ligne du fichier (elle donne le # # nom de la premiere image restant a enregistrer), et on # # changera son nom par un 'mv' en y faisant figurer le # # nom de la derniere image reellement enregistree... # # # # Enfin, il conviendra de killer au moins un # # process (voir ceux qui sont lances dans l'alias # # 'DISPLAY')... # # # # Apparemment, 'ITERE' prend encharge correctement # # ce processus, sauf bien entendu le 'kill' des # # process. Le defaut serait du, en fait, a la conjonction # # du 'SYSTEME_SG4D20G_IRIX_CC' (de vitesse faible), et du # # serveur NeWS (qui perdrait alors des evenements)... # # # # # # Exemple : # # # # xivPdf 2 2 # # # # -rw------- 1 colonna 900 3503 Jun 4 17:50 002928_003055 # # 003033 --> $xiff/KALEIDOS.10105 # # | # # |______________________________________________ # # | # # | # # L'image '$xiff/KALEIDOS.10105' n'a pas ete enregistree, et \|/ # # '$xiff/KALEIDOS.10104' est la derniere image enregistree # # a l'adresse 003032. On detruira donc la ligne '003033 --> $xiff/KALEIDOS.10105', # # et executera la commande : ------ # # | # # mv 002928_003055 002928_003032 | # # ------ | # # /|\ | # # | | # # |_______________| # # # # # # Author of '$xci/disk_video_P$Z' : # # # # Jean-Francois COLONNA (LACTAMME, AAAAMMJJhhmmss). # # # ####################################################################################################################################### set RacineP=($1) set premiereI=$2 set derniereI=$3 set Palette=$4 set Disque=$5 set Face=$6 set initialisation=$7 # "Initialisation" ou "rien". # set Emode=$8 # "DebutS", "ajoutS", "finS", "Sequence" ou "SequenceT". # set FormatI="$9" # Rien, ou par exemple pour enregistrer en 'Pal' : # # # # "Xmin=$XminPal Xmax=$XmaxPal Ymin=$YminPal Ymax=$YmaxPal". # # # # mais ATTENTION, il faut mettre toute la definition entre doubles-quotes afin que la # # recuperation de l'argument suivant ('Gamma') se passe bien. Ainsi, on ecrira : # # # # ... "$formatI" ... # # # switch ("$SYSTEME") # Definition de la correction de gamma. ATTENTION : ceci doit etre le dernier argument, # # puisqu'il n'est pas defini pour tous les SYSTEMEs... # # # # Discrimination des differents SYSTEMEs possibles : # case "SYSTEME_SG4D20G_IRIX_CC": case "SYSTEME_SG4D25TG_IRIX_CC": case "SYSTEME_SG4D310VGX_IRIX_CC": case "SYSTEME_SG4D35TG_IRIX_CC": case "SYSTEME_SG4D85GT_IRIX_CC": case "SYSTEME_SGIND308_IRIX_CC": case "SYSTEME_SGIND324_IRIX_CC": case "SYSTEME_SGIND408_IRIX_CC": case "SYSTEME_SGIND424_IRIX_CC": case "SYSTEME_SGIND508_IRIX_CC": case "SYSTEME_SGIND524_IRIX_CC": case "SYSTEME_SGIND808_IRIX_CC": case "SYSTEME_SGIND824_IRIX_CC": case "SYSTEME_SGINDA08_IRIX_CC": case "SYSTEME_SGINDA24_IRIX_CC": case "SYSTEME_SGO25224_IRIX_CC": set Gamma="$10" # Entree de la correction de gamma pour l'enregistrement. # breaksw case "SYSTEME_SGIND3GA_IRIX_CC": case "SYSTEME_SGIND4GA_IRIX_CC": case "SYSTEME_SGIND5GA_IRIX_CC": case "SYSTEME_SGIND8GA_IRIX_CC": case "SYSTEME_SGINDAGA_IRIX_CC": case "SYSTEME_SGO252VA_IRIX_CC": case "SYSTEME_SGO252VN_IRIX_CC": set GaMmA="$10" # La correction de gamma est inutile ici, mais ATTENTION, elle doit etre presente malgre # # tout a cause d'une part de la compatibilite et de la portabilite, et d'autre part de # # l'argument '$Redimensionner' qui suit (d'ou son nom "bizarre"...). # breaksw case "SYSTEME_APC_LinuxDebian_GCC": case "SYSTEME_APC_LinuxMandrake_GCC": case "SYSTEME_APC_LinuxRedHat_GCC": case "SYSTEME_APC_LinuxUbuntu_GCC": case "SYSTEME_APC_LinuxUbuntu_ICC": case "SYSTEME_APC_LinuxUlmint_GCC": case "SYSTEME_APC_LinuxUlmint_ICC": case "SYSTEME_CRAY2_UNICOS_CC": case "SYSTEME_CRAY2_UNICOS_SCC": case "SYSTEME_CRAYC98_UNICOS_CC": case "SYSTEME_CRAYC98_UNICOS_SCC": case "SYSTEME_CRAYC916_UNICOS_CC": case "SYSTEME_CRAYC916_UNICOS_SCC": case "SYSTEME_CRAYYMP1_UNICOS_CC": case "SYSTEME_CRAYYMP1_UNICOS_SCC": case "SYSTEME_CRAYYMP2_UNICOS_CC": case "SYSTEME_CRAYYMP2_UNICOS_SCC": case "SYSTEME_CRAYYMP4_UNICOS_CC": case "SYSTEME_CRAYYMP4_UNICOS_SCC": case "SYSTEME_DECALPHA340_OSF1_CC": case "SYSTEME_DECALPHA340_OSF1_GCC": case "SYSTEME_DECALPHA350_OSF1_CC": case "SYSTEME_DECALPHA350_OSF1_GCC": case "SYSTEME_DECALPHA464_OSF1_CC": case "SYSTEME_DPX2000_SPIX_CC": case "SYSTEME_DPX5000_SPIX_CC": case "SYSTEME_ES9000_AIX_CC": case "SYSTEME_FX2800_CONCENTRIX_FXC": case "SYSTEME_FX2800_CONCENTRIX_PCC": case "SYSTEME_FX2800_CONCENTRIX_SCC": case "SYSTEME_FX40_CONCENTRIX_CC": case "SYSTEME_FX40_CONCENTRIX_FXC": case "SYSTEME_HP705_HPUX_CC": case "SYSTEME_HP710_HPUX_CC": case "SYSTEME_HP720_HPUX_CC": case "SYSTEME_HP750_HPUX_CC": case "SYSTEME_HP755_HPUX_CC": case "SYSTEME_HP819_HPUX_CC": case "SYSTEME_NWS3000_NEWSOS_CC": case "SYSTEME_NWS3000_NEWSOS_2CC": case "SYSTEME_RS6000_AIX_CC": case "SYSTEME_SGO200A1_IRIX_CC": case "SYSTEME_SGO200A2_IRIX_CC": case "SYSTEME_SGO200A4_IRIX_CC": case "SYSTEME_SGPCM801_IRIX_CC": case "SYSTEME_SGPCMA01_IRIX_CC": case "SYSTEME_SPS9_ROS_CC": case "SYSTEME_SPS9_ROS_RC": case "SYSTEME_SUN3_SUNOS_CC": case "SYSTEME_SUN4_SUNOS_CC": case "SYSTEME_SUN4NCUBE2S_SUNOS_CC": case "SYSTEME_SUN4NCUBE2S_SUNOS_NCC": case "SYSTEME_VAX8600_ULTRIX_CC": case "SYSTEME_VAX8600_ULTRIX_VCC": case "SYSTEME_VAX9000_ULTRIX_CC": case "SYSTEME_VAX9000_ULTRIX_GCC": case "SYSTEME_VAX9000_ULTRIX_VCC": breaksw case "SYSTEME_IMPOSSIBLE": # Cas des SYSTEMEs pour lesquels cette sequence n'a pas de sens : # EROR "Une sequence n'a pas de sens pour '"$SYSTEME"'." breaksw default: # Cas des SYSTEMEs non reconnus : # EROR "Variable 'SYSTEME' (='$SYSTEME') inconnue." breaksw endsw set Redimensionner=$11 # Afin de savoir s'il faut ('VRAI') ou pas ('FAUX') redimensionner les images au format # # 'Pal'... # setArgum Redimensionner FAUX # Lorsque cet argument est absent, on lui donne la valeur 'FAUX' afin d'assurer la # # compatibilite avec les enregistrements anterieurs... # if ("$Redimensionner" == "VRAI") then echo "ATTENTION : les images vont etre redimensionnees." else endif set Deleter=$12 # Afin de savoir s'il faut ('VRAI') ou pas ('FAUX') deleter les images au fur et a mesure # # apres leur enregistrement afin de faire de la place... # setArgum Deleter FAUX # Lorsque cet argument est absent, on lui donne la valeur 'FAUX' afin d'assurer la # # compatibilite avec les enregistrements anterieurs... # if ("$Deleter" == "VRAI") then echo "ATTENTION : les images seront detruites au fur et a mesure." else endif set Ejecter=$13 # Afin de savoir s'il faut ('VRAI') ou pas ('FAUX') ejecter le disque a la fin de # # l'enregistrement. # setArgum Ejecter FAUX # Lorsque cet argument est absent, on lui donne la valeur 'FAUX' afin d'assurer la # # compatibilite avec les enregistrements anterieurs... # if ("$Ejecter" == "VRAI") then echo "ATTENTION : le disque sera ejecte a la fin de l'enregistrement." else endif set Pas=$14 # Pas de parcours de la liste sequentielle des images. # setArgum Pas 1 # Lorsque cet argument est absent, on lui donne la valeur '1' parce que c'est la valeur la # # plus logique (qui etait aussi la valeur implicite anterieure...). # ####################################################################################################################################### # # # F I N D E L ' E N T R E E D E S O P T I O N S : # # # ####################################################################################################################################### XmDKVP # Et oui, ceci a ete rajoute le 19971230085533 car, en effet, '$xci/disk_video_P$Z' peut # # etre lance depuis une fenetre pour laquelle '$DISPLAY' ne designe pas '$mDKVP'. C'est en # # fait le cas depuis que '$LACT27' sert a l'interaction sur '$mREFERENCE'... # if ("$Fvideo_in_use" != "$UNDEF") then # Test introduit le 20130925100711... # while (-e $Fvideo_in_use) EROR "La video semble deja active (ou bien, quelque chose a ete interrompu brutalement...)." sleep $TEMPORISATION end (Genom1) > $Fvideo_in_use ro $Fvideo_in_use # Mise en place d'un dispositif "simpliste" permettant d'eviter : # # # # 1-deux appels simultanes a '$xci/disk_video_P$Z', # # 2-un appel a '$xci/disk_video_P$Z' et un appel a l'alias 'video'. # # # else EROR "La video n'est plus disponible." EROR "1-pour ARRETER, faire un <CTRL-C><ENTER> qui abortera le processus en cours," EROR "2-pour CONTINUER, taper un <ENTER> seul." pause endif set Racine=$RacineP[1] # Recuperation de la racine... # path_f $Racine set nomP_Racine=$nomP set nomF_Racine=$nomF # Decomposition de la racine argument. La variable '$nomP_Racine' a ete introduite le # # 20020227101857 apres des problemes "mysterieux" avec la boucle 'while(...)' qui suit # # et qui ne s'executait qu'une seule fois lorsque le directory '$nomP_Racine' (appele avant # # cette date '$nomP') n'existait pas. La raison en etait que l'alias 'EROR' declenche alors # # redefinissait lui-meme '$nomP'. La meme operation a suivi pour '$nomF' le 20020227104017. # if ($?kill_DKVP == $EXIST) then unset kill_DKVP else endif source $Fdisk_video_P # On notera l'absence de 'kill_DKVP'. # # # # ATTENTION, lorsque que le "kill" des process du type 'sleep' et 'display_' est demande, # # il y a alors "kill" de tous les process 'sleep' et en particulier ceux qui sont crees # # par '$FCalarme'. Cela n'est en fait pas trop grave car, en effet, ils n'excedent pas 60 # # secondes, ce qui fait que le temps perdu dans le decompte des heures d'attente n'est que # # fausse... # # # # Avant le 20020227094021, ce 'source' se situait apres le '$xci/feu_attendre$X' qui suit, # # mais il est plus qu'utile a la boucle 'while(...)' qui suit... # while (! -e "$nomP_Racine") # Afin de controler l'iteration sur l'existence du directory d'appartenance des images. # # Cela a ete introduit le 20020225100435 afin de resoudre un probleme lie a l'utilisation # # de '$xiim_LACT14' (par exemple...), lorsqu'un tel directory n'est pas monte. Avant cette # # date donc, le test suivant etait negatif et '$racine' devenait donc un nom absolu. Or # # lors du test individuel d'existence des images, '$ImagC' (qui vaut '$racine' suivi du # # numero d'image) est precede de '$Directory'. Donc, dans le cas d'un directory non monte, # # on se retrouvait ensuite avec comme nom absolu d'image, deux noms de directories absolus # # concatenes l'un derriere l'autre... # if ($MessagE_DKVP == $EXIST) then EROR "Le directory '$nomP_Racine' n'existe pas (peut-etre n'est-il pas monte ?)." sleep $MINUTE else endif end if (("$nomP_Racine" != "$K_VIDE") && (-e "$nomP_Racine")) then cd $nomP_Racine set racine=$nomF_Racine else set racine=$Racine endif $xci/feu_attendre$X feu=$feu_SdisqueP # On introduit ici la possibilite de bloquer '$xci/disk_video_P$Z' avant toute action qu'il # # peut mener : cela permet, par exemple, durant l'enregistrement d'un grand film image par # # image (voir par exemple 'v $xrq/nucleon.L4$Z') de faire malgre tout des photos... # set Postfixe="$K_VIDE" # A priori, on considere qu'il n'y a pas de postfixe... # if ($#RacineP > 1) then if ("$Palette" == "$RVB_DKVP") then EROR "En mode 'RVB' les noms des images ne peuvent etre postfixes." else set Postfixe=$RacineP[2] # Cas ou il y a un postfixe et que l'on est en mode "palette"... # endif else endif saneP # Reinitialisation de la liaison avec le disque, cela peut etre tres utile ; on notera que # # cette operation est necessaire apres (environ) un chargement de disque sur deux... # switch ("$Emode") # Definition de la variable '$Synchroniser_DKVP' qui indique le mode d'ecriture des images. # # Cette variable controle si l'on doit boucler sur l'attente d'une image qui est actuellement # # inexistante ('$EXIST') ce qui correspond a se synchroniser sur un producteur d'images, ou # # bien si l'on doit considerer cela comme une erreur ($NEXIST'). # case "$Sequence_DKVP": case "$debutS_DKVP": case "$ajoutS_DKVP": case "$finS_DKVP": set Synchroniser_DKVP = $EXIST # Une image inexistante est consideree comme n'etant pas encore arrivee, et est attendue. On # # aura alors en general : # # # # MessagE_DKVP = $EXIST # # # breaksw case "$SequenceT_DKVP": set Synchroniser_DKVP = $NEXIST # Une image inexistante est consideree comme une erreur, et est sautee. On aura alors en # # general : # # # # MessagE_DKVP = $NEXIST # # # breaksw default: EROR "Le mode n'est pas reconnu." breaksw endsw set Disque=`Gdisk_DKVP $Disque` set Face=`Gface_DKVP $Face` set Icwd=$cwd set Directory=$Icwd direct $cwd unset xCWD # Destruction de la variable '$xCWD' telle qu'elle est positionnee par 'v $FCshrc'. En effet, # # si par malheur le '$cwd' a l'appel de '$xci/disk_video_P$Z' etait celui d'appartenance de # # la sequence d'images (soit '$nomP_Racine'), on a alors en arrivant ici (voir 'v $FCshrc') : # # # # $xCWD = $nomP_Racine # # # # or, s'etant place ci-dessus dans le directory '$nomP_Racine' par un 'cd', on a : # # # # $cwd = $nomP_Racine # # # # ce qui, etant donne la programmation de 'direct', donne alors a la variable '$nDirectory' # # la valeur "xCWD"... # set xCWD=$nDirectory # Et memorisation du nom symbolique du '$CWD'. # switch ("$SYSTEME") # Definition du programme d'envoi des images au disque video. # # # # Discrimination des differents SYSTEMEs possibles : # case "SYSTEME_DPX5000_SPIX_CC": if ($?CUBI7) then alias DISPLAY 'set Dimage=\!:1 ; set Dpalette=\!:2 ; \\ $xci/fenetre_2D$X A=$Dimage p=$Dpalette video=VRAI init=VRAI $FormatI ; \\ unset Dimage ; unset Dpalette' # Commande d'affichage des images. # alias SYNCHROr '' alias SYNCHROv '' alias ATTENDREi 'set status_feu=$OK' # Commandes de synchronisation (ineffective). # alias ITERE 'set ArGuMeNtS=(\!*) ; echo "$ArGuMeNtS" >& $nul ; unset ArGuMeNtS' # Commande d'iteration sur defaut de "time-out" (ineffective). Nota : l'echo sur '$nul' n'est # # la que pour permettre, dans le cas ou 'ITERE' est ineffectif, de "nettoyer" le buffer des # # commandes ; faire : # # # # alias ITERE '' # # # # aurait pour effet d'utiliser le premier argument comme nom de commande, et les suivants # # comme ses arguments... # else EROR "Le CUBI7 n'est plus la, esperons que le convertisseur le remplace." alias DISPLAY 'set Dimage=\!:1 ; set Dpalette=\!:2 ; \\ $xci/display$X A=$Dimage p=$Dpalette $FormatI ; \\ unset Dimage ; unset Dpalette' # Commande d'affichage des images. # alias SYNCHROr '' alias SYNCHROv '' alias ATTENDREi 'set status_feu=$OK' # Commandes de synchronisation (ineffective). # alias ITERE 'set ArGuMeNtS=(\!*) ; echo "$ArGuMeNtS" >& $nul ; unset ArGuMeNtS' # Commande d'iteration sur defaut de "time-out" (ineffective). Nota : l'echo sur '$nul' n'est # # la que pour permettre, dans le cas ou 'ITERE' est ineffectif, de "nettoyer" le buffer des # # commandes ; faire : # # # # alias ITERE '' # # # # aurait pour effet d'utiliser le premier argument comme nom de commande, et les suivants # # comme ses arguments... # endif breaksw case "SYSTEME_SG4D20G_IRIX_CC": case "SYSTEME_SG4D25TG_IRIX_CC": case "SYSTEME_SG4D310VGX_IRIX_CC": case "SYSTEME_SG4D35TG_IRIX_CC": case "SYSTEME_SG4D85GT_IRIX_CC": case "SYSTEME_SGIND308_IRIX_CC": case "SYSTEME_SGIND324_IRIX_CC": case "SYSTEME_SGIND408_IRIX_CC": case "SYSTEME_SGIND424_IRIX_CC": case "SYSTEME_SGIND508_IRIX_CC": case "SYSTEME_SGIND524_IRIX_CC": case "SYSTEME_SGIND808_IRIX_CC": case "SYSTEME_SGIND824_IRIX_CC": case "SYSTEME_SGINDA08_IRIX_CC": case "SYSTEME_SGINDA24_IRIX_CC": case "SYSTEME_SGO25224_IRIX_CC": FileTmpB nomT Gamma $Gamma # Mise en place de la correction de gamma, qui sera refaite en realite avant chaque # # 'DISPLAY' au cas ou. On rappelle ici que 'Gamma' peut etre executee en background # # car en effet un probleme dans la fonction 'winopen(...)' fait que cette derniere, de temps # # en temps se bloque...) ; ainsi, meme si le processus 'gamma' se bloquait, la suite des # # operations aurait bien lieu. Enfin, le detecteur de time-out de '$xci/feu_attendre$X' ne # # peut etre utilise ici bien evidemment... # set Ptime_out=$MINUTE # Duree de detection des "time-out" sur la commande 'DISPLAY'. # set Ptemporisation=8 # Duree de temporisation pour '$xci/display_RVB$X'... # set synchro="duree=$Ptemporisation video=VRAI minimum=32 synchronisation=VRAI trx=0.0 try=0.0" source $Fdivers # Afin de definir '$MdefRedim'... # set synchro="$synchro"" redimensionner=$Redimensionner methode=$MdefRedim proportions=FAUX" # On notera l'option "minimum=" destinee a renforcer les basses luminances... # if ("$Palette" == "$RVB_DKVP") then alias DISPLAY 'set Dimage=\!:1 ; \\ Gamma $Gamma ; \\ $xci/display_RVB$X AR=$Dimage$ROUGE AV=$Dimage$VERTE AB=$Dimage$BLEUE $synchro $FormatI ; \\ unset Dimage' # Commande d'affichage des images. Malheureusement, cette solution n'est pas parfaitement # # deterministe, car en effet, si l'ecran est au repos, le temps necessaire au retour de la # # video peut etre important (en particulier, apparemment, si la machine est chargee), d'ou # # la temporisation... # else alias DISPLAY 'set Dimage=\!:1 ; set Dpalette=\!:2 ; \\ Gamma $Gamma ; \\ $xci/vraies_C$X A=$Dimage RR=$nomT$ROUGE RV=$nomT$VERTE RB=$nomT$BLEUE p=$Dpalette $FormatI ; \\ $xci/display_RVB$X AR=$nomT$ROUGE AV=$nomT$VERTE AB=$nomT$BLEUE $synchro $FormatI ; \\ unset Dimage ; unset Dpalette' # Commande d'affichage des images. Malheureusement, cette solution n'est pas parfaitement # # deterministe, car en effet, si l'ecran est au repos, le temps necessaire au retour de la # # video peut etre important (en particulier, apparemment, si la machine est chargee), d'ou # # la temporisation... # endif $xci/feu_init$X feu=$feu_disqueP $xci/feu_init$X feu=$feu_display_RVB alias SYNCHROr '$xci/feu_rouge$X feu=$feu_display_RVB ; \\ $xci/feu_rouge$X feu=$feu_disqueP' alias SYNCHROv '$xci/feu_vert$X feu=$feu_disqueP' alias ATTENDREi '$xci/feu_attendre$X feu=$feu_display_RVB time-out=$Ptime_out ; \\ set status_feu=$status' # Commandes de synchronisation. # alias ITERE 'set Iimage=\!:1 ; set Ipalette=\!:2 ; \\ EROR "Time-out sur la commande DISPLAY," ; \\ EROR "il y a des processus en attente a killer." ; \\ DISPLAY $Iimage $Ipalette ; \\ unset Iimage Ipalette' # Commande d'iteration une fois sur defaut de "time-out". # breaksw case "SYSTEME_SGIND3GA_IRIX_CC": case "SYSTEME_SGIND4GA_IRIX_CC": case "SYSTEME_SGIND5GA_IRIX_CC": case "SYSTEME_SGIND8GA_IRIX_CC": case "SYSTEME_SGINDAGA_IRIX_CC": case "SYSTEME_SGO252VA_IRIX_CC": case "SYSTEME_SGO252VN_IRIX_CC": FileTmpB nomT set Attendre="Attendre=VRAI Bloquer=FAUX" # Le 20010917175108, j'ai ajoute cette facon supplementaire d'attendre les images # # inexistantes. En effet, il y a bien sur une boucle de test situee plus loin qui teste la # # pre-existence des images. Mais il peut arriver, par accident, qu'une image soit detruite # # apres avoir ete testee existante. Cela s'est produit le 20010917170419, lors de # # l'enregistrement de la sequence : # # # # xivPdf 14 1 / 003585_004096 # # # # en ce qui concerne l'image '$xiim_LACT14/ACIN.8.0456' qui a ete compressee entre le # # moment du test de pre-existence et son utilisation. Il a fallu donc debloquer la # # situation a la main, alors que ce nouveau dispositif aurait permit la poursuite de # # l'enregistrement "sans douleur"... # # # # Malgre tout on notera qu'il faut sortir les messages d'erreur ("Bloquer=FAUX") afin de # # savoir ce qu'il se passe... # set Ptemporisation=8 # Duree de temporisation pour '$xci/display_RVB$X'... # set synchro="$K_VIDE" set synchro="$synchro"" duree=$Ptemporisation video=VRAI genlock=VRAI minimum=32 synchronisation=VRAI trx=0.0 try=0.0" set synchro="$synchro"" X_Window=FAUX" set synchro="$synchro"" redimensionner=$Redimensionner methode=1" # On notera l'option "minimum=" destinee a renforcer les basses luminances... # set Blocage="VRAI" set synchro="$synchro"" blocage=$Blocage" # On notera l'introduction du forcage explicite du "blocage=" le 19980702133654 qui jusqu'a # # present etait implicite. Cela a ete fait pour pouvoir, lorsque "blocage=VRAI", inhiber le # # detecteur de "time-out".... # set synchro="$synchro"" $Attendre" # On notera donc l'introduction d'une nouvelle possibilite d'attente le 20010917175108. # if ($Blocage == "VRAI") then @ Ptime_out = $Annee * $MoisExces * $Jour * $Heure * $Minute # Duree de detection des "time-out" sur la commande 'DISPLAY' lorsque '$xci/Sdisplay_RVB$X' # # se bloque sur un defaut : il ne faut plus qu'il y ait de detection de "time-out" et pour # # cela une duree superieure a une annee est choisie (en esperant qu'entre-temps le defaut # # aura ete detecte...). # else set Ptime_out=$MINUTE # Duree de detection des "time-out" sur la commande 'DISPLAY' lorsque '$xci/Sdisplay_RVB$X' # # ne se bloque pas sur un defaut... # endif if ("$Palette" == "$RVB_DKVP") then alias DISPLAY 'set Dimage=\!:1 ; \\ $xci/Sdisplay_RVB$X AR=$Dimage$ROUGE AV=$Dimage$VERTE AB=$Dimage$BLEUE $synchro $FormatI ; \\ unset Dimage' # Commande d'affichage des images. Malheureusement, cette solution n'est pas parfaitement # # deterministe, car en effet, si l'ecran est au repos, le temps necessaire au retour de la # # video peut etre important (en particulier, apparemment, si la machine est chargee), d'ou # # la temporisation. Le 1995102300 la commande '$xci/display_RVB$X' a ete remplacee par la # # commande '$xci/Sdisplay_RVB$X' dont les besoins en memoire sont plus restreints, ce qui # # permet de retarder l'apparition du probleme : # # # # WARNING: Frame transfer aborted: analog video input not locked # # # else alias DISPLAY 'set Dimage=\!:1 ; set Dpalette=\!:2 ; \\ $xci/vraies_C$X A=$Dimage $Attendre RVB=VRAI R=$nomT p=$Dpalette $FormatI ; \\ $xci/Sdisplay_RVB$X AR=$nomT$ROUGE AV=$nomT$VERTE AB=$nomT$BLEUE $synchro $FormatI ; \\ unset Dimage ; unset Dpalette' # Commande d'affichage des images. Malheureusement, cette solution n'est pas parfaitement # # deterministe, car en effet, si l'ecran est au repos, le temps necessaire au retour de la # # video peut etre important (en particulier, apparemment, si la machine est chargee), d'ou # # la temporisation. Le 1995102300 la commande '$xci/display_RVB$X' a ete remplacee par la # # commande '$xci/Sdisplay_RVB$X' dont les besoins en memoire sont plus restreints, ce qui # # permet de retarder l'apparition du probleme : # # # # WARNING: Frame transfer aborted: analog video input not locked # # # # On notera donc l'introduction d'une nouvelle possibilite d'attente le 20010917175108. # endif $xci/feu_init$X feu=$feu_disqueP $xci/feu_init$X feu=$feu_display_RVB alias SYNCHROr '$xci/feu_rouge$X feu=$feu_display_RVB ; \\ $xci/feu_rouge$X feu=$feu_disqueP' alias SYNCHROv '$xci/feu_vert$X feu=$feu_disqueP' alias ATTENDREi '$xci/feu_attendre$X feu=$feu_display_RVB time-out=$Ptime_out ; \\ set status_feu=$status' # Commandes de synchronisation. # source $Fdivers # Afin de definir l'alias 'Ivideo'... # alias ITERE 'set Iimage=\!:1 ; set Ipalette=\!:2 ; \\ EROR "Time-out sur la commande DISPLAY," ; \\ EROR "il y a des processus en attente a killer." ; \\ Ivideo ; \\ DISPLAY $Iimage $Ipalette ; \\ unset Iimage Ipalette' # Commande d'iteration une fois sur defaut de "time-out" apres reinitialisation de la carte # # 'Galileo' apres le defaut ; en effet, sinon, apres on recupere sur la sortie 'RVB', et ce # # entre chaque image enregistree, la sortie 'Pal' du disque... En effet, a chaque fois que # # ce defaut est reapparu, on avait obtenu les messages suivants dans la sortie redirigee # # de '$xci/disk_video_P$Z' : # # # # VL connection to :0.0 broken (explicit kill or server shutdown). # # kill processus sleep (id=...) # # [$xci/disk_video_P.z][][] :: time-out sur la commande DISPLAY # # [$xci/disk_video_P.z][][] :: il y a des processus en attente a killer # # # # d'ou le lien de cause a effet verifie depuis... # breaksw case "SYSTEME_IMPOSSIBLE": case "SYSTEME_APC_LinuxDebian_GCC": case "SYSTEME_APC_LinuxMandrake_GCC": case "SYSTEME_APC_LinuxRedHat_GCC": case "SYSTEME_APC_LinuxUbuntu_GCC": case "SYSTEME_APC_LinuxUbuntu_ICC": case "SYSTEME_APC_LinuxUlmint_GCC": case "SYSTEME_APC_LinuxUlmint_ICC": case "SYSTEME_CRAY2_UNICOS_CC": case "SYSTEME_CRAY2_UNICOS_SCC": case "SYSTEME_CRAYC98_UNICOS_CC": case "SYSTEME_CRAYC98_UNICOS_SCC": case "SYSTEME_CRAYC916_UNICOS_CC": case "SYSTEME_CRAYC916_UNICOS_SCC": case "SYSTEME_CRAYYMP1_UNICOS_CC": case "SYSTEME_CRAYYMP1_UNICOS_SCC": case "SYSTEME_CRAYYMP2_UNICOS_CC": case "SYSTEME_CRAYYMP2_UNICOS_SCC": case "SYSTEME_CRAYYMP4_UNICOS_CC": case "SYSTEME_CRAYYMP4_UNICOS_SCC": case "SYSTEME_DECALPHA340_OSF1_CC": case "SYSTEME_DECALPHA340_OSF1_GCC": case "SYSTEME_DECALPHA350_OSF1_CC": case "SYSTEME_DECALPHA350_OSF1_GCC": case "SYSTEME_DECALPHA464_OSF1_CC": case "SYSTEME_DPX2000_SPIX_CC": case "SYSTEME_ES9000_AIX_CC": case "SYSTEME_FX2800_CONCENTRIX_FXC": case "SYSTEME_FX2800_CONCENTRIX_PCC": case "SYSTEME_FX2800_CONCENTRIX_SCC": case "SYSTEME_FX40_CONCENTRIX_CC": case "SYSTEME_FX40_CONCENTRIX_FXC": case "SYSTEME_HP705_HPUX_CC": case "SYSTEME_HP710_HPUX_CC": case "SYSTEME_HP720_HPUX_CC": case "SYSTEME_HP750_HPUX_CC": case "SYSTEME_HP755_HPUX_CC": case "SYSTEME_HP819_HPUX_CC": case "SYSTEME_NWS3000_NEWSOS_CC": case "SYSTEME_NWS3000_NEWSOS_2CC": case "SYSTEME_RS6000_AIX_CC": case "SYSTEME_SGO200A1_IRIX_CC": case "SYSTEME_SGO200A2_IRIX_CC": case "SYSTEME_SGO200A4_IRIX_CC": case "SYSTEME_SGPCM801_IRIX_CC": case "SYSTEME_SGPCMA01_IRIX_CC": case "SYSTEME_SPS9_ROS_CC": case "SYSTEME_SPS9_ROS_RC": case "SYSTEME_SUN3_SUNOS_CC": case "SYSTEME_SUN4_SUNOS_CC": case "SYSTEME_SUN4NCUBE2S_SUNOS_CC": case "SYSTEME_SUN4NCUBE2S_SUNOS_NCC": case "SYSTEME_VAX8600_ULTRIX_CC": case "SYSTEME_VAX8600_ULTRIX_VCC": case "SYSTEME_VAX9000_ULTRIX_CC": case "SYSTEME_VAX9000_ULTRIX_GCC" case "SYSTEME_VAX9000_ULTRIX_VCC": alias SYNCHROr '' alias SYNCHROv '' alias ATTENDREi 'set status_feu=$OK' # Commandes de synchronisation (ineffective). # alias ITERE 'set ArGuMeNtS=(\!*) ; echo "$ArGuMeNtS" >& $nul ; unset ArGuMeNtS' # Commande d'iteration sur defaut de "time-out" (ineffective). Nota : l'echo sur '$nul' n'est # # la que pour permettre, dans le cas ou 'ITERE' est ineffectif, de "nettoyer" le buffer des # # commandes ; faire : # # # # alias ITERE '' # # # # aurait pour effet d'utiliser le premier argument comme nom de commande, et les suivants # # comme ses arguments... # alias DISPLAY 'set Dimage=\!:1 ; set Dpalette=\!:2 ; \\ echo A=$Dimage p=$Dpalette ; \\ unset Dimage ; unset Dpalette' # Cas des SYSTEMEs pour lesquels cette sequence n'a pas de sens : # EROR "Une sequence n'a pas de sens pour '"$SYSTEME"'." breaksw default: # Cas des SYSTEMEs non reconnus : # EROR "Variable 'SYSTEME' (='$SYSTEME') inconnue." breaksw endsw alias ERRORkP1 'set Dfonction=\!:1 ; \\ EROR "Probleme avec le disque lors de $K_QS$Dfonction$K_QS," ; \\ EROR "pour continuer $K_QS$K_DOLLAR""xci/disk_video_P$K_DOLLAR""Z$K_QS, taper <ENTER>," ; \\ EROR "pour aborter $K_QS$K_DOLLAR""xci/disk_video_P$K_DOLLAR""Z$K_QS, faire un <CTRL-C><ENTER>." ; \\ EROR "Si un abort est effectue, faire ensuite :" ; \\ unset Dfonction' # Cas des erreurs qui peuvent demander un abandon "manuel" de '$xci/disk_video_P$Z'... # alias ERRORkP2 'set InCrEmEnT="\!*" ; if ("$InCrEmEnT" == "$K_VIDE") set InCrEmEnT=1 ; \\ if ("$PCourante" == "$K_VIDE") echo "$Prompt""delete $Sequence" ; \\ if ("$PCourante" != "$K_VIDE") echo "$Prompt""mv $Sequence $Premiere$limiteur_DKVP$PCourante" ; \\ if ("$PCourante" != "$K_VIDE") echo "$Prompt""Punite $Premiere$limiteur_DKVP$PCourante" ; \\ if ("$PCourante" != "$K_VIDE") echo "puis relancer avec premiere="`expr $Numero_image + $InCrEmEnT` ; \\ unset InCrEmEnT' # Edition de differentes commandes utiles en cas d'abandon manuel... # alias ERRORkP3 'echo "ATTENTION verifier si la derniere image ($K_QS$Courante$K_QS) a ete enregistree." ; \\ echo "si oui, faire :" ; saut ; \\ echo "$Prompt""mv $Sequence $Premiere$limiteur_DKVP$Courante" ; \\ echo "$Prompt""Punite $Premiere$limiteur_DKVP$Courante" ; saut 2 ; \\ if ("$PCourante" != "$K_VIDE") echo "puis relancer avec premiere="`expr $Numero_image + 1` ; \\ echo "si non, il faut detruire la derniere ligne du fichier sequence, puis faire :" ; saut ; \\ ERRORkP2 0' # Edition de differentes commandes utiles en cas d'abandon manuel... # if (("$Disque" != "$K_VIDE") && ("$Face" != "$K_VIDE")) then set disque=$xivP$K_sepS$Ndisk_DKVP$Disque$K_sepS$Nface_DKVP$Face # Definition du directory contenant les images du disque et de la face demandes. # if (-e $disque) then if (("$initialisation" == "Initialisation") || ("$initialisation" == "rien")) then # Test introduit bien tardivement le 20040315091441... # $xci/disk_video_P$X commande="$initialisation" affichage=VRAI # Initialisation a priori du disque. # else EROR "La fonction d'initialisation demandee '$initialisation' n'existe pas." endif if ($status == $OK) then @ _Face = $Face # Conversion en numerique des arguments pour les tests qui suivent. # switch ("$Emode") case "$Sequence_DKVP": case "$SequenceT_DKVP": case "$debutS_DKVP": case "$finS_DKVP": set Rdisque=`$xci/disk_video_P$X commande="Blecture" a=$Idisque_DKVP v=$Disque` # Recuperation du disque reellement present (sous forme alphabetique). # if ($status != $OK) then ERRORkP1 "Blecture" pause else endif set Rface=`$xci/disk_video_P$X commande="Blecture" a=$Iface_DKVP v=$_Face` if ($status != $OK) then ERRORkP1 "Blecture" pause else endif @ Rface = $Rface >& $nul if ($status != $OK) then EROR "Le disque est fort probablement demonte, ou bien en mode local." else endif # Recuperation de la face reellement presente (sous forme numerique). ATTENTION : ce # # commentaire doit etre apres le test de '$status', c'est plus prudent... # $xci/disk_video_P$X commande="recherche" a=$imageR_DKVP # Puis, a priori, on retourne a la premiere image. On lira avec interet les commentaires # # relatifs a la definition de '$imageR_DKVP' dans 'v $Fdisk_video_P'... # if ($status != $OK) then ERRORkP1 "recherche" pause else endif breaksw case "$ajoutS_DKVP": set Rdisque=$Disque set Rface=$_Face # On fait comme si le disque etait le bon... # breaksw default: EROR "Le mode n'est pas reconnu." set Rdisque=`$xci/disk_video_P$X commande="Blecture" a=$Idisque_DKVP v=$Disque` # Recuperation du disque reellement present (sous forme alphabetique). # set Rface=`$xci/disk_video_P$X commande="Blecture" a=$Iface_DKVP v=$_Face` @ Rface = $Rface >& $nul if ($status != $OK) then EROR "Le disque est fort probablement demonte, ou bien en mode local." else endif # Recuperation de la face reellement presente (sous forme numerique). ATTENTION : ce # # commentaire doit etre apres le test de '$status', c'est plus prudent... # $xci/disk_video_P$X commande="recherche" a=$imageR_DKVP # Puis, a priori, on retourne a la premiere image. # breaksw endsw if (($Rdisque == $Disque) && ($Rface == $_Face)) then FileTmpB Fliste set FTliste=$Fliste$w # Generation d'un fichier temporaire destine a contenir la liste des numeros d'image, et # # son nettoyage a priori... # set Image_unique="UNIQUE" # Code destine a indiquer qu'il s'agit d'une image unique et non pas d'une sequence... # if (($premiereI == $Image_unique) && ($derniereI == $Image_unique)) then echo $Image_unique \ > $Fliste set Gliste=$status # Cas ou la liste se reduit a une image unique de nom donne (sans numero a generer...). # else $xci/nombres$X A=$K_VIDE p=$premiereI d=$derniereI pas=$Pas lignes=VRAI \ > $Fliste set Gliste=$status # Recuperation de la liste des images a visualiser, mais on notera qu'autrefois je # # faisais : # # # # set liste=`$FINDc -type f -name $racine\* -print | $SOR` # # # # cette modification provenant de l'introduction du mode "RVB"... # # # # ATTENTION, autrefois, je faisais : # # # # set liste=`$xci/nombres$X A=$racine p=$premiereI d=$derniereI pas=$Pas` # # # # mais l'inconvenient est que l'on risque de generer ainsi une liste qui demande trop # # d'octets par rapport a ce que le 'C-Shell' de ce SYSTEME tolere... # endif set Nliste=`$CA $Fliste | $WC` set Nliste=$Nliste[$WC1] # Nombre d'images reellement a enregistrer... # if (($Gliste == $OK) && ($Nliste >= 1)) then # ATTENTION, le test de '$status' est destine a valider l'operation d'initialisation de # # '$liste' ci-dessus. En effet, la longueur (en octets de tels "objets" est limitee par les # # 'C-Shells" et ce de facon variable suivant les SYSTEMEs...). # CD $disque # Placons nous dans le directory correspondant au disque et a la face demandes. # set last=`$FIN $Dcourant $follow -type f -name \[0-9\]\*$limiteur_DKVP\[0-9\]\* -print | $SOR | $TAI -1` # ATTENTION, autrefois, je faisais : # # # # set last=`$FIN ... ! -name $Fnota ! -name \*$Y ! -name \*$Z -print...` # # # # mais cela presentait un defaut lorsque, par exemple, un fichier '$Fdump' apparaissait... # # En procedant ainsi, la probabilite est tres faible de voir un fichier autre qu'un # # descripteur de sequence apparaisse en queue de la liste ici recuperee... # set last=`echo $last | $SE -e "s/$INUTILE"'$//'` set last=`echo $last | $R "$K_NL" "$K_BLANC"` set last=`echo $last | $R "$Dcourant" "$K_BLANC"` set last=`echo $last | $R "$K_sepS" "$K_BLANC"` set Slast=$last set last=("PAS_DE_SEQUENCE" $last) set last=$last[$#last] # Recuperation de la derniere sequence enregistree, la suppression de l'eventuel '$INUTILE' # # ayant ete introduite le 20020228101042. # if ($last == "PAS_DE_SEQUENCE") then @ premiereP = $image1_DKVP - 1 set precedenteP=$premiereP # Lorsqu'aucune image n'a ete enregistree, on commence sur la 1 qui est inaccessible # # ce qui n'a aucune importance puisqu'on va la sauter (a noter le '-1' rendu necessaire # # par le '+1' qui est ci-dessous. # else set premiereP=`echo $last | $R "$limiteur_DKVP" "$K_BLANC"` if ($#premiereP == 2) then set precedenteP=$premiereP[$debut_DKVP] # On conserve le debut de la derniere sequence enregistree. # set premiereP=$premiereP[$fin_DKVP] # Lorsque des images ont ete enregistrees, on recupere la derniere. # else EROR "Un nom de sequence est bizarre." set precedenteP=$premiereP[$debut_DKVP] set premiereP=$premiereP[$debut_DKVP] endif endif @ premiereP = $premiereP + 1 # Numero de la premiere image a enregistrer. # @ derniereP = $premiereP + $Nliste @ derniereP = $derniereP - 1 # Numero de la derniere image a enregistrer. # if ($derniereP > $imageN_DKVP) then EROR "La sequence est trop longue par rapport a la place restant a priori disponible" EROR "(le disque/face demande est '$disque')." pause else endif set LzSeQuEnCe=`ls | $GRE "^$MalImplante_DKVP""[0-9][_0-9]*$K_DOLLAR"` # Regardons s'il y a des sequences mal implantees... # if ("$LzSeQuEnCe" != "$K_VIDE") then # Cas ou il y au moins une sequence mal implantee : # foreach zSeQuEnCe ($LzSeQuEnCe) set zSeQuEnCePD=`echo $zSeQuEnCe | $SE -e "s/^$MalImplante_DKVP//"` set zSeQuEnCePD=`echo $zSeQuEnCePD | $R "$limiteur_DKVP" "$K_BLANC"` set premiereZ=$zSeQuEnCePD[$debut_DKVP] set derniereZ=$zSeQuEnCePD[$fin_DKVP] # Test pour chaque sequence mal implantee. # if ( ( ($premiereP >= $premiereZ) \ && ($premiereP <= $derniereZ) \ ) \ || ( ($derniereP >= $premiereZ) \ && ($derniereP <= $derniereZ) \ ) \ || ( ($premiereP < $premiereZ) \ && ($derniereP > $derniereZ) \ ) \ ) then EROR "La sequence chevauche la sequence mal implantee '$zSeQuEnCe'." pause else endif end endif unset LzSeQuEnCe zSeQuEnCe zSeQuEnCePD premiereZ derniereZ set Precedente=`$xci/nombres$X A="$K_VIDE" p=$precedenteP d=$precedenteP n=$chiffres_DKVP` set Premiere=`$xci/nombres$X A="$K_VIDE" p=$premiereP d=$premiereP n=$chiffres_DKVP` set Derniere=`$xci/nombres$X A="$K_VIDE" p=$derniereP d=$derniereP n=$chiffres_DKVP` # Nota : on fait la generation des deux numeros en deux fois afin d'eliminer # # le 'BLANC' que '$xci/nombres$X' place derriere chaque numero. # switch ("$Emode") case "$Sequence_DKVP": case "$SequenceT_DKVP": case "$debutS_DKVP": set Sequence=$Premiere$limiteur_DKVP$Derniere # Nom de la sequence a generer. # set Debut=$Premiere # Adresse du debut de la sequence a visionner avant l'enregistrement. # breaksw case "$ajoutS_DKVP": case "$finS_DKVP": if (-e $Slast) then set Sequence=$Precedente$limiteur_DKVP$Derniere # Nom de la sequence a generer. # set Debut=$Precedente # Adresse du debut de la sequence a visionner avant l'enregistrement. # if (! -e $Sequence) then $MV $Slast $Sequence rw $Sequence else EROR "La sequence '$Sequence' existe deja." endif # On change le nom de la sequence precedente afin d'integrer les nouvelles images # # et on l'autorise en ecriture. # else set Sequence=$Premiere$limiteur_DKVP$Derniere # Nom de la sequence a generer. # set Debut=$Premiere # Adresse du debut de la sequence a visionner avant l'enregistrement. # endif breaksw default: EROR "Le mode n'est pas reconnu, on force '$debutS_DKVP'." set Sequence=$Premiere$limiteur_DKVP$Derniere # Nom de la sequence a generer. # set Debut=$Premiere # Adresse du debut de la sequence a visionner avant l'enregistrement. # breaksw endsw if (($Emode == $debutS_DKVP) && (-e $Sequence)) then EROR "BIZARRE, la sequence existe deja ($disque$K_sepS$Sequence)." else if ($?X_WINDOW == $EXIST) then (XSET s off) >& $nul # On inhibe l'economiseur d'ecran afin d'etre sur d'avoir toujours l'image... # else endif switch ("$Emode") case "$ajoutS_DKVP": case "$finS_DKVP": breaksw case "$Sequence_DKVP": case "$SequenceT_DKVP": case "$debutS_DKVP": echo `d` >>! $Sequence # ATTENTION, on verra dans le fichier 'v $Fdisk_video_P' l'usage qui est fait de la date via # # # # $AW /.:..:./,/palette/ $Se1 # # # # \______/ # # # # (Heures, Minutes, Secondes) # # # # dans l'alias 'xivPdf'. # echo "systeme = "$dSYSTEME >>! $Sequence echo "machine = "$sHOTE >>! $Sequence saut >>! $Sequence if ("$Palette" == "$RVB_DKVP") then echo "palette = "$Palette >>! $Sequence else Grelatif $Palette $xiP if ("$nomR" != "$Palette") then echo "palette = "'$xiP'"$K_sepS"$nomR >>! $Sequence else echo "palette = "$Palette >>! $Sequence endif endif saut >>! $Sequence breaksw default: EROR "Le mode n'est pas reconnu." breaksw endsw set couranteP=$premiereP # Numero de l'image courante a enregistrer. # set Periode=0 # Afin de controler la periodicite de diffusion de l'etat courant de la sequence enregistree # # lorsque cette operation est demandee via '$Rec_view_DKVP'... # set PCourante="$K_VIDE" # Afin de savoir que l'on est en train d'enregistrer la premiere image... # set Iliste=$EXIST # Afin de controler la fin de l'iteration sur les images... # while ($Iliste == $EXIST) # ATTENTION, il y avait autrefois ici un 'foreach(...)', mais un debordement de sa capacite # # a ete mis en evidence lors de l'enregistrement de : # # # # xivPdf 4 2 / 000768_001767 # # # # d'ou cette nouvelle solution... # set numero_image=`$CA $Fliste | $HEA -1` # Recuperation de l'image courante (c'est-a-dire la premiere de la liste), # $CA $Fliste \ | $NL \ | $R "$K_TAB" "$K_BLANC" \ | $SE -e "/^ *1 /d" \ | $AW ' { print $2 } ' \ > $FTliste $DELETE $Fliste $MV $FTliste $Fliste # Puis sa suppression de la liste... # # # # ATTENTION, j'ai essaye : # # # # $E $Fliste << fin_suppression >& $nul # # 1d # # w # # q # # fin_suppression # # # # mais malheureusement, sur 'SYSTEME_SG...' cela ne marche pas pour la derniere ligne, qui # # ne disparait jamais. Ce probleme est explique dans 'v $xamco/19951221114941' (en # # particulier c'est l'usage de '$E' qui provoque cela...). # SIZE $Fliste if ($Fsize == 0) then set Iliste=$NEXIST # La liste etant vide, il n'y aura pas de prochaine iteration... # else endif set Numero_image=$numero_image genom0 Numero_image # Generation d'un numero d'image propre a etre utilise dans 'ERRORkP2' et 'ERRORkP3'... # if ($numero_image == $Image_unique) then set ImagC="$racine""$Postfixe" # Cas d'une image unique qui ne possede donc pas de numero... # if ($Nliste != 1) then EROR "La liste des numeros a plus d'un element pour une image unique." else endif else set ImagC="$racine$numero_image""$Postfixe" # Absolutisation du nom de l'image. Rappelons que l'on procede ainsi dorenavant afin de faire # # que '$liste' ne contenant plus que le numero des images occupe moins d'octets et risque # # donc moins de deborder (ce qui est detecte par un test de '$status' ci-dessus...). # endif if ($couranteP <= $imageN_DKVP) then set Courante=`$xci/nombres$X A="$K_VIDE" p=$couranteP d=$couranteP chiffres=$chiffres_DKVP` @ Periode = $Periode + 1 # Afin de controler la periodicite de diffusion de l'etat courant de la sequence enregistree # # lorsque cette operation est demandee via '$Rec_view_DKVP'... # if (($?Rec_view_DKVP == $NEXIST) || ($Periode < $Per_view_DKVP)) then $xci/disk_video_P$X commande="recherche" adresse=$couranteP # Positionnement direct sur l'image courante. # if ($status != $OK) then $xci/disk_video_P$X commande="recherche" adresse=$couranteP # Lorsqu'il y a eu une erreur dans la recherche precedente, on retente une deuxieme fois (car # # en effet, la deuxieme fois, en general, cela marche mieux...), ce qui evite d'interrompre # # le processus qui est deja bien assez long comme cela en temps normal... # if ($status != $OK) then ERRORkP1 "recherche" ERRORkP2 0 pause else endif else endif else $xci/disk_video_P$X commande="sequence" debut=$Debut fin=$couranteP # Positionnement sur l'image courante par visionnage de la sequence en cours. # if ($status != $OK) then ERRORkP1 "sequence" ERRORkP2 0 pause else endif endif if ($Periode >= $Per_view_DKVP) then set Periode=0 # Afin de controler la periodicite de diffusion de l'etat courant de la sequence enregistree # # lorsque cette operation est demandee via '$Rec_view_DKVP'... # else endif set etat_disque=`$xci/disk_video_P$X commande="etat"` # Recuperation de l'etat du disque. # if ($status != $OK) then ERRORkP1 "etat" ERRORkP2 0 pause else endif while ($#etat_disque < $etat_DKVP) EROR "L'etat du disque a un format anormal ('$etat_disque')." set etat_disque=`$xci/disk_video_P$X commande="etat"` # Et on attend que le format de l'etat du disque soit acceptable.... # if ($status != $OK) then ERRORkP1 "etat" ERRORkP2 0 pause else endif end if ($etat_disque[$etat_DKVP] == $inscriptible_DKVP) then set Synchroniser=$EXIST # Afin de permettre un bouclage de ce qui suit, et d'ainsi se synchroniser sur un eventuel # # producteur des images (cas ou elles sont produites et enregistrees simultanement...). # while ($Synchroniser == $EXIST) set FsizeR=$UNDEF set FsizeV=$UNDEF set FsizeB=$UNDEF # Ceci est destine a eviter le message : # # # # FsizeR: Undefined variable. # # # # dans le test qui suivra et qui utilisent ces variables meme si elles n'ont pas ete # # calculees et sont donc inutiles (cas ("$Palette" != "$RVB_DKVP"))... # set Fsize=$UNDEF # Meme remarque que precedemment... # if ( ("$Palette" == "$RVB_DKVP") \ && ( (-e $Directory/$ImagC$ROUGE) \ && (-e $Directory/$ImagC$VERTE) \ && (-e $Directory/$ImagC$BLEUE) \ ) \ ) then SIZE $Directory/$ImagC$ROUGE set FsizeR=$Fsize SIZE $Directory/$ImagC$VERTE set FsizeV=$Fsize SIZE $Directory/$ImagC$BLEUE set FsizeB=$Fsize else if (("$Palette" != "$RVB_DKVP") && (-e $Directory/$ImagC)) then SIZE $Directory/$ImagC else if ($MessagE_DKVP == $EXIST) then EROR "L'image '$Directory/$ImagC' n'existe pas (1)." else endif endif endif if ($AdjTaille_DKVP == $EXIST) then set ChangeTaille=$NEXIST # A priori, on ne va pas tenter de changer automatiquement le format de l'image, bien que # # l'on soit ici dans le cas ou cela est autorise par '$AdjTaille_DKVP'... # if ("$Palette" == "$RVB_DKVP") then if ( (-e $Directory/$ImagC$ROUGE) \ && (-e $Directory/$ImagC$VERTE) \ && (-e $Directory/$ImagC$BLEUE) \ ) then if ( ( ($FsizeR != $tailleI) \ && ($FsizeV != $tailleI) \ && ($FsizeB != $tailleI) \ ) \ && ( ($FsizeR == $FsizeV) \ && ($FsizeV == $FsizeB) \ && ($FsizeB == $FsizeR) \ ) \ ) then set ChangeTaille=$EXIST # On va tenter un changement automatique du format de l'image... # else endif else endif else if (-e $Directory/$ImagC) then if ($Fsize != $tailleI) then set ChangeTaille=$EXIST # On va tenter un changement automatique du format de l'image... # else endif else endif endif if ($ChangeTaille == $EXIST) then switch ("$FormatI") case "$format_Std": Pal # Lorsqu'on etait en format 'Std', on tente le format 'Pal'... # breaksw case "$format_Pal": Std # Lorsqu'on etait en format 'Pal', on tente le format 'Std'... # breaksw default: # En ce qui concerne les autres formats, on ne fait rien... # breaksw endsw set FormatI="$formatI" # Puis mise a jour eventuelle du "vrai" '$formatI'... # else endif unset ChangeTaille else endif if ( ( ("$Palette" == "$RVB_DKVP") \ && ( ( (-e $Directory/$ImagC$ROUGE) \ && ($FsizeR == $tailleI) \ ) \ && ( (-e $Directory/$ImagC$VERTE) \ && ($FsizeV == $tailleI) \ ) \ && ( (-e $Directory/$ImagC$BLEUE) \ && ($FsizeB == $tailleI) \ ) \ ) \ ) \ || ( ("$Palette" != "$RVB_DKVP") \ && ( (-e $Directory/$ImagC) \ && ($Fsize == $tailleI) \ ) \ ) \ ) then set DRecord=`CtGenom 0 ; Genom0 ; RtGenom` # ATTENTION, a partir du 19980625095659, l'instant precis de l'enregistrement de chaque # # image est memorise dans le fichier '$Sequence'. Cela a pose quelques petits problemes # # dans le fichier 'xivPdf 3 2 / trouve.01$Z' dans l'alias 'Limage' ou il a fallu supprimer # # cette indication qui apparait devant l'adresse de l'image. Ce sont ces contraintes qui # # ont rendues necessaires l'impossibilite de mettre des espaces ci-dessous entre les trois # # composantes {$DRecord,":",$Courante}. # if ($xCWD == $Icwd) then echo "$DRecord$chronologie_DKVP$Courante"' --> '"$xCWD/$ImagC" >>! $Sequence else echo "$DRecord$chronologie_DKVP$Courante"' --> $'"$xCWD/$ImagC" >>! $Sequence endif unset DRecord SYNCHROr DISPLAY $Directory/$ImagC $Palette ATTENDREi # Tentative d'affichage de l'image courante, avec detection de "time-out"... # while ($status_feu != $OK) # Cas ou il y un "time-out" : # set kill_DKVP=$EXIST source $Fdisk_video_P unset kill_DKVP # Lorsqu'un "time-out" est detecte, il est absolument obligatoire de killer le process # # '$xci/display_RVB$X' immediatement, car en effet, deux cas differents sont possibles : # # # # 1-le blocage est du a la fonction 'winopen(...)' de la 'SGL' ; ce process ne se reveillera # # plus jamais, et en fait, il ne serait pas necessaire de le tuer tout de suite. # # # # 2-le blocage est du a un defaut 'NFS' (lorsque ceci est utilise...) ; ici, le defaut peut # # n'etre que transitoire (cas ou par exemple ou la machine 'NFS' est en train de "rebooter"). # # Il y a donc alors le risque tres grand que lors de la disparition du defaut, le process # # se reveille et affiche l'image en meme temps que le nouveau que l'on va creer ci-apres. # # C'est ce deuxieme cas qui implique un kill du process '$xci/display_RVB$X'. # # # # Notons enfin, qu'il est impossible de faire la difference entre ces deux cas... # SYNCHROr # Cette (re-)initialisation des feux est necessaire au cas ou le process '$xci/display_RVB$X' # # se serait reveille juste avant qu'on le tue... # ITERE $Directory/$ImagC $Palette ATTENDREi # Nouvelle tentative d'affichage de l'image courante, avec detection de "time-out"... # end $xci/disk_video_P$X commande="enregistre" adresse=$couranteP if ($status != $OK) then ERRORkP1 "enregistre" ERRORkP3 pause else endif SYNCHROv # Display de l'image courante et enregistrement qui a lieu de la facon suivante : # # # # | # # fROUGE(feu_display_RVB) # # | # # | # # fROUGE(feu_disqueP) # # | # # | # # $xci/display_RVB$X # # ------------------ # # | # # |-----------------> ouverture_de_la_fenetre # # | | # # ATTENDRE(feu_display_RVB) | # # . affichage__de_l'image # # . | # # [iteration eventuelle] DODO(duree) # # [de $xci/display_RVB$X] . # # . . # # . . # # . . # # | < - - - - - - - - fVERT(feu_display_RVB) # # $xci/disk_video_P$X | # # ------------------- ATTENDRE(feu_disqueP) # # | . # # | . # # | . # # | . # # fVERT(feu_disqueP) - - - - - - - - - > | # # | fermeture_de_la_fenetre # # | # # suite... # # # set Synchroniser=$NEXIST # Puisque l'enregistrement a eu lieu, il ne faut plus boucler. # if ("$Deleter" == "VRAI") then # Lorsque cela est demande, l'image courante est detruite apres enregistrement, en general # # afin de faire de la place lorsque, par exemple, le calcul d'une sequence longue a lieu # # simultanement a l'enregistrement... # if ("$Palette" == "$RVB_DKVP") then $DELETE $Directory/$ImagC$ROUGE $DELETE $Directory/$ImagC$VERTE $DELETE $Directory/$ImagC$BLEUE else $DELETE $Directory/$ImagC endif else endif @ couranteP = $couranteP + 1 # Numero de la prochaine image a enregistrer. # else if ($MessagE_DKVP == $EXIST) then if ("$Palette" == "$RVB_DKVP") then EROR "L'image '$Directory/$ImagC' (RVB) n'existe pas (2)," else EROR "L'image '$Directory/$ImagC' n'existe pas (2)," endif EROR "ou sa taille n'est pas conforme au format attendu." else endif if ($Synchroniser_DKVP == $NEXIST) then set Synchroniser=$NEXIST # Lorsque la synchronisation n'est pas demande, on sort de la boucle 'while(...)' meme en # # cas d'erreur... # else endif endif if ($Synchroniser == $EXIST) then sleep $MINUTE # Lorsqu'il faut boucler sur l'image courante, on fait un petit dodo afin de ne pas editer # # trop de messages d'erreur... # else endif end else EROR "La zone d'enregistrement est surement deja enregistree." endif else EROR "Le disque est sature." endif set PCourante="$Courante" # Afin de memoriser l'image qui precedait l'image courante... # end if ($couranteP == $premiereP) then $DELETE_VALIDE $Sequence # Cas ou rien n'a ete enregistre (il n'y a eu que des erreurs...). # else @ couranteP = $couranteP - 1 # Lorsqu'au moins une image a ete enregistre, on revient sur la vraie derniere... # if ($couranteP != $derniereP) then set Derniere=`$xci/nombres$X A="$K_VIDE" p=$couranteP d=$couranteP n=$chiffres_DKVP` set Zequence=$Sequence set Sequence=$Premiere$limiteur_DKVP$Derniere $MV $Zequence $Sequence # Et on change le nom de la sequence afin de prendre en compte le nombre reel d'images qui # # ont ete enregistrees lorsqu'il est different de ce qui avait ete prevu... # else endif $E $Sequence << fin_clear >& $nul 1,\$s/\/\.\//\// w q fin_clear ro $Sequence # Protection du fichier catalogue. # endif switch ("$Emode") case "$debutS_DKVP": case "$ajoutS_DKVP": breaksw case "$Sequence_DKVP": case "$SequenceT_DKVP": case "$finS_DKVP": if (($?Ejection_DKVP == $EXIST) || ("$Ejecter" == "VRAI")) then $xci/disk_video_P$X commande="ejection" # Enfin, on ejecte le disque afin d'economiser le lecteur... # if ($status != $OK) then ERRORkP1 "ejection" pause else endif else endif if (-e $disque/$Sequence) then unite $disque/$Sequence # Et envoi du fichier catalogue a la machine de reference, quand il existe et ce au cas ou # # '$mDKVP' n'est pas '$mREFERENCE'... # else endif breaksw default: EROR "Le mode n'est pas reconnu." breaksw endsw if ($?X_WINDOW == $EXIST) then (XSET s on) >& $nul (XSET s $X_TEMPORISATION) >& $nul (XSET s blank) >& $nul # A la fin, on re-autorise l'economiseur d'ecran... # else endif endif else EROR "La liste d'images argument est vide ou trop longue ($K_DOLLAR""status=$status)." endif FileTmpE Fliste unset FTliste else EROR "Le disque (ou la face) demande(e) n'est pas celui (celle) qui est monte(e)," EROR "xivPdf $Disque $_Face a ete demande," EROR "xivPdf $Rdisque $Rface est monte." endif else EROR "Le disque 'PAL-Beta' n'est surement pas supporte par cette MACHINE." endif else EROR "Le nom du disque ou le numero de la face demande(s) n'existe(nt) pas." endif else EROR "Le nom du disque et le numero de la face sont obligatoires." endif switch ("$SYSTEME") # Nettoyage des images temporaires et des feux de synchronisation. # # # # Discrimination des differents SYSTEMEs possibles : # case "SYSTEME_DPX5000_SPIX_CC": breaksw case "SYSTEME_SG4D20G_IRIX_CC": case "SYSTEME_SG4D25TG_IRIX_CC": case "SYSTEME_SG4D310VGX_IRIX_CC": case "SYSTEME_SG4D35TG_IRIX_CC": case "SYSTEME_SG4D85GT_IRIX_CC": case "SYSTEME_SGIND308_IRIX_CC": case "SYSTEME_SGIND324_IRIX_CC": case "SYSTEME_SGIND3GA_IRIX_CC": case "SYSTEME_SGIND408_IRIX_CC": case "SYSTEME_SGIND424_IRIX_CC": case "SYSTEME_SGIND4GA_IRIX_CC": case "SYSTEME_SGIND508_IRIX_CC": case "SYSTEME_SGIND524_IRIX_CC": case "SYSTEME_SGIND5GA_IRIX_CC": case "SYSTEME_SGIND808_IRIX_CC": case "SYSTEME_SGIND824_IRIX_CC": case "SYSTEME_SGIND8GA_IRIX_CC": case "SYSTEME_SGINDA08_IRIX_CC": case "SYSTEME_SGINDA24_IRIX_CC": case "SYSTEME_SGINDAGA_IRIX_CC": case "SYSTEME_SGO25224_IRIX_CC": case "SYSTEME_SGO252VA_IRIX_CC": case "SYSTEME_SGO252VN_IRIX_CC": FileTmpE nomT $xci/feu_init$X feu=$feu_disqueP breaksw case "SYSTEME_IMPOSSIBLE": case "SYSTEME_APC_LinuxDebian_GCC": case "SYSTEME_APC_LinuxMandrake_GCC": case "SYSTEME_APC_LinuxRedHat_GCC": case "SYSTEME_APC_LinuxUbuntu_GCC": case "SYSTEME_APC_LinuxUbuntu_ICC": case "SYSTEME_APC_LinuxUlmint_GCC": case "SYSTEME_APC_LinuxUlmint_ICC": case "SYSTEME_CRAY2_UNICOS_CC": case "SYSTEME_CRAY2_UNICOS_SCC": case "SYSTEME_CRAYC98_UNICOS_CC": case "SYSTEME_CRAYC98_UNICOS_SCC": case "SYSTEME_CRAYC916_UNICOS_CC": case "SYSTEME_CRAYC916_UNICOS_SCC": case "SYSTEME_CRAYYMP1_UNICOS_CC": case "SYSTEME_CRAYYMP1_UNICOS_SCC": case "SYSTEME_CRAYYMP2_UNICOS_CC": case "SYSTEME_CRAYYMP2_UNICOS_SCC": case "SYSTEME_CRAYYMP4_UNICOS_CC": case "SYSTEME_CRAYYMP4_UNICOS_SCC": case "SYSTEME_DECALPHA340_OSF1_CC": case "SYSTEME_DECALPHA340_OSF1_GCC": case "SYSTEME_DECALPHA350_OSF1_CC": case "SYSTEME_DECALPHA350_OSF1_GCC": case "SYSTEME_DECALPHA464_OSF1_CC": case "SYSTEME_DPX2000_SPIX_CC": case "SYSTEME_ES9000_AIX_CC": case "SYSTEME_FX2800_CONCENTRIX_FXC": case "SYSTEME_FX2800_CONCENTRIX_PCC": case "SYSTEME_FX2800_CONCENTRIX_SCC": case "SYSTEME_FX40_CONCENTRIX_CC": case "SYSTEME_FX40_CONCENTRIX_FXC": case "SYSTEME_HP705_HPUX_CC": case "SYSTEME_HP710_HPUX_CC": case "SYSTEME_HP720_HPUX_CC": case "SYSTEME_HP750_HPUX_CC": case "SYSTEME_HP755_HPUX_CC": case "SYSTEME_HP819_HPUX_CC": case "SYSTEME_NWS3000_NEWSOS_CC": case "SYSTEME_NWS3000_NEWSOS_2CC": case "SYSTEME_RS6000_AIX_CC": case "SYSTEME_SGO200A1_IRIX_CC": case "SYSTEME_SGO200A2_IRIX_CC": case "SYSTEME_SGO200A4_IRIX_CC": case "SYSTEME_SGPCM801_IRIX_CC": case "SYSTEME_SGPCMA01_IRIX_CC": case "SYSTEME_SPS9_ROS_CC": case "SYSTEME_SPS9_ROS_RC": case "SYSTEME_SUN3_SUNOS_CC": case "SYSTEME_SUN4_SUNOS_CC": case "SYSTEME_SUN4NCUBE2S_SUNOS_CC": case "SYSTEME_SUN4NCUBE2S_SUNOS_NCC": case "SYSTEME_VAX8600_ULTRIX_CC": case "SYSTEME_VAX8600_ULTRIX_VCC": case "SYSTEME_VAX9000_ULTRIX_CC": case "SYSTEME_VAX9000_ULTRIX_GCC" case "SYSTEME_VAX9000_ULTRIX_VCC": EROR "Une sequence n'a pas de sens pour '"$SYSTEME"'." breaksw default: # Cas des SYSTEMEs non reconnus : # EROR "Variable 'SYSTEME' (='$SYSTEME') inconnue." breaksw endsw switch ("$SYSTEME") # Restauration de la correction de gamma. # # # # Discrimination des differents SYSTEMEs possibles : # case "SYSTEME_SG4D20G_IRIX_CC": case "SYSTEME_SG4D25TG_IRIX_CC": case "SYSTEME_SG4D310VGX_IRIX_CC": case "SYSTEME_SG4D35TG_IRIX_CC": case "SYSTEME_SG4D85GT_IRIX_CC": case "SYSTEME_SGIND308_IRIX_CC": case "SYSTEME_SGIND324_IRIX_CC": case "SYSTEME_SGIND408_IRIX_CC": case "SYSTEME_SGIND424_IRIX_CC": case "SYSTEME_SGIND508_IRIX_CC": case "SYSTEME_SGIND524_IRIX_CC": case "SYSTEME_SGIND808_IRIX_CC": case "SYSTEME_SGIND824_IRIX_CC": case "SYSTEME_SGINDA08_IRIX_CC": case "SYSTEME_SGINDA24_IRIX_CC": case "SYSTEME_SGO25224_IRIX_CC": Gamma $Gamma_SiliG # Restauration de la correction de gamma standard pour l'ecran standard Silicon Graphics. # breaksw case "SYSTEME_SGIND3GA_IRIX_CC": case "SYSTEME_SGIND4GA_IRIX_CC": case "SYSTEME_SGIND5GA_IRIX_CC": case "SYSTEME_SGIND8GA_IRIX_CC": case "SYSTEME_SGINDAGA_IRIX_CC": case "SYSTEME_SGO252VA_IRIX_CC": case "SYSTEME_SGO252VN_IRIX_CC": # La correction de gamma est inutile ici... # breaksw case "SYSTEME_DPX5000_SPIX_CC": breaksw case "SYSTEME_IMPOSSIBLE": case "SYSTEME_APC_LinuxDebian_GCC": case "SYSTEME_APC_LinuxMandrake_GCC": case "SYSTEME_APC_LinuxRedHat_GCC": case "SYSTEME_APC_LinuxUbuntu_GCC": case "SYSTEME_APC_LinuxUbuntu_ICC": case "SYSTEME_APC_LinuxUlmint_GCC": case "SYSTEME_APC_LinuxUlmint_ICC": case "SYSTEME_CRAY2_UNICOS_CC": case "SYSTEME_CRAY2_UNICOS_SCC": case "SYSTEME_CRAYC98_UNICOS_CC": case "SYSTEME_CRAYC98_UNICOS_SCC": case "SYSTEME_CRAYC916_UNICOS_CC": case "SYSTEME_CRAYC916_UNICOS_SCC": case "SYSTEME_CRAYYMP1_UNICOS_CC": case "SYSTEME_CRAYYMP1_UNICOS_SCC": case "SYSTEME_CRAYYMP2_UNICOS_CC": case "SYSTEME_CRAYYMP2_UNICOS_SCC": case "SYSTEME_CRAYYMP4_UNICOS_CC": case "SYSTEME_CRAYYMP4_UNICOS_SCC": case "SYSTEME_DECALPHA340_OSF1_CC": case "SYSTEME_DECALPHA340_OSF1_GCC": case "SYSTEME_DECALPHA350_OSF1_CC": case "SYSTEME_DECALPHA350_OSF1_GCC": case "SYSTEME_DECALPHA464_OSF1_CC": case "SYSTEME_DPX2000_SPIX_CC": case "SYSTEME_ES9000_AIX_CC": case "SYSTEME_FX2800_CONCENTRIX_FXC": case "SYSTEME_FX2800_CONCENTRIX_PCC": case "SYSTEME_FX2800_CONCENTRIX_SCC": case "SYSTEME_FX40_CONCENTRIX_CC": case "SYSTEME_FX40_CONCENTRIX_FXC": case "SYSTEME_HP705_HPUX_CC": case "SYSTEME_HP710_HPUX_CC": case "SYSTEME_HP720_HPUX_CC": case "SYSTEME_HP750_HPUX_CC": case "SYSTEME_HP755_HPUX_CC": case "SYSTEME_HP819_HPUX_CC": case "SYSTEME_NWS3000_NEWSOS_CC": case "SYSTEME_NWS3000_NEWSOS_2CC": case "SYSTEME_RS6000_AIX_CC": case "SYSTEME_SGO200A1_IRIX_CC": case "SYSTEME_SGO200A2_IRIX_CC": case "SYSTEME_SGO200A4_IRIX_CC": case "SYSTEME_SGPCM801_IRIX_CC": case "SYSTEME_SGPCMA01_IRIX_CC": case "SYSTEME_SPS9_ROS_CC": case "SYSTEME_SPS9_ROS_RC": case "SYSTEME_SUN3_SUNOS_CC": case "SYSTEME_SUN4_SUNOS_CC": case "SYSTEME_SUN4NCUBE2S_SUNOS_CC": case "SYSTEME_SUN4NCUBE2S_SUNOS_NCC": case "SYSTEME_VAX8600_ULTRIX_CC": case "SYSTEME_VAX8600_ULTRIX_VCC": case "SYSTEME_VAX9000_ULTRIX_CC": case "SYSTEME_VAX9000_ULTRIX_GCC": case "SYSTEME_VAX9000_ULTRIX_VCC": # Cas des SYSTEMEs pour lesquels cette sequence n'a pas de sens : # EROR "Une sequence n'a pas de sens pour '"$SYSTEME"'." breaksw default: # Cas des SYSTEMEs non reconnus : # EROR "Variable 'SYSTEME' (='$SYSTEME') inconnue." breaksw endsw if ("$Fvideo_in_use" != "$UNDEF") then # Test introduit le 20130925100711... # delete $Fvideo_in_use # Liberation du dispositif... # else endif