home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 1 / ARM_CLUB_CD.iso / contents / apps / audio / p / sequencer / !Sequencer / h / headers
Encoding:
Text File  |  1990-02-23  |  5.1 KB  |  185 lines

  1. #include "wimp.h"
  2.  
  3. /* define constants */
  4.  
  5. #define White                   0
  6. #define Grey1                   1
  7. #define Grey2                   2
  8. #define Grey3                   3
  9. #define Grey4                   4
  10. #define Grey5                   5
  11. #define Grey6                   6
  12. #define Black                   7
  13. #define Purple                  8
  14. #define Yellow                  9
  15. #define Green                  10
  16. #define Red                    11
  17. #define Cream                  12
  18. #define DarkGreen              13
  19. #define Orange                 14
  20. #define Blue                   15
  21.  
  22. #define Play_option             9
  23. #define Stop_option            10
  24.  
  25. #define Max_voices             32
  26.  
  27. #define Sequencer_GetGateOn  0x80240
  28. #define Sequencer_PlayNote   0x80241
  29.                                 
  30. /* voice setup fields */ 
  31. #define OK                      2
  32. #define Cancel                  3
  33. #define Voice_change            4
  34. #define Voice_left              5
  35. #define Voice_name              6
  36. #define Voice_right             7
  37. #define Stereo_left             8
  38. #define Effects_none           15
  39. #define Effects_portamento     16
  40. #define Effects_vibrato        17
  41. #define Volume_left            18
  42. #define Volume                 19
  43. #define Volume_right           20
  44. #define Duration_left          21
  45. #define Duration               22
  46. #define Duration_right         23
  47. #define Octave_left            24
  48. #define Octave                 25
  49. #define Octave_right           26
  50. #define Use_as_default         33
  51.  
  52. /* info fields */
  53. #define Iconbar_menu_info       1
  54. #define Iconbar_menu_quit       2
  55. #define Info_field              4
  56.  
  57. /* play sections fields */
  58. #define Play_sections_ok        0
  59. #define Play_sections_start     1
  60. #define Play_sections_end       2
  61.                  
  62. /* menu fields */
  63. #define Main_menu_misc          1
  64. #define Main_menu_save          2
  65. #define Main_menu_pattern       3
  66. #define Main_menu_play          4
  67.  
  68. #define Save_menu_song          1
  69. #define Save_menu_module        2
  70.          
  71. #define Misc_menu_info          1
  72. #define Misc_menu_tempo         2
  73. #define Misc_menu_volume        3
  74. #define Misc_menu_tuning        4 
  75. #define Misc_menu_voices        5 
  76. #define Misc_menu_playedit      6
  77.  
  78. #define Pattern_menu_create     1
  79. #define Pattern_menu_clear      2
  80. #define Pattern_menu_delete     3
  81. #define Pattern_menu_goto       4
  82. #define Pattern_menu_copy       5
  83.  
  84. #define Tuning_menu_up          1
  85. #define Tuning_menu_down        2
  86. #define Tuning_menu_reset       3
  87.  
  88. #define Goto_bufflen            4
  89. #define Copy_bufflen            4
  90. #define Samplerate_bufflen      6
  91. #define Tempo_bufflen           4
  92. #define Volume_bufflen          4
  93. #define Win_title_bufflen     256
  94. #define Filename_bufflen      256
  95.  
  96. #define Default_filename "Sequence"
  97.  
  98. #define Sequence_filetype (0x000)
  99.  
  100. #define Number_of_channels     8    /* number of sound channels */
  101. #define Number_of_positions   64    /* number of positions in a pattern */
  102. #define Beat_length          100    /* length of one beat */
  103. #define Number_of_voices      32    /* max number of system voices */
  104.  
  105. #define Width                128    /* width of a note box */
  106. #define Height                40    /* height of a note box */
  107.  
  108. #define Left_arrow       (0x18c)   
  109. #define Right_arrow      (0x18d)
  110. #define Down_arrow       (0x18e)
  111. #define Up_arrow         (0x18f)
  112. #define Page_down        (0x19e)
  113. #define Page_up          (0x19f)
  114. #define Ctrl_left_arrow  (0x1ac)
  115. #define Ctrl_right_arrow (0x1ad)
  116. #define Ctrl_down_arrow  (0x1ae)
  117. #define Ctrl_up_arrow    (0x1af)
  118. #define Return           (0x00d)
  119.  
  120.  
  121. /* common data structures */
  122.  
  123.  
  124. typedef struct {
  125.   BOOL change;   /* true if setup new voice etc */
  126.   int  pitch;    /* zero if nothing setup */
  127.   int  volume;
  128.   int  length;
  129.   int  stereo;
  130.   int  voice;
  131. } note; 
  132.  
  133. typedef struct p {
  134.   note position[Number_of_positions][Number_of_channels];
  135.   struct p *next;
  136. } pattern;
  137.  
  138. typedef struct {
  139.   int chan;
  140.   int pos;
  141. } noteid;
  142.                       
  143.   
  144. /* prototype all functions */
  145.  
  146. pattern *pattern_address(int);        
  147. pattern *patterns_init(void);
  148. pattern *create_pattern(void);
  149. pattern *previous_pattern(pattern *);
  150. void    remove_pattern(pattern *);
  151. void    goto_pattern(pattern *);
  152. void    clear_pattern(pattern *);
  153. int     pattern_number(pattern *);
  154. int     pattern_count(void);
  155.  
  156. void    load_file(void);
  157. BOOL    save_file(char *, void *);
  158. void    force_load_ram(wimp_msgstr *);
  159. void    set_unmodified(void);
  160. void    set_modified(void);
  161.  
  162. void    put_note(int);
  163. void    note_to_text(note *);
  164. void    set_selected(int, int);
  165. void    play(int, void *);
  166. void    play_init(void);
  167. void    play_note(note *, int, int);
  168. void    play_position(void);
  169. void    sound_init(void);
  170. char    *voicename(int); 
  171. void    set_tempo(int);
  172. int     voice_slot(char *);
  173.  
  174. void    open_front(wimp_w handle);
  175. void    force_redraw(wimp_w, int, int, int, int);
  176. void    force_redraw_all(wimp_w);
  177. void    align_bottom(wimp_wstate *, int);
  178. void    set_origin(wimp_redrawstr *, int *, int *);
  179. void    flush_keyboard(void);
  180. BOOL    create_window(char *, wimp_w *);
  181. void    main_win_title(void);
  182. void    input_focus(wimp_w);
  183. void    error(void);            
  184. BOOL    icon_selected(wimp_w, wimp_i);
  185.