/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        E N V O I   D ' U N E   C O M M A N D E   A U   D I S Q U E   V I D E O   B E T A - P A L  :                               */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$xci/video_P.01$I' :                                                                                            */
/*                                                                                                                                   */
/*                    Jean-Francois Colonna (LACTAMME, 1994??????????).                                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        P A R A M E T R E S  :                                                                                                     */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

#ifdef    __VERSION__COMPILER_LA_GESTION_DU_DISQUE_PAL_BETA
#    define    COMMANDE_VIDE                                                                                                            \
                         "rien"                                                                                                         \
                                        /* Commande vide...                                                                          */

#    define    COMMANDE_VERSION                                                                                                         \
                         "version"                                                                                                      \
                                        /* Commande d'edition de la version.                                                         */

#    define    COMMANDE_D_INITIALISATION_MINIMALE                                                                                       \
                         "initialisation"                                                                                               \
                                        /* Commande de "initialisation minimale".                                                    */
#    define    COMMANDE_D_INITIALISATION_MAXIMALE                                                                                       \
                         "Initialisation"                                                                                               \
                                        /* Commande de "initialisation maximale".                                                    */

#    define    COMMANDE_D_ETAT                                                                                                          \
                         "etat"                                                                                                         \
                                        /* Commande d'etat du disque.                                                                */
#    define    COMMANDE_D_ADRESSE                                                                                                       \
                         "adresse"                                                                                                      \
                                        /* Commande d'adresse courante du disque.                                                    */

#    define    COMMANDE_D_EJECTION                                                                                                      \
                         "ejection"                                                                                                     \
                                        /* Commande d'ejection du disque.                                                            */
#    define    COMMANDE_D_ARRET                                                                                                         \
                         "stop"                                                                                                         \
                                        /* Commande d'arret de la commande en cours.                                                 */
#    define    COMMANDE_DE_REPRISE                                                                                                      \
                         "continue"                                                                                                     \
                                        /* Commande de reprise d'une commande interrompue par la 'COMMANDE_D_ARRET'.                 */
#    define    COMMANDE_DE_SAUVEGARDE                                                                                                   \
                         "push"                                                                                                         \
                                        /* Commande de memorisation de la position courante du  disque.                              */
#    define    COMMANDE_DE_RESTAURATION                                                                                                 \
                         "pull"                                                                                                         \
                                        /* Commande de retour a la position memorisee du disque.                                     */

#    define    COMMANDE_AVANT_UN_PAS                                                                                                    \
                         "+"                                                                                                            \
                                        /* Commande d'avance d'une image.                                                            */
#    define    COMMANDE_ARRIERE_UN_PAS                                                                                                  \
                         "-"                                                                                                            \
                                        /* Commande de recul d'une image.                                                            */
#    define    COMMANDE_AVANT_LENT                                                                                                      \
                         "+L"                                                                                                           \
                                        /* Commande de "play" en marche avant Lente.                                                 */
#    define    COMMANDE_ARRIERE_LENT                                                                                                    \
                         "-L"                                                                                                           \
                                        /* Commande de "play" en marche arriere Lente.                                               */
#    define    COMMANDE_AVANT_NORMAL                                                                                                    \
                         "+N"                                                                                                           \
                                        /* Commande de "play" en marche avant Normale.                                               */
#    define    COMMANDE_ARRIERE_NORMAL                                                                                                  \
                         "-N"                                                                                                           \
                                        /* Commande de "play" en marche arriere Normale.                                             */
#    define    COMMANDE_AVANT_RAPIDE                                                                                                    \
                         "+R"                                                                                                           \
                                        /* Commande de "play" en marche avant Rapide.                                                */
#    define    COMMANDE_ARRIERE_RAPIDE                                                                                                  \
                         "-R"                                                                                                           \
                                        /* Commande de "play" en marche arriere Ultra-rapide.                                        */
#    define    COMMANDE_AVANT_ULTRA_RAPIDE                                                                                              \
                         "+U"                                                                                                           \
                                        /* Commande de "play" en marche avant Ultra-rapide.                                          */
#    define    COMMANDE_ARRIERE_ULTRA_RAPIDE                                                                                            \
                         "-U"                                                                                                           \
                                        /* Commande de "play" en marche arriere Rapide.                                              */

