home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
AmigActive 13
/
AACD13.ISO
/
AACD
/
Utilities
/
ACDPlay
/
src
/
V1.5
/
ACDPlay.h.BAK
< prev
next >
Wrap
Text File
|
1997-12-02
|
10KB
|
264 lines
/*
* ACDPlay - DER fantastische CDDA-Player für den Amiga
*
* Include V1.2
* passend zu ACDPlay.c V1.6
*
* Autor Version Datum Veränderungen
* ------- --------- -------- ------------------------------------------
* mak 0.11 22.09.96 Ersterstellung
* mak 0.12 23.09.96 alles dokumentiert
* mak 0.13 26.09.96 ACDPConfig-Struktur dazu
* MC3 0.14 28.09.96 Commodityspezifisches in Application-Struktur
* MC3 0.15 29.09.96 3 neue Config-Elemente (Commodity-Tooltypes)
* mak 0.16 07.10.96 Application.activewindow rausgenommen
* 08.10.96 ACDPConfig verändert
* MC3 0.17 15.10.96 CDStruct-Zeiger aus der Application-Struktur entfernt
* Flag-Word in Config- und Application-Struktur eingebaut
* MC3 0.18 16.10.96 CDStruct ist wieder drin...
* mak 0.19 18.10.96 Screennotifyspezifisches in App-Struktur eingefügt
* MC3 0.20 20.10.96 pubscreenname[] und pubscreenlist eingefügt
* 0.21 22.10.96 vorläufiges CDTitleNode
* mak 0.22 26.10.96 nicht lokalisierbare Texte hierher kopiert
* kleinere Änderungen
* MC3 0.23 26.10.96 time_percentage in CDStruct
* 31.10.96 time_curseconds in CDStruct
* 0.24 06.11.96 Neuigkeiten in CDStruct
* 07.11.96 String-Buffer eingefügt (Application), n. Fenster
* 0.25 09.11.96 '_'-Zeichen in Zahlen-Array eingefügt, n. Fenster
* 10.11.96 Neue Variable in App und Config: hotkeymode
* 0.26 11.11.96 Tooltypeflag-Variable
* 0.27 14.11.96 timemode in Application, menustrip nur in Application
* mak 0.28 23.11.96 ARexxport dazu
* MC3 0.29 24.11.96 ProgramTitleNode dazu
** 29.11.96 Noch ein Fenster
** 30.11.96 WinTitleBuffer erhöht (Titellänge erhöht)
* mak 0.30 20.11.96 Noch ein Fenster mehr
* Textbuffer ans Ende der AppStruct verlegt um Pointern
* an ungeraden Adressen vorzubeugen
* MC3 0.31 07.12.96 Node-Strukturen verändert
* 08.12.96 magicwbflag in app freigegeben
* 10.12.96 CDStruct und Config verändert
* 1.0 14.12.96 timebuf (o.ä.) vergrößert, Buffer für CD-Info-Gad zu haben
* 1.01 01.01.97 einiges geändert, u.a. in AppWin
* 04.01.97 2 neue Strukturen
*
* 1.1 26.01.97 Config-Struktur eingespart, etc, etc...
* 1.12 29.01.97 AppIcon-Zeugs eingebaut
* mak 1.13 02.02.97 CDxRequest Zeiger in CDStruct eingebaut
*
* MC3 14.02.97 Wichtig: Gadget-Define-Reihenfolge verändert!
* 15.02.97 struct DirNode dazu
* 16.02.97 Application noch größer...
* mak 1.14 25.03.97 Application für Asm umstrukturiert
* 28.03.97 Volumefenster dazu
* Konfigversion auf 3 gesetzt
*
* MC3 1.15 28.03.97 cdstr->searchmode dazugefügt
*
* mak 1.16 03.03.97 cdstr->cur_index hinzugefügt
* 1.17 27.04.97 app->orgprwin dazu
* Pointer für 'rexxcmds.s' in die CDStruct eingebaut
* 1.18 16.07.97 appwin->request / Busy-Flag dazu
*
* MC3 1.2 13.11.97 neues Fenster hinzu -> Audio Save
* außerdem viele neue Variablen für's SCSI-Kopieren
*/
/********************
***** Konstanten **********************************************************
********************/
/* nicht lokalisierte Texte */
char PROG_NAME[] = "ACDPlay";
char *TEXT_MAIN_DIRECTCHOICE0[] = {"_1", "_2", "_3", "_4", "_5", "_6", "_7", "_8", "_9", "1_0", NULL};
char *TEXT_MAIN_DIRECTCHOICE1[] = {"11", "12", "13", "14", "15", "16", "17", "18", "19", "20", NULL};
/********************
***** Strukturen **********************************************************
********************/
/*------------------------------ BevelBox --------------------------------*/
struct BevelBox
{
struct BevelBox *bb_NextBevelBox;
WORD bb_LeftEdge;
WORD bb_TopEdge;
WORD bb_Width;
WORD bb_Height;
UBYTE bb_FrameType; /* BBFT_BUTTON, BBFT_RIDGE, BBFT_ICONDROPBOX, V39 */
BOOL bb_Recessed;
APTR bb_VisualInfo;
};
/*------------------------------ Scroll ----------------------------------*/
struct Scroll
{
char **Text;
BYTE *Flags; /* Flags für jeden Text einzeln, sehr unkomfortabel */
WORD LeftEdge;
WORD TopEdge;
WORD Width;
WORD Height;
TextAttr *Font;
/* interne Daten */
WORD p_height;
WORD p_pos;
struct RastPort *RPort;
struct Image Img;
};
/*------------------------------ ProgramTitleNode ------------------------*/
struct ProgramTitleNode
{
struct Node ptn_Node; /* ln_Name zeigt auf Titelnamen (Listen) */
BOOL ptn_randomplayed;
UBYTE ptn_track; /* Tracknummer */
};
/*------------------------------ DirNode ---------------------------------*/
struct DirNode
{
struct MinNode dn_Node;
char dn_Name[31];
};
/*------------------------------ CDStruct --------------------------------*/
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 */
};
/*------------------------------ AppWin ----------------------------------*/
struct AppWin
{
Window *window; /* Zeiger auf das Fenster */
/* Erst überprüfen ob überhaupt */
/* ein Fenster da ist */
BOOL winopen; /* ob das Fenster geöffnet werden soll */
UWORD minsize[4]; /* Größe und Position 1 */
UWORD maxsize[4]; /* Größe und Position 2 (ZIP) */
UWORD minwidth, minheight; /* Beschränkung bei Größenveränderung */
UWORD maxwidth, maxheight; /* des Fensters */
Gadget **gadget; /* Zeigerzeiger auf Gadget */
Gadget *gadgetlist; /* Zeiger auf Gadgetliste */
IntuiText *itext; /* IntuiText-Liste für Fenster */
Image *img; /* Image-Liste für das Fenster */
struct BevelBox *bbox;
Requester *request; /* zum Blockieren von Fenstern */
};
/*------------------------------ Application -----------------------------*/
struct Application
{
Screen *screen; /* PublicScreen, */
/* auch um zu testen ob */
/* Application geöffnet ist */
List *pubscreenlist; /* Liste aller Public-Screens */
UWORD hotkeymode; /* Was tun bei Hotkey und Application offen? */
UWORD Flags; /* Flags für Application s.o. */
APTR visualinfo; /* VisualInfo für GadTools */
TextAttr *font; /* benutzter font */
struct MsgPort *idcmp; /* shared IDCMP */
struct MsgPort *broker_mp; /* Messageport für Broker */
struct MsgPort *appicon_mp; /* Messageport für's AppIcon */
struct MsgPort *scrnotify_mp; /* Messageport für Screennotify Events */
struct MsgPort *arexx_mp; /* öffentlicher ARexxport 'ACDPLAY' */
struct CDStruct *cdstr; /* Zeiger auf CDStruct-Struktur */
/* <- bis hierhin nicht ändern! */
struct Scroll *scroller; /* für den Scroller im About-Fenster */
struct AppWin appwin[ANZ_WINDOWS]; /* für jedes Window ein Feld */
struct AppAsl appasl[ANZ_ASL]; /* Daten für ASL-Requester */
Menu *menustrip; /* Menü für alle Fenster */
BYTE edit_pos; /* Welche Position im Edit-Window? */
BOOL magicwbmode; /* wird noch nicht unterstützt */
UWORD flag_tool; /* Flags von speziellen Tooltypes */
UWORD flag_main; /* Enthält Flags für die GUI-Elemente in MAIN */
CxObj *broker; /* Commodity-Broker */
CxObj *filter_popkey;
CxObj *sender_popkey;
CxObj *translate_popkey;
CxObj *filter_timer;
CxObj *sender_timer;
BYTE cx_priority; /* Priorität -128 bis 127 */
BOOL cx_popup; /* Beim Start öffnen? */
APTR snhandle_wbench; /* Zeiger auf ScreenNotifyHandle für WB-Events */
/* APTR snhandle_closescr; */ /* Zeiger auf ScreenNotifyHandle für CloseScreen()-Events */
struct List *arexxdir; /* Zeiger auf Dateinamenliste */
struct AppIcon *appicon; /* Alles für's AppIcon */
struct DiskObject *diskobj;
char *progname; /* Zeiger auf Programmnamen */
struct Window *orgprwin; /* Zeiger auf das Fenster das ursprünglich in der Process-Struktur stand */
/* NICHT VERÄNDERN! */
char pubscreenname[MAXPUBSCREENNAME + 1]; /* Name des Public-Screens */
char winmaintitlebuf[MAXCDNAME + 50 + 3]; /* Möglicherweise keine gute Umsetzung, */
char wintitlestitlebuf[MAXCDNAME + MAXARTISTNAME + 3]; /* schreib' mal Deine Meinung.. */
char timeshowbuf[30]; /* für die Zeitanzeige */
/* ab 20 beginnt der andere Gad-Buffer */
char cx_popkey[41]; /* Input Description String */
};
/*------------------------------ MyPubScreenNode -------------------------*/
struct MyPubScreenNode
{
struct Node mpsn_Node; /* ln_Name zeigt auf den Screennamen */
char mpsn_pubscreenname[MAXPUBSCREENNAME + 1];
};
/*------------------------------ CDTitleNode -----------------------------*/
struct CDTitleNode
{
struct Node cdtn_Node; /* ln_Name zeigt auf Titelnamen */
BOOL cdtn_randomplayed; /* TRUE, wenn im Zufallsmodus schon gespielt worden */
char cdtn_titlename[MAXTITLENAME + 1];
};