home *** CD-ROM | disk | FTP | other *** search
- #include "wimp.h"
-
- /* define constants */
-
- #define White 0
- #define Grey1 1
- #define Grey2 2
- #define Grey3 3
- #define Grey4 4
- #define Grey5 5
- #define Grey6 6
- #define Black 7
- #define Purple 8
- #define Yellow 9
- #define Green 10
- #define Red 11
- #define Cream 12
- #define DarkGreen 13
- #define Orange 14
- #define Blue 15
-
- #define Play_option 9
- #define Stop_option 10
-
- #define Max_voices 32
-
- #define Sequencer_GetGateOn 0x80240
- #define Sequencer_PlayNote 0x80241
-
- /* voice setup fields */
- #define OK 2
- #define Cancel 3
- #define Voice_change 4
- #define Voice_left 5
- #define Voice_name 6
- #define Voice_right 7
- #define Stereo_left 8
- #define Effects_none 15
- #define Effects_portamento 16
- #define Effects_vibrato 17
- #define Volume_left 18
- #define Volume 19
- #define Volume_right 20
- #define Duration_left 21
- #define Duration 22
- #define Duration_right 23
- #define Octave_left 24
- #define Octave 25
- #define Octave_right 26
- #define Use_as_default 33
-
- /* info fields */
- #define Iconbar_menu_info 1
- #define Iconbar_menu_quit 2
- #define Info_field 4
-
- /* play sections fields */
- #define Play_sections_ok 0
- #define Play_sections_start 1
- #define Play_sections_end 2
-
- /* menu fields */
- #define Main_menu_misc 1
- #define Main_menu_save 2
- #define Main_menu_pattern 3
- #define Main_menu_play 4
-
- #define Save_menu_song 1
- #define Save_menu_module 2
-
- #define Misc_menu_info 1
- #define Misc_menu_tempo 2
- #define Misc_menu_volume 3
- #define Misc_menu_tuning 4
- #define Misc_menu_voices 5
- #define Misc_menu_playedit 6
-
- #define Pattern_menu_create 1
- #define Pattern_menu_clear 2
- #define Pattern_menu_delete 3
- #define Pattern_menu_goto 4
- #define Pattern_menu_copy 5
-
- #define Tuning_menu_up 1
- #define Tuning_menu_down 2
- #define Tuning_menu_reset 3
-
- #define Goto_bufflen 4
- #define Copy_bufflen 4
- #define Samplerate_bufflen 6
- #define Tempo_bufflen 4
- #define Volume_bufflen 4
- #define Win_title_bufflen 256
- #define Filename_bufflen 256
-
- #define Default_filename "Sequence"
-
- #define Sequence_filetype (0x000)
-
- #define Number_of_channels 8 /* number of sound channels */
- #define Number_of_positions 64 /* number of positions in a pattern */
- #define Beat_length 100 /* length of one beat */
- #define Number_of_voices 32 /* max number of system voices */
-
- #define Width 128 /* width of a note box */
- #define Height 40 /* height of a note box */
-
- #define Left_arrow (0x18c)
- #define Right_arrow (0x18d)
- #define Down_arrow (0x18e)
- #define Up_arrow (0x18f)
- #define Page_down (0x19e)
- #define Page_up (0x19f)
- #define Ctrl_left_arrow (0x1ac)
- #define Ctrl_right_arrow (0x1ad)
- #define Ctrl_down_arrow (0x1ae)
- #define Ctrl_up_arrow (0x1af)
- #define Return (0x00d)
-
-
- /* common data structures */
-
-
- typedef struct {
- BOOL change; /* true if setup new voice etc */
- int pitch; /* zero if nothing setup */
- int volume;
- int length;
- int stereo;
- int voice;
- } note;
-
- typedef struct p {
- note position[Number_of_positions][Number_of_channels];
- struct p *next;
- } pattern;
-
- typedef struct {
- int chan;
- int pos;
- } noteid;
-
-
- /* prototype all functions */
-
- pattern *pattern_address(int);
- pattern *patterns_init(void);
- pattern *create_pattern(void);
- pattern *previous_pattern(pattern *);
- void remove_pattern(pattern *);
- void goto_pattern(pattern *);
- void clear_pattern(pattern *);
- int pattern_number(pattern *);
- int pattern_count(void);
-
- void load_file(void);
- BOOL save_file(char *, void *);
- void force_load_ram(wimp_msgstr *);
- void set_unmodified(void);
- void set_modified(void);
-
- void put_note(int);
- void note_to_text(note *);
- void set_selected(int, int);
- void play(int, void *);
- void play_init(void);
- void play_note(note *, int, int);
- void play_position(void);
- void sound_init(void);
- char *voicename(int);
- void set_tempo(int);
- int voice_slot(char *);
-
- void open_front(wimp_w handle);
- void force_redraw(wimp_w, int, int, int, int);
- void force_redraw_all(wimp_w);
- void align_bottom(wimp_wstate *, int);
- void set_origin(wimp_redrawstr *, int *, int *);
- void flush_keyboard(void);
- BOOL create_window(char *, wimp_w *);
- void main_win_title(void);
- void input_focus(wimp_w);
- void error(void);
- BOOL icon_selected(wimp_w, wimp_i);
-