#!/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