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