home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 13 / AACD13.ISO / AACD / Utilities / ACDPlay / src / V1.5 / ACDPlay.h.BAK < prev    next >
Text File  |  1997-12-02  |  10KB  |  264 lines

  1. /*
  2. *    ACDPlay - DER fantastische CDDA-Player für den Amiga
  3. *
  4. *                        Include V1.2
  5. *                  passend zu ACDPlay.c V1.6
  6. *
  7. *  Autor   Version   Datum      Veränderungen
  8. * ------- --------- --------   ------------------------------------------
  9. *    mak        0.11    22.09.96    Ersterstellung
  10. *    mak        0.12    23.09.96    alles dokumentiert
  11. *    mak        0.13    26.09.96    ACDPConfig-Struktur dazu
  12. *    MC3        0.14    28.09.96     Commodityspezifisches in Application-Struktur
  13. *    MC3        0.15    29.09.96    3 neue Config-Elemente (Commodity-Tooltypes)
  14. *    mak        0.16    07.10.96    Application.activewindow rausgenommen
  15. *                    08.10.96    ACDPConfig verändert
  16. *    MC3        0.17    15.10.96    CDStruct-Zeiger aus der Application-Struktur entfernt
  17. *                                Flag-Word in Config- und Application-Struktur eingebaut
  18. *    MC3        0.18    16.10.96    CDStruct ist wieder drin...
  19. *    mak        0.19    18.10.96    Screennotifyspezifisches in App-Struktur eingefügt
  20. *    MC3        0.20    20.10.96    pubscreenname[] und pubscreenlist eingefügt
  21. *            0.21    22.10.96    vorläufiges CDTitleNode
  22. *    mak        0.22    26.10.96    nicht lokalisierbare Texte hierher kopiert
  23. *                                kleinere Änderungen
  24. *    MC3        0.23    26.10.96    time_percentage in CDStruct
  25. *                    31.10.96    time_curseconds in CDStruct
  26. *            0.24    06.11.96    Neuigkeiten in CDStruct
  27. *                    07.11.96    String-Buffer eingefügt (Application), n. Fenster
  28. *            0.25    09.11.96    '_'-Zeichen in Zahlen-Array eingefügt, n. Fenster
  29. *                    10.11.96    Neue Variable in App und Config: hotkeymode
  30. *            0.26    11.11.96    Tooltypeflag-Variable
  31. *            0.27    14.11.96    timemode in Application, menustrip nur in Application
  32. *    mak        0.28    23.11.96    ARexxport dazu
  33. *    MC3        0.29    24.11.96    ProgramTitleNode dazu
  34. **                    29.11.96    Noch ein Fenster
  35. **                    30.11.96    WinTitleBuffer erhöht (Titellänge erhöht)
  36. *    mak        0.30    20.11.96    Noch ein Fenster mehr
  37. *                                Textbuffer ans Ende der AppStruct verlegt um Pointern
  38. *                                an ungeraden Adressen vorzubeugen
  39. *    MC3        0.31    07.12.96    Node-Strukturen verändert
  40. *                    08.12.96    magicwbflag in app freigegeben
  41. *                    10.12.96    CDStruct und Config verändert
  42. *            1.0        14.12.96    timebuf (o.ä.) vergrößert, Buffer für CD-Info-Gad zu haben
  43. *            1.01    01.01.97    einiges geändert, u.a. in AppWin
  44. *                    04.01.97    2 neue Strukturen
  45. *
  46. *            1.1        26.01.97    Config-Struktur eingespart, etc, etc...
  47. *            1.12    29.01.97    AppIcon-Zeugs eingebaut
  48. *    mak        1.13    02.02.97    CDxRequest Zeiger in CDStruct eingebaut
  49. *
  50. *    MC3                14.02.97    Wichtig: Gadget-Define-Reihenfolge verändert!
  51. *                    15.02.97    struct DirNode dazu
  52. *                    16.02.97    Application noch größer...
  53. *    mak        1.14    25.03.97    Application für Asm umstrukturiert
  54. *                    28.03.97    Volumefenster dazu
  55. *                                Konfigversion auf 3 gesetzt
  56. *
  57. *    MC3        1.15    28.03.97    cdstr->searchmode dazugefügt
  58. *
  59. *    mak        1.16    03.03.97    cdstr->cur_index hinzugefügt
  60. *            1.17    27.04.97    app->orgprwin dazu
  61. *                                Pointer für 'rexxcmds.s' in die CDStruct eingebaut
  62. *            1.18    16.07.97    appwin->request / Busy-Flag dazu
  63. *
  64. *    MC3        1.2        13.11.97    neues Fenster hinzu -> Audio Save
  65. *                                außerdem viele neue Variablen für's SCSI-Kopieren
  66.  */
  67.  
  68. /********************
  69. ***** Konstanten **********************************************************
  70.  ********************/
  71.  
  72. /* nicht lokalisierte Texte */
  73. char PROG_NAME[]    = "ACDPlay";
  74.  
  75. char *TEXT_MAIN_DIRECTCHOICE0[]    = {"_1",  "_2",  "_3",  "_4",  "_5",  "_6",  "_7",  "_8",  "_9",  "1_0", NULL};
  76. char *TEXT_MAIN_DIRECTCHOICE1[]    = {"11", "12", "13", "14", "15", "16", "17", "18", "19", "20", NULL};
  77.  
  78. /********************
  79. ***** Strukturen **********************************************************
  80.  ********************/
  81.  
  82. /*------------------------------ BevelBox --------------------------------*/
  83. struct BevelBox
  84. {
  85.     struct BevelBox        *bb_NextBevelBox;
  86.     WORD                bb_LeftEdge;
  87.     WORD                bb_TopEdge;
  88.     WORD                bb_Width;
  89.     WORD                bb_Height;
  90.     UBYTE                bb_FrameType;    /* BBFT_BUTTON, BBFT_RIDGE, BBFT_ICONDROPBOX, V39 */
  91.     BOOL                bb_Recessed;
  92.     APTR                bb_VisualInfo;
  93. };
  94. /*------------------------------ Scroll ----------------------------------*/
  95. struct Scroll
  96. {
  97.     char                 **Text;
  98.     BYTE                *Flags;    /* Flags für jeden Text einzeln, sehr unkomfortabel */
  99.     WORD                LeftEdge;
  100.     WORD                TopEdge;
  101.     WORD                Width;
  102.     WORD                Height;
  103.     TextAttr            *Font;
  104.  
  105.     /* interne Daten */
  106.     WORD                p_height;
  107.     WORD                p_pos;
  108.     struct RastPort        *RPort;
  109.     struct Image        Img;
  110. };
  111. /*------------------------------ ProgramTitleNode ------------------------*/
  112. struct ProgramTitleNode
  113. {
  114.     struct Node        ptn_Node;        /* ln_Name zeigt auf Titelnamen (Listen) */
  115.     BOOL            ptn_randomplayed;
  116.     UBYTE            ptn_track;        /* Tracknummer */
  117. };
  118. /*------------------------------ DirNode ---------------------------------*/
  119. struct DirNode
  120. {
  121.     struct MinNode    dn_Node;
  122.     char            dn_Name[31];
  123. };
  124.  
  125. /*------------------------------ CDStruct --------------------------------*/
  126. struct CDStruct
  127. {
  128.     ULONG        unit;                    /* Unit des SCSI-Geräts */
  129.     ULONG        lun;
  130.     CDxRequest    *cdx;                    /* <- bis hierhin nicht ändern */
  131.     List        *cdtitles;                /* Zeiger auf Titel-Liste */
  132.     List        *progtitles;            /* Zeiger auf Programm-Liste */
  133.     ProgramTitleNode    *actprognode;    /* aktueller Track im Programm */
  134.  
  135.     UBYTE        searchseconds;
  136.     UBYTE        updatedelay;
  137.     UBYTE        searchmode;
  138.     UBYTE        timemode;                /* Anzeigemodus - siehe oben */
  139.     UBYTE        repeatmode;
  140.     UBYTE        playmode;
  141.     UBYTE        fileformat;                /* für Audio-Save */
  142.     UBYTE        freq;                    /* -||- */
  143.  
  144.     BOOL        useraction;                /* Hat der User die Trackveränderung  */
  145.                                         /* ausgelöst? wichtig f. Wiederholung */
  146.  
  147.     UBYTE        num_track;                /* Anzahl Tracks */
  148.     UBYTE        cur_track;                /* aktueller Track */
  149.     UBYTE        active;                    /* siehe cdx_Active */
  150.     UBYTE        time_percentage;        /* Zeit des aktuellen Tracks in % */
  151.                                         /* wichtig für Trackslider */
  152.     ULONG        time_curseconds;        /* aktuelle Gesamtzeit in Sekunden */
  153.  
  154.     char         *cdnameptr;                /* Damit sich die CDStruct ändern kann, ohne daß */
  155.     char         *artistptr;                /* das Asm-Zeugs neu gemacht werden muß */
  156.  
  157.     UBYTE        a_track, b_track;        /* für A-B-Repeat */
  158.     LONG        a_adr, b_adr;            /* für A-B-Repeat */
  159.  
  160.     UBYTE        cur_index;                /* aktueller Index (ist hier, damit LONGs an geraden Adressen liegen) */
  161.  
  162.     char        buf_cddb_id[10];        /* CD-ID für die CDDB-Database */
  163.  
  164.     char        buf_ab_time_a[16];
  165.     char        buf_ab_time_b[16];
  166.  
  167.     char        buf_copy_size[20];
  168.  
  169.     char        device[31];
  170.     char        cdname[MAXCDNAME + 1];    /* Name der CD */
  171.     char        artistname[MAXARTISTNAME + 1];    /* Name des Interpreten */
  172.     char        diskpath[DISKPATHLENGTH + 1];    /* Pfadangabe für die CD-Titel */
  173. };
  174. /*------------------------------ AppWin ----------------------------------*/
  175. struct AppWin
  176. {
  177.     Window        *window;                /* Zeiger auf das Fenster */
  178.                                         /* Erst überprüfen ob überhaupt */
  179.                                         /* ein Fenster da ist */
  180.     BOOL        winopen;                /* ob das Fenster geöffnet werden soll */
  181.     UWORD         minsize[4];                /* Größe und Position 1 */
  182.     UWORD         maxsize[4];                /* Größe und Position 2 (ZIP) */
  183.     UWORD        minwidth, minheight;    /* Beschränkung bei Größenveränderung */
  184.     UWORD        maxwidth, maxheight;    /* des Fensters */
  185.     Gadget        **gadget;                /* Zeigerzeiger auf Gadget */
  186.     Gadget        *gadgetlist;            /* Zeiger auf Gadgetliste */
  187.     IntuiText    *itext;                    /* IntuiText-Liste für Fenster */
  188.     Image        *img;                    /* Image-Liste für das Fenster */
  189.     struct BevelBox *bbox;
  190.     Requester        *request;                /* zum Blockieren von Fenstern */
  191. };
  192. /*------------------------------ Application -----------------------------*/
  193. struct Application
  194. {
  195.     Screen            *screen;                /* PublicScreen, */
  196.                                             /* auch um zu testen ob */
  197.                                             /* Application geöffnet ist */
  198.     List             *pubscreenlist;            /* Liste aller Public-Screens */
  199.  
  200.     UWORD            hotkeymode;                /* Was tun bei Hotkey und Application offen? */
  201.     UWORD            Flags;                    /* Flags für Application s.o. */
  202.     APTR            visualinfo;                /* VisualInfo für GadTools */
  203.     TextAttr        *font;                    /* benutzter font */
  204.  
  205.     struct MsgPort    *idcmp;                    /* shared IDCMP */
  206.     struct MsgPort    *broker_mp;                /* Messageport für Broker */
  207.     struct MsgPort    *appicon_mp;            /* Messageport für's AppIcon */
  208.     struct MsgPort  *scrnotify_mp;            /* Messageport für Screennotify Events */
  209.     struct MsgPort    *arexx_mp;                /* öffentlicher ARexxport 'ACDPLAY' */
  210.  
  211.     struct CDStruct *cdstr;                    /* Zeiger auf CDStruct-Struktur */
  212.                                             /* <- bis hierhin nicht ändern! */
  213.     struct Scroll    *scroller;                /* für den Scroller im About-Fenster */
  214.  
  215.     struct AppWin    appwin[ANZ_WINDOWS];    /* für jedes Window ein Feld */
  216.     struct AppAsl    appasl[ANZ_ASL];        /* Daten für ASL-Requester */
  217.     Menu            *menustrip;                /* Menü für alle Fenster */
  218.  
  219.     BYTE            edit_pos;                /* Welche Position im Edit-Window? */
  220.     BOOL            magicwbmode;             /* wird noch nicht unterstützt */
  221.     UWORD            flag_tool;                /* Flags von speziellen Tooltypes */
  222.     UWORD            flag_main;                /* Enthält Flags für die GUI-Elemente in MAIN */
  223.  
  224.     CxObj            *broker;                /* Commodity-Broker */
  225.     CxObj            *filter_popkey;
  226.     CxObj            *sender_popkey;
  227.     CxObj            *translate_popkey;
  228.     CxObj            *filter_timer;
  229.     CxObj            *sender_timer;
  230.     BYTE            cx_priority;            /* Priorität -128 bis 127 */
  231.     BOOL            cx_popup;                /* Beim Start öffnen? */
  232.  
  233.     APTR            snhandle_wbench;        /* Zeiger auf ScreenNotifyHandle für WB-Events */
  234.  /*    APTR            snhandle_closescr;    */    /* Zeiger auf ScreenNotifyHandle für CloseScreen()-Events */
  235.  
  236.     struct List        *arexxdir;                /* Zeiger auf Dateinamenliste */
  237.  
  238.     struct AppIcon    *appicon;                /* Alles für's AppIcon */
  239.     struct DiskObject    *diskobj;
  240.     char            *progname;                /* Zeiger auf Programmnamen */
  241.     struct Window    *orgprwin;                /* Zeiger auf das Fenster das ursprünglich in der Process-Struktur stand */
  242.                                             /* NICHT VERÄNDERN! */
  243.     char            pubscreenname[MAXPUBSCREENNAME + 1]; /* Name des Public-Screens */
  244.     char            winmaintitlebuf[MAXCDNAME + 50 + 3];        /* Möglicherweise keine gute Umsetzung, */
  245.     char            wintitlestitlebuf[MAXCDNAME + MAXARTISTNAME + 3];    /* schreib' mal Deine Meinung.. */
  246.     char            timeshowbuf[30];        /* für die Zeitanzeige */
  247.                                             /* ab 20 beginnt der andere Gad-Buffer */
  248.     char            cx_popkey[41];            /* Input Description String */
  249. };
  250.  
  251. /*------------------------------ MyPubScreenNode -------------------------*/
  252. struct MyPubScreenNode
  253. {
  254.     struct Node        mpsn_Node;        /* ln_Name zeigt auf den Screennamen */
  255.     char            mpsn_pubscreenname[MAXPUBSCREENNAME + 1];
  256. };
  257. /*------------------------------ CDTitleNode -----------------------------*/
  258. struct CDTitleNode
  259. {
  260.     struct Node        cdtn_Node;        /* ln_Name zeigt auf Titelnamen */
  261.     BOOL            cdtn_randomplayed;    /* TRUE, wenn im Zufallsmodus schon gespielt worden */
  262.     char            cdtn_titlename[MAXTITLENAME + 1];
  263. };
  264.