1 /* aylet 0.1, a .AY music file player.
2  * Copyright (C) 2001 Russell Marks and Ian Collier. See main.c for licence.
3  *
4  * main.h
5  */
6 
7 enum cb_action_tag
8   {
9   cb_none,
10   cb_quit,
11   cb_highspeed,
12   cb_prev_file,
13   cb_next_file,
14   cb_prev_track,
15   cb_next_track,
16   cb_play,
17   cb_pause,
18   cb_stop,
19   cb_restart,
20   cb_dec_stopafter,
21   cb_inc_stopafter,
22   cb_dec_fadetime,
23   cb_inc_fadetime,
24   cb_dec_vol,
25   cb_inc_vol
26   };
27 
28 
29 extern int action_callback(enum cb_action_tag action);
30 extern int do_interrupt(void);
31 extern unsigned int in(int h,int l);
32 extern unsigned int out(int h,int l,int a);
33 
34 extern unsigned char mem[];
35 extern unsigned long tstates,tsmax;
36 extern int highspeed,playing,paused,want_quit;
37 extern int stopafter,fadetime;
38 extern int use_ui,play_to_stdout;
39 extern char **ay_filenames;
40 extern int ay_file,ay_num_files;
41 extern int ay_track;
42 
43 
44 struct ay_track_tag
45   {
46   unsigned char *namestr,*data;
47   unsigned char *data_stacketc,*data_memblocks;
48   int fadestart,fadelen;
49   };
50 
51 struct aydata_tag
52   {
53   unsigned char *filedata;
54   int filelen;
55   struct ay_track_tag *tracks;
56 
57   int filever,playerver;
58   unsigned char *authorstr,*miscstr;
59   int num_tracks;
60   int first_track;
61   };
62 
63 struct time_tag { int min,sec,subsecframes; };
64 
65 extern struct aydata_tag aydata;
66 extern struct time_tag tunetime;
67