/* Defines and structures for DigiTape Module */ /* last change 1.7.93 */ #define DTM_VERSION 'DTM1' /*-------------------------------------------------------------------- Messages to the modules with: procedure( int module_action, see following defines Glob_globals *glob, pointer to System-Globals int x, int y, int param MOD_INIT: TRUE=recording on ) if the module doesn't want to process the message, it returns FALSE ----------------------------------------------------------------------*/ #define MOD_RSC_INIT 1 /* comes during loadtime*/ #define MOD_INIT 2 /* during initialisation param: TRUE if Mastermodul is set to record */ #define MOD_DRAW 3 /* before drawing */ #define MOD_LOAD_DSP 4 /* load DSP programm x: DSP-input variable (mono) y: output variable (mono) param: address of buffer (Echo etc.)*/ #define MOD_CLR_MEMORY 5 /* clear DSP buffer */ #define MOD_LBUTTONDOWN 6 /* left mouse button down x, y: mouse position */ #define MOD_MOUSEMOVE 7 /* mouse dragged (button pressed) x, y: Mausposition */ #define MOD_LBUTTONUP 8 /* left button released */ #define MOD_OUT_VOLS 9 /* send slider (etc) settings to DSP */ #define MOD_SLIDER_MOVED 10 /* slider moved: x: slider id (-2: Vol, -1: Pan ) y: position from 0 to 255 */ #define MOD_BUTTON_CHANGED 11 /* button toggled x: object index */ #define MOD_DEL_EFFECT 12 /* nicht fr externe Module */ #define MOD_GET_VERSION 999 /* return version number*/ /* 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 memory need*/ int y6, y8, y15, ybuff_size; char *mcomment; /* descriptive text, displayed in the 'Auswahl'-menu */ } Module_info; /* oject indexes in the resource */ typedef struct { int tree_index; int titel_index; /* module title */ int solo_index; int eject_index; int mute_index; int vol_parent; /* parent to the volume-slider handle */ int vol_slider; /* slider. always vertical! */ int pan_parent; /* always horizontal */ int pan_slider; } Rsc_info; typedef struct { int bitplanes; int nr_effekte; long Hz; /* current frequency. */ long tape_Hz; long reserve[4]; void *track_info; /* pointer to 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 mask); int (*_DialogFlags)(HDIALOG hdialog, int item, int set, int mask); int (*_DialogPrintf)(HDIALOG hdialog, int item, char *format, ...); void (*_draw_object)( OBJECT *obj, int item ); int (*_object_find)( OBJECT *baum, int beg_obj, int depth, 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 value, int size); } System_globals; typedef struct { int line_nr; /* 0-7: Tracks, 8-15: effects */ int slot_nr; OBJECT *object_ptr; HDIALOG hdialog; System_globals *sys; Module_info *mhinfo; int track_nr; /* for Track-Modules */ int track_nr2; /* 2. Kanal for 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; /* max number of sliders */ #define POTI_ZAHL 12 typedef struct { char l_butt; /* switches output*/ char solo_butt; /* state of solo button */ int in_left; /* input left DSP-Variable */ int in_right; /* input right DSP-Variable */ int out_left; /* output left DSP-Variable */ int out_right; /* output right DSP-Variable */ Poti vol_poti; Poti pan_poti; Poti potis[POTI_ZAHL]; } Modul_globals;