/* CDStruct.h */

#include "Structures/ProgramTitleNode.h"

struct CDStruct
{
        ULONG           unit;                                   /* Unit des SCSI-Geräts */
        ULONG           lun;
        CDxRequest      *cdx;                                   /* <- bis hierhin nicht ändern */
        List            *cdtitles;                              /* Zeiger auf Titel-Liste */
        List            *progtitles;                    /* Zeiger auf Programm-Liste */
        ProgramTitleNode        *actprognode;   /* aktueller Track im Programm */

        UBYTE           searchseconds;
        UBYTE           updatedelay;
        UBYTE           searchmode;
        UBYTE           timemode;                               /* Anzeigemodus - siehe oben */
        UBYTE           repeatmode;
        UBYTE           playmode;
        UBYTE           fileformat;                             /* für Audio-Save */
        UBYTE           freq;                                   /* -||- */

        BOOL            useraction;                             /* Hat der User die Trackveränderung  */
                                                                                /* ausgelöst? wichtig f. Wiederholung */

        UBYTE           num_track;                              /* Anzahl Tracks */
        UBYTE           cur_track;                              /* aktueller Track */
        UBYTE           active;                                 /* siehe cdx_Active */
        UBYTE           time_percentage;                /* Zeit des aktuellen Tracks in % */
                                                                                /* wichtig für Trackslider */
        ULONG           time_curseconds;                /* aktuelle Gesamtzeit in Sekunden */

        char            *cdnameptr;                             /* Damit sich die CDStruct ändern kann, ohne daß */
        char            *artistptr;                             /* das Asm-Zeugs neu gemacht werden muß */

        UBYTE           a_track, b_track;               /* für A-B-Repeat */
        LONG            a_adr, b_adr;                   /* für A-B-Repeat */

        UBYTE           cur_index;                              /* aktueller Index (ist hier, damit LONGs an geraden Adressen liegen) */

        char            buf_cddb_id[10];                /* CD-ID für die CDDB-Database */

        char            buf_ab_time_a[16];
        char            buf_ab_time_b[16];

        char            buf_copy_size[20];

        char            device[31];
        char            cdname[MAXCDNAME + 1];  /* Name der CD */
        char            artistname[MAXARTISTNAME + 1];  /* Name des Interpreten */
        char            diskpath[DISKPATHLENGTH + 1];   /* Pfadangabe für die CD-Titel */
};