#    define    COMMANDE_DE_RECHERCHE_D_UNE_IMAGE                                                                                        \
                         "recherche"                                                                                                    \
                                        /* Commande de "recherche" d'une image d'adresse donnee.                                     */

#    define    COMMANDE_DE_LECTURE_D_UNE_SEQUENCE                                                                                       \
                         "sequence"                                                                                                     \
                                        /* Commande de lecture d'une "sequence" d'images d'adresses donnees.                         */
#    define    COMMANDE_DE_LECTURE_F_SCAN_D_UNE_SEQUENCE                                                                                \
                         "sequence+U"                                                                                                   \
                                        /* Commande de lecture Ultra-rapide d'une "sequence" d'images d'adresses donnees.            */
#    define    COMMANDE_DE_LECTURE_F_FAST_D_UNE_SEQUENCE                                                                                \
                         "sequence+R"                                                                                                   \
                                        /* Commande de lecture Rapide d'une "sequence" d'images d'adresses donnees.                  */
#    define    COMMANDE_DE_LECTURE_F_PLAY_D_UNE_SEQUENCE                                                                                \
                         "sequence+N"                                                                                                   \
                                        /* Commande de lecture Normale d'une "sequence" d'images d'adresses donnees.                 */
#    define    COMMANDE_DE_LECTURE_F_SLOW_D_UNE_SEQUENCE                                                                                \
                         "sequence+L"                                                                                                   \
                                        /* Commande de lecture Lente d'une "sequence" d'images d'adresses donnees.                   */
#    define    COMMANDE_DE_LECTURE_F_STEP_D_UNE_SEQUENCE                                                                                \
                         "sequence+"                                                                                                    \
                                        /* Commande de lecture pas a pas d'une "sequence" d'images d'adresses donnees.               */

#    define    COMMANDE_DE_LECTURE_R_PLAY_D_UNE_SEQUENCE                                                                                \
                         "sequence-N"                                                                                                   \
                                        /* Commande de lecture Normale d'une "sequence" d'images d'adresses donnees                  */ \
                                        /* en marche arriere (introduite le 20030204133403). On notera que le 20030204175736,        */ \
                                        /* j'ai supprime les commandes :                                                             */ \
                                        /*                                                                                           */ \
                                        /*                  COMMANDE_DE_LECTURE_R_SCAN_D_UNE_SEQUENCE         "sequence-U"           */ \
                                        /*                  COMMANDE_DE_LECTURE_R_FAST_D_UNE_SEQUENCE         "sequence-R"           */ \
                                        /*                  COMMANDE_DE_LECTURE_R_SLOW_D_UNE_SEQUENCE         "sequence-L"           */ \
                                        /*                  COMMANDE_DE_LECTURE_R_STEP_D_UNE_SEQUENCE         "sequence-"            */ \
                                        /*                                                                                           */ \
                                        /* qui ne voulaient pas fonctionner...                                                       */

#    define    COMMANDE_D_ENREGISTREMENT_D_UNE_IMAGE                                                                                    \
                         "enregistre"                                                                                                   \
                                        /* Commande d'"enregistrement" d'une image d'adresse donnee.                                 */
#    define    COMMANDE_D_ENREGISTREMENT_EN_CONTINU_D_UNE_SEQUENCE                                                                      \
                         "Senregistre"                                                                                                  \
                                        /* Commande d'"enregistrement" d'une sequence d'images en continu.                           */

#    define    COMMANDE_DE_RECHERCHE_D_UN_BLOC_DE_DONNEES                                                                               \
                         "Brecherche"                                                                                                   \
                                        /* Commande de "recherche" d'un bloc de donnees numeriques d'adresse donnee.                 */
#    define    COMMANDE_DE_LECTURE_D_UN_BLOC_DE_DONNEES                                                                                 \
                         "Blecture"                                                                                                     \
                                        /* Commande de "recherche" d'un bloc de donnees numeriques d'adresse donnee et lecture.      */
#    define    COMMANDE_D_ENREGISTREMENT_D_UN_BLOC_DE_DONNEES                                                                           \
                         "Benregistre"                                                                                                  \
                                        /* Commande d'"enregistrement" d'un bloc de donnees numeriques d'adresse donnee.             */

#    define    ADRESSE_COURANTE                                                                                                         \
                         PREMIERE_IMAGE_PAL_BETA                                                                                        \
                                        /* Adresse d'une image sur le disque.                                                        */

#    define    RALENTI_COURANT                                                                                                          \
                         UN                                                                                                             \
                                        /* Taux de ralenti.                                                                          */
#    define    DONNEES                                                                                                                  \
                         ZERO                                                                                                           \
                                        /* Valeur numerique courante.                                                                */

#    if        (         (defined(SYSTEME_APC_LinuxDebian_GCC))                                                                         \
               ||        (defined(SYSTEME_APC_LinuxMandrake_GCC))                                                                       \
               ||        (defined(SYSTEME_APC_LinuxRedHat_GCC))                                                                         \
               ||        (defined(SYSTEME_APC_LinuxUbuntu_GCC))                                                                         \
               ||        (defined(SYSTEME_APC_LinuxUbuntu_ICC))                                                                         \
               ||        (defined(SYSTEME_APC_LinuxUlmint_GCC))                                                                         \
               ||        (defined(SYSTEME_APC_LinuxUlmint_ICC))                                                                         \
                )
#         define    PERMUTER_LES_OCTETS_D_UN_BLOC_DE_DONNEES                                                                            \
                              VRAI                                                                                                      \
                                        /* Afin de savoir s'il faut ou pas permuter les octets d'un bloc de donnees. Ceci a ete      */ \
                                        /* introduit le 20041221121248 pour permettre aux 'SYSTEME_APC's de pouvoir recuperer les    */ \
                                        /* blocs de donnees ecrits il y a bien longtemps sur 'SYSTEME_SGIND'...                      */
#    Aif       (         (defined(SYSTEME_APC_LinuxDebian_GCC))                                                                         \
               ||        (defined(SYSTEME_APC_LinuxMandrake_GCC))                                                                       \
               ||        (defined(SYSTEME_APC_LinuxRedHat_GCC))                                                                         \
               ||        (defined(SYSTEME_APC_LinuxUbuntu_GCC))                                                                         \
               ||        (defined(SYSTEME_APC_LinuxUbuntu_ICC))                                                                         \
               ||        (defined(SYSTEME_APC_LinuxUlmint_GCC))                                                                         \
               ||        (defined(SYSTEME_APC_LinuxUlmint_ICC))                                                                         \
                )
#         define    PERMUTER_LES_OCTETS_D_UN_BLOC_DE_DONNEES                                                                            \
                              FAUX                                                                                                      \
                                        /* Pour assurer la compatibilite anterieur au 20041221121248...                              */
#    Eif       (         (defined(SYSTEME_APC_LinuxDebian_GCC))                                                                         \
               ||        (defined(SYSTEME_APC_LinuxMandrake_GCC))                                                                       \
               ||        (defined(SYSTEME_APC_LinuxRedHat_GCC))                                                                         \
               ||        (defined(SYSTEME_APC_LinuxUbuntu_GCC))                                                                         \
               ||        (defined(SYSTEME_APC_LinuxUbuntu_ICC))                                                                         \
               ||        (defined(SYSTEME_APC_LinuxUlmint_GCC))                                                                         \
               ||        (defined(SYSTEME_APC_LinuxUlmint_ICC))                                                                         \
                )

#    define    NOMBRE_DE_REPETITIONS                                                                                                    \
                         UN                                                                                                             \
                                        /* Nombre de repetitions pour une lecture quelconque d'une sequence.                         */
#    define    AFFICHAGE_SUR_LE_MONITEUR                                                                                                \
                         VRAI                                                                                                           \
                                        /* Faut-il afficher des informations sur le moniteur de controle ? Ce parametre n'est        */ \
                                        /* pris en compte qu'a l'initialisation...                                                   */
#Aifdef   __VERSION__COMPILER_LA_GESTION_DU_DISQUE_PAL_BETA
#Eifdef   __VERSION__COMPILER_LA_GESTION_DU_DISQUE_PAL_BETA




Copyright © Jean-François Colonna, 2019-2021.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / Ecole Polytechnique, 2019-2021.