1 /* 2 * xmcd - Motif(R) CD Audio Player/Ripper 3 * 4 * Copyright (C) 1993-2004 Ti Kan 5 * E-mail: xmcd@amb.org 6 * 7 * This program is free software; you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License as published by 9 * the Free Software Foundation; either version 2 of the License, or 10 * (at your option) any later version. 11 * 12 * This program is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License 18 * along with this program; if not, write to the Free Software 19 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 20 * 21 */ 22 #ifndef __CDFUNC_H__ 23 #define __CDFUNC_H__ 24 25 #ifndef lint 26 static char *_cdfunc_h_ident_ = "@(#)cdfunc.h 7.47 04/02/02"; 27 #endif 28 29 30 /* Fatal error, warning and information message macros */ 31 #define CD_FATAL(msg) cd_fatal_popup(app_data.str_fatal, (msg)) 32 #define CD_WARNING(msg) cd_warning_popup(app_data.str_warning, (msg)) 33 #define CD_INFO(msg) cd_info_popup(app_data.str_info, (msg)) 34 #define CD_INFO_AUTO(msg) cd_info_popup_auto(app_data.str_info, (msg)) 35 #define CD_INFO2(msg, txt) cd_info2_popup(app_data.str_info, (msg), (txt)) 36 37 /* Maximum main window disc title string length */ 38 #define TITLEIND_LEN ((STR_BUF_SZ * 4) + 4) 39 40 /* Widget map bits for cd_busycurs() */ 41 #define CURS_MAIN 0x0001 42 #define CURS_KEYPAD 0x0002 43 #define CURS_OPTIONS 0x0004 44 #define CURS_DBPROG 0x0008 45 #define CURS_DLIST 0x0010 46 #define CURS_DBEXTD 0x0020 47 #define CURS_DBEXTT 0x0040 48 #define CURS_FULLNAME 0x0080 49 #define CURS_CREDITS 0x0100 50 #define CURS_SEGMENTS 0x0200 51 #define CURS_SUBMITURL 0x0400 52 #define CURS_USERREG 0x0800 53 #define CURS_HELP 0x1000 54 #define CURS_ALL ( CURS_MAIN | CURS_KEYPAD | \ 55 CURS_OPTIONS | CURS_DBPROG | \ 56 CURS_DLIST | CURS_DBEXTD | \ 57 CURS_DBEXTT | CURS_FULLNAME | \ 58 CURS_CREDITS | CURS_SEGMENTS | \ 59 CURS_SUBMITURL | CURS_USERREG | \ 60 CURS_HELP ) 61 62 /* Keypad modes */ 63 #define KPMODE_DISC 0 64 #define KPMODE_TRACK 1 65 66 67 /* CDDA fader modes */ 68 #define CDDA_FADER_NONE 0 69 #define CDDA_FADER_OUT 1 70 #define CDDA_FADER_IN 2 71 72 73 /* Default CDDA fader value change interval */ 74 #define CDDA_FADER_INTVL 500 75 76 77 /* Widget list structure */ 78 typedef struct wlist { 79 Widget w; 80 struct wlist *next; 81 } wlist_t; 82 83 84 /* Public functions */ 85 extern void fix_outfile_path(curstat_t *); 86 extern byte_t curtrk_type(curstat_t *); 87 extern void dpy_disc(curstat_t *); 88 extern void dpy_track(curstat_t *); 89 extern void dpy_index(curstat_t *); 90 extern void dpy_time(curstat_t *, bool_t); 91 extern void dpy_dtitle(curstat_t *); 92 extern void dpy_ttitle(curstat_t *); 93 extern void dpy_rptcnt(curstat_t *); 94 extern void dpy_dbmode(curstat_t *, bool_t); 95 extern void dpy_progmode(curstat_t *, bool_t); 96 extern void dpy_timemode(curstat_t *); 97 extern void dpy_playmode(curstat_t *, bool_t); 98 extern void dpy_all(curstat_t *); 99 100 extern void set_lock_btn(bool_t); 101 extern void set_repeat_btn(bool_t); 102 extern void set_shuffle_btn(bool_t); 103 extern void set_vol_slider(int); 104 extern void set_warp_slider(int, bool_t); 105 extern void set_bal_slider(int); 106 extern void set_qualval_slider(int); 107 extern void set_algo_slider(int); 108 extern void set_att_slider(int); 109 extern void set_text_string(Widget, char *, bool_t); 110 extern char *get_text_string(Widget, bool_t); 111 extern XmString create_xmstring(char *, char *, char *, bool_t); 112 113 extern int scale_warp(curstat_t *, int, int); 114 extern int unscale_warp(curstat_t *, int, int); 115 116 extern long cd_timeout(word32_t, void (*)(), byte_t *); 117 extern void cd_untimeout(long); 118 extern void cd_beep(void); 119 extern void cd_dialog_setpos(Widget); 120 extern void cd_info_popup(char *, char *); 121 extern void cd_info_popup_auto(char *, char *); 122 extern void cd_info_popdown(byte_t *); 123 extern void cd_info2_popup(char *, char *, char *); 124 extern void cd_info2_popdown(byte_t *); 125 extern void cd_warning_popup(char *, char *); 126 extern void cd_fatal_popup(char *, char *); 127 extern bool_t cd_confirm_popup(char *, char *, XtCallbackProc, XtPointer, 128 XtCallbackProc, XtPointer); 129 extern void cd_confirm_popdown(void); 130 extern void cd_working_popup(char *, char *, XtCallbackProc, XtPointer); 131 extern void cd_working_popdown(void); 132 133 extern void cd_init(curstat_t *); 134 extern void cd_start(curstat_t *); 135 extern void cd_icon(curstat_t *, bool_t); 136 extern void cd_halt(curstat_t *); 137 extern void cd_quit(curstat_t *); 138 139 extern void cd_busycurs(bool_t, int); 140 extern char *cd_hostname(void); 141 extern void onsig(int); 142 143 144 /* Callback functions */ 145 extern void cd_checkbox(Widget, XtPointer, XtPointer); 146 extern void cd_mode(Widget, XtPointer, XtPointer); 147 extern void cd_load_eject(Widget, XtPointer, XtPointer); 148 extern void cd_quit_btn(Widget, XtPointer, XtPointer); 149 extern void cd_time(Widget, XtPointer, XtPointer); 150 extern void cd_ab(Widget, XtPointer, XtPointer); 151 extern void cd_sample(Widget, XtPointer, XtPointer); 152 extern void cd_level(Widget, XtPointer, XtPointer); 153 extern void cd_play_pause(Widget, XtPointer, XtPointer); 154 extern void cd_stop(Widget, XtPointer, XtPointer); 155 extern void cd_chgdisc(Widget, XtPointer, XtPointer); 156 extern void cd_prevtrk(Widget, XtPointer, XtPointer); 157 extern void cd_nexttrk(Widget, XtPointer, XtPointer); 158 extern void cd_previdx(Widget, XtPointer, XtPointer); 159 extern void cd_nextidx(Widget, XtPointer, XtPointer); 160 extern void cd_rew(Widget, XtPointer, XtPointer); 161 extern void cd_ff(Widget, XtPointer, XtPointer); 162 extern void cd_keypad_popup(Widget, XtPointer, XtPointer); 163 extern void cd_keypad_popdown(Widget, XtPointer, XtPointer); 164 extern void cd_keypad_mode(Widget, XtPointer, XtPointer); 165 extern void cd_keypad_num(Widget, XtPointer, XtPointer); 166 extern void cd_keypad_clear(Widget, XtPointer, XtPointer); 167 extern void cd_keypad_dsbl_modes_yes(Widget, XtPointer, XtPointer); 168 extern void cd_keypad_dsbl_modes_no(Widget, XtPointer, XtPointer); 169 extern void cd_keypad_enter(Widget, XtPointer, XtPointer); 170 extern void cd_warp(Widget, XtPointer, XtPointer); 171 extern void cd_options_popup(Widget, XtPointer, XtPointer); 172 extern void cd_options_popdown(Widget, XtPointer, XtPointer); 173 extern void cd_options_reset(Widget, XtPointer, XtPointer); 174 extern void cd_options_save(Widget, XtPointer, XtPointer); 175 extern void cd_options(Widget, XtPointer, XtPointer); 176 extern void cd_options_categsel(Widget, XtPointer, XtPointer); 177 extern void cd_jitter_corr(Widget, XtPointer, XtPointer); 178 extern void cd_file_per_trk(Widget, XtPointer, XtPointer); 179 extern void cd_subst(Widget, XtPointer, XtPointer); 180 extern void cd_filefmt_mode(Widget, XtPointer, XtPointer); 181 extern void cd_filepath_new(Widget, XtPointer, XtPointer); 182 extern void cd_filepath_exp(Widget, XtPointer, XtPointer); 183 extern void cd_pipeprog_new(Widget, XtPointer, XtPointer); 184 extern void cd_comp_mode(Widget, XtPointer, XtPointer); 185 extern void cd_bitrate(Widget, XtPointer, XtPointer); 186 extern void cd_min_bitrate(Widget, XtPointer, XtPointer); 187 extern void cd_max_bitrate(Widget, XtPointer, XtPointer); 188 extern void cd_qualfactor(Widget, XtPointer, XtPointer); 189 extern void cd_chanmode(Widget, XtPointer, XtPointer); 190 extern void cd_compalgo(Widget, XtPointer, XtPointer); 191 extern void cd_lowpass_mode(Widget, XtPointer, XtPointer); 192 extern void cd_highpass_mode(Widget, XtPointer, XtPointer); 193 extern void cd_filter_freq(Widget, XtPointer, XtPointer); 194 extern void cd_filter_width(Widget, XtPointer, XtPointer); 195 extern void cd_addflag(Widget, XtPointer, XtPointer); 196 extern void cd_addtag(Widget, XtPointer, XtPointer); 197 extern void cd_id3tag_mode(Widget, XtPointer, XtPointer); 198 extern void cd_set_lameopts(Widget, XtPointer, XtPointer); 199 extern void cd_balance(Widget, XtPointer, XtPointer); 200 extern void cd_balance_center(Widget, XtPointer, XtPointer); 201 extern void cd_cdda_att(Widget, XtPointer, XtPointer); 202 extern void cd_cdda_fade(Widget, XtPointer, XtPointer); 203 extern void cd_set_timeouts(Widget, XtPointer, XtPointer); 204 extern void cd_set_servers(Widget, XtPointer, XtPointer); 205 extern void cd_set_proxy(Widget, XtPointer, XtPointer); 206 extern void cd_perfmon_popdown(Widget, XtPointer, XtPointer); 207 extern void cd_perfmon(Widget, XtPointer, XtPointer); 208 extern void cd_txtline_vfy(Widget, XtPointer, XtPointer); 209 extern void cd_txtnline_vfy(Widget, XtPointer, XtPointer); 210 extern void cd_about(Widget, XtPointer, XtPointer); 211 extern void cd_help_popup(Widget, XtPointer, XtPointer); 212 extern void cd_help_cancel(Widget, XtPointer, XtPointer); 213 extern void cd_info_ok(Widget, XtPointer, XtPointer); 214 extern void cd_info2_ok(Widget, XtPointer, XtPointer); 215 extern void cd_warning_ok(Widget, XtPointer, XtPointer); 216 extern void cd_fatal_ok(Widget, XtPointer, XtPointer); 217 extern void cd_confirm_resp(Widget, XtPointer, XtPointer); 218 extern void cd_rmcallback(Widget, XtPointer, XtPointer); 219 extern void cd_shell_focus_chg(Widget, XtPointer, XtPointer); 220 extern void cd_exit(Widget, XtPointer, XtPointer); 221 extern void cd_tooltip_cancel(Widget, XtPointer, XtPointer); 222 extern void cd_not_implemented(Widget, XtPointer, XtPointer); 223 224 /* Event handlers */ 225 extern void cd_focus_chg(Widget, XtPointer, XEvent *); 226 extern void cd_xing_chg(Widget, XtPointer, XEvent *); 227 extern void cd_dbmode_ind(Widget, XtPointer, XEvent *, Boolean *); 228 229 #endif /* __CDFUNC_H__ */ 230 231