/* Defines un Structs fr DigiTape Module */ /* letzte nderung 1.7.93 */ #define DTM_VERSION 'DTM1' /*-------------------------------------------------------------------- Messages an die Module ber: procedure( int module_action, siehe folgende Defines Glob_globals *glob, Zeiger auf System-Globals int x, int y, int param MOD_INIT: TRUE=Aufnahme von Master eingestellt ) Return FALSE wenn das Modul die Message nicht selbst verarbeitet ----------------------------------------------------------------------*/ #define MOD_RSC_INIT 1 /* beim Modulladen */ #define MOD_INIT 2 /* beim Moduleinklinken param: TRUE wenn Rec. von Mastermodul eingestellt */ #define MOD_DRAW 3 /* vor Modulmalen */ #define MOD_LOAD_DSP 4 /* DSP soll geladen werden x: DSP-Eingangsvariable (bei mono) y: Ausgangsvariable (bei mono) param: Adresse von Puffer (Echo etc.)*/ #define MOD_CLR_MEMORY 5 /* DSP-Puffer sollen gelscht werden */ #define MOD_LBUTTONDOWN 6 /* Linke Maustaste down x, y: Mausposition */ #define MOD_MOUSEMOVE 7 /* Maus hat sich mit Taste unten bewegt x, y: Mausposition */ #define MOD_LBUTTONUP 8 /* Linke Maustaste losgelassen */ #define MOD_OUT_VOLS 9 /* Regler-Einstellungen an DSP melden */ #define MOD_SLIDER_MOVED 10 /* Regler wurde verndert: x: Regler-Nummer (-2: Vol, -1: Pan ) y: Position 0 bis 255 */ #define MOD_BUTTON_CHANGED 11 /* Knopf wurde verndert x: Object-Index */ #define MOD_DEL_EFFECT 12 /* nicht fr externe Module */ #define MOD_GET_VERSION 999 /* Versionsnummer soll returned werden */ /* Bits fr 'type' in Module_info */ #define STEREO_IN 2 #define STEREO_OUT 1 /* Modulbeschreibung */ typedef struct { int type; int x6, x8, x15, xbuff_size; /* DSP-Speicherbedarf */ int y6, y8, y15, ybuff_size; char *mcomment; /* Kommentar, erscheint in Auswahlmenu */ } Module_info; /* Objektindices des Resource */ typedef struct { int tree_index; int titel_index; /* Index der Unterschrift */ int solo_index; int eject_index; int mute_index; int vol_parent; /* Feld, auf dem sich Volume-Regler bewegt */ int vol_slider; /* Regler. Immer vertikal! */ int pan_parent; /* immer horizontal */ int pan_slider; } Rsc_info; typedef struct { int bitplanes; int nr_effekte; long Hz; /* aktuell eingestellte Freq. */ long tape_Hz; long reserve[4]; /* Platz fuer Erweiterungen */ void *track_info; /* Zeiger auf Array */ void *free[7]; void (*_dtm_init)( Module_info *dtm_info, void *rsc, Rsc_info *rsc_info); int (*_dtm_init_poti)(void *vglob, int potinr, int type, int parent, int slider, int value); int (*_mrsc_load)(void *rsc_hdr); long *(*_log_tab_entry)( int wert ); long (*_get_rsc_pegel)( int f_size, int s_size, int s_posi, long max, int vertikal ); void (*_set_line_volume)( int button, int vol, int line_nr ); void (*_set_line_panorama)( int button, int pan, int line_nr ); int (*_DialogState)(HDIALOG hdialog, int item, int set, int maske); int (*_DialogFlags)(HDIALOG hdialog, int item, int set, int maske); int (*_DialogPrintf)(HDIALOG hdialog, int item, char *format, ...); void (*_draw_object)( OBJECT *obj, int item ); int (*_object_find)( OBJECT *baum, int anf_obj, int tiefe, int x, int y ); void (*_dm_setvar)(int memtype, int var, long *value, int size); int (*_dm_defvar)(int typ, int adrsize, int size); int cdecl (*_dm_load)(void *modul, ...); void (*_dsp_setblock)( int memtyp, int adr, long wert, int size); } System_globals; typedef struct { int line_nr; /* 0-7: Tracks, 8-15: Effekte */ int slot_nr; OBJECT *object_ptr; HDIALOG hdialog; System_globals *sys; Module_info *mhinfo; int track_nr; /* fuer Track-Module */ int track_nr2; /* 2. Kanal bei Stereo */ char leer[50]; } Modul_header; /* Defines fr Poti.type */ #define H_POTI 0 #define V_POTI 1 typedef struct { char type; char activ; int parent_index; int slider_index; unsigned char position; unsigned char obj_position; } Poti; #define POTI_ZAHL 12 typedef struct { char l_butt; /* schaltet Ausgang */ char solo_butt; /* Solo-Tastenzustand */ int in_left; /* Input links DSP-Variable */ int in_right; /* Input rechts DSP-Variable */ int out_left; /* Output links DSP-Variable */ int out_right; /* Output rechts DSP-Variable */ Poti vol_poti; Poti pan_poti; Poti potis[POTI_ZAHL]; } Modul_globals;