]> 4ch.mooo.com Git - 16.git/blob - src/lib/doslib/ext/libmad/playcom.h
wwww
[16.git] / src / lib / doslib / ext / libmad / playcom.h
1
2 #include <ext/libmad/mad.h>
3
4 #define mp3_data_size (16*1024)
5
6 #define COMMON_ABOUT_HELP_STR   "MP3 player v1.0 for DOS\n\n(C) 2008-2011 Jonathan Campbell\nALL RIGHTS RESERVED\n" \
7         "32-bit protected mode version\n" \
8         "\n" \
9         "Uses libmad MP3 decoder library\n" \
10         "(C) 2000-2004 Underbit Technologies, Inc."
11
12 extern char                             temp_str[512];
13 extern unsigned char                    animator;
14 extern int                              mp3_fd;
15 extern char                             mp3_file[130];
16 extern unsigned char                    mp3_stereo,mp3_16bit,mp3_bytes_per_sample;
17 extern unsigned long                    mp3_data_offset,mp3_data_length,mp3_sample_rate;
18 extern unsigned long                    mp3_sample_rate_by_timer_ticks;
19 extern unsigned long                    mp3_sample_rate_by_timer;
20 extern unsigned char                    mp3_flipsign;
21 extern unsigned char                    mp3_playing;
22
23 /* libmad decoding state */
24 extern unsigned char                    mad_init;
25 extern struct mad_stream                mad_stream;
26 extern struct mad_frame                 mad_frame;
27 extern struct mad_synth                 mad_synth;
28 extern unsigned char                    mad_synth_ready;
29 extern unsigned int                     mad_synth_readofs;
30 extern unsigned char                    mp3_data[mp3_data_size],*mp3_data_read,*mp3_data_write;
31 extern volatile unsigned char           sb_irq_count;
32 extern volatile unsigned char           IRQ_anim;
33 extern uint32_t                         irq_0_count;
34 extern uint32_t                         irq_0_adv;
35 extern uint32_t                         irq_0_max;
36 extern uint8_t                          irq_0_sent_command;
37 extern unsigned char                    irq_0_had_warned;
38 extern volatile uint32_t                irq_0_watchdog;
39 extern uint32_t                         last_dma_position;
40 extern int                              change_param_idx;
41 #define PARAM_PRESET_RATES 17
42 extern const unsigned short             param_preset_rates[PARAM_PRESET_RATES];
43 extern const char*                      dos32_irq_0_warning;
44
45 extern const struct vga_menu_item menu_separator;
46 extern const struct vga_menu_item main_menu_file_set;
47 extern const struct vga_menu_item main_menu_file_quit;
48 extern const struct vga_menu_item main_menu_playback_play;
49 extern const struct vga_menu_item main_menu_playback_stop;
50 extern const struct vga_menu_item main_menu_playback_params;
51 extern const struct vga_menu_item main_menu_help_about;
52
53 void mp3_data_clear();
54 void mp3_data_refill();
55 void mp3_data_flush(unsigned char force);
56 void free_libmad();
57 unsigned char init_libmad();
58 void draw_irq_indicator();
59 void mad_reset_decoder();
60 void irq_0_watchdog_do();
61 void irq_0_watchdog_ack();
62 void irq_0_watchdog_reset();
63 void vga_write_until(unsigned int x);
64 void prompt_play_mp3(unsigned char rec);
65 int confirm_quit();
66 void close_mp3();
67 void open_mp3();
68 int mad_more();
69
70 extern void (interrupt *old_irq_0)();
71
72 static inline unsigned char xdigit2int(char c) {
73         if (c >= '0' && c <= '9')
74                 return (unsigned char)(c - '0');
75         else if (c >= 'a' && c <= 'f')
76                 return (unsigned char)(c - 'a' + 10);
77         else if (c >= 'A' && c <= 'F')
78                 return (unsigned char)(c - 'A' + 10);
79         return 0;
80 }
81
82 /* provided by the calling program */
83 void ui_anim(int force);
84 void begin_play();
85 void stop_play();
86