home *** CD-ROM | disk | FTP | other *** search
/ Vectronix 2 / VECTRONIX2.iso / FILES_01 / DTAPE104.LZH / DTAPE104 / MODULE.PRG / DTDEFIN.H < prev    next >
Text File  |  1993-07-07  |  5KB  |  155 lines

  1. /* Defines un Structs für DigiTape Module */
  2. /* letzte Änderung 1.7.93 */
  3.  
  4. #define DTM_VERSION 'DTM1'
  5.  
  6. /*-------------------------------------------------------------------- 
  7. Messages an die Module über:
  8. procedure( int module_action,        siehe folgende Defines
  9.                      Glob_globals *glob,    Zeiger auf System-Globals
  10.                      int x,
  11.                      int y,
  12.                      int param        MOD_INIT: TRUE=Aufnahme von Master eingestellt
  13.                  )
  14. Return FALSE wenn das Modul die Message nicht selbst verarbeitet
  15. ----------------------------------------------------------------------*/
  16.  
  17. #define MOD_RSC_INIT                 1        /* beim Modulladen */
  18. #define MOD_INIT                        2        /* beim Moduleinklinken
  19.                                                                      param: TRUE wenn Rec. von Mastermodul
  20.                                                                                      eingestellt */
  21. #define MOD_DRAW                        3        /* vor Modulmalen */
  22.  
  23. #define MOD_LOAD_DSP                4        /* DSP soll geladen werden
  24.                                                                      x: DSP-Eingangsvariable (bei mono)
  25.                                                                      y: Ausgangsvariable (bei mono)
  26.                                                                      param: Adresse von Puffer (Echo etc.)*/
  27. #define MOD_CLR_MEMORY            5        /* DSP-Puffer sollen gelöscht werden */
  28.  
  29. #define MOD_LBUTTONDOWN            6        /* Linke Maustaste down
  30.                                                                      x, y: Mausposition */
  31. #define MOD_MOUSEMOVE                7        /* Maus hat sich mit Taste unten bewegt
  32.                                                                      x, y: Mausposition */
  33. #define MOD_LBUTTONUP                8        /* Linke Maustaste losgelassen */
  34. #define MOD_OUT_VOLS                9        /* Regler-Einstellungen an DSP melden */
  35.  
  36. #define MOD_SLIDER_MOVED      10        /* Regler wurde verändert:
  37.                                                                      x: Regler-Nummer (-2: Vol, -1: Pan )
  38.                                                                      y: Position 0 bis 255 */
  39. #define MOD_BUTTON_CHANGED 11        /* Knopf wurde verändert
  40.                                                                      x: Object-Index */
  41. #define MOD_DEL_EFFECT         12        /* nicht für externe Module */
  42.  
  43. #define MOD_GET_VERSION        999        /* Versionsnummer soll returned werden */
  44.  
  45.  
  46. /* Bits für 'type' in Module_info */
  47. #define STEREO_IN  2
  48. #define STEREO_OUT 1
  49.  
  50. /* Modulbeschreibung */
  51. typedef struct
  52. {
  53.     int type;
  54.  
  55.     int x6, x8, x15, xbuff_size; /* DSP-Speicherbedarf */
  56.     int y6, y8, y15, ybuff_size;
  57.  
  58.     char *mcomment;  /* Kommentar, erscheint in Auswahlmenu */
  59. } Module_info;
  60.  
  61. /* Objektindices des Resource */
  62. typedef struct
  63. {
  64.     int tree_index;
  65.     int titel_index;    /* Index der Unterschrift */
  66.     int solo_index;
  67.     int eject_index;
  68.     int mute_index;
  69.     int vol_parent;  /* Feld, auf dem sich Volume-Regler bewegt */
  70.     int vol_slider;     /* Regler. Immer vertikal! */
  71.     int pan_parent;  /* immer horizontal */
  72.     int pan_slider;
  73. } Rsc_info;
  74.  
  75.  
  76. typedef struct
  77. {
  78.     int bitplanes;
  79.     int nr_effekte;
  80.  
  81.     long    Hz; /* aktuell eingestellte Freq. */
  82.     long    tape_Hz;
  83.     long    reserve[4];    /* Platz fuer Erweiterungen */
  84.  
  85.     void    *track_info; /* Zeiger auf Array */
  86.     void    *free[7];
  87.  
  88.     void (*_dtm_init)( Module_info *dtm_info,
  89.                                          void *rsc, Rsc_info *rsc_info);
  90.     int        (*_dtm_init_poti)(void *vglob, int potinr, int type,
  91.                                                     int parent, int slider, int value);
  92.  
  93.     int        (*_mrsc_load)(void *rsc_hdr);
  94.     long    *(*_log_tab_entry)( int wert );
  95.     long    (*_get_rsc_pegel)( int f_size, int s_size, int s_posi,
  96.                                                     long max, int vertikal );
  97.     void (*_set_line_volume)( int button, int vol, int line_nr );
  98.     void (*_set_line_panorama)( int button, int pan, int line_nr );
  99.  
  100.     int  (*_DialogState)(HDIALOG hdialog, int item, int set, int maske);
  101.     int  (*_DialogFlags)(HDIALOG hdialog, int item, int set, int maske);
  102.     int  (*_DialogPrintf)(HDIALOG hdialog, int item, char *format, ...);
  103.  
  104.     void (*_draw_object)( OBJECT *obj, int item );
  105.     int  (*_object_find)( OBJECT *baum, int anf_obj, int tiefe, int x, int y );
  106.  
  107.     void (*_dm_setvar)(int memtype, int var, long *value, int size);
  108.     int  (*_dm_defvar)(int typ, int adrsize, int size);
  109.     int  cdecl (*_dm_load)(void *modul, ...);
  110.     void (*_dsp_setblock)( int memtyp, int adr, long wert, int size);
  111. } System_globals;
  112.  
  113. typedef struct
  114. {
  115.     int line_nr; /* 0-7: Tracks, 8-15: Effekte */
  116.     int slot_nr;
  117.     OBJECT *object_ptr;
  118.     HDIALOG hdialog;
  119.  
  120.     System_globals *sys;
  121.     Module_info *mhinfo;
  122.  
  123.     int    track_nr;  /* fuer Track-Module */
  124.     int    track_nr2; /* 2. Kanal bei Stereo */
  125.     char leer[50];
  126. } Modul_header;
  127.  
  128. /* Defines für Poti.type */
  129. #define H_POTI 0
  130. #define V_POTI 1
  131.  
  132. typedef struct
  133. {
  134.     char type;
  135.     char activ;
  136.     int  parent_index;
  137.     int  slider_index;
  138.     unsigned char position;
  139.     unsigned char obj_position;
  140. } Poti;
  141.  
  142. #define POTI_ZAHL 12
  143. typedef struct
  144. {
  145.     char l_butt;         /* schaltet Ausgang */
  146.     char solo_butt; /* Solo-Tastenzustand */
  147.     int  in_left;        /* Input links DSP-Variable */
  148.     int  in_right;  /* Input rechts DSP-Variable */
  149.     int  out_left;    /* Output links  DSP-Variable */
  150.     int  out_right;    /* Output rechts DSP-Variable */
  151.     Poti vol_poti;
  152.     Poti pan_poti;
  153.     Poti potis[POTI_ZAHL];
  154. } Modul_globals;
  155.