1 /* 2 TiMidity++ -- MIDI to WAVE converter and player 3 Copyright (C) 1999-2002 Masanao Izumo <mo@goice.co.jp> 4 Copyright (C) 1995 Tuukka Toivonen <tt@cgs.fi> 5 6 This program is free software; you can redistribute it and/or modify 7 it under the terms of the GNU General Public License as published by 8 the Free Software Foundation; either version 2 of the License, or 9 (at your option) any later version. 10 11 This program is distributed in the hope that it will be useful, 12 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 GNU General Public License for more details. 15 16 You should have received a copy of the GNU General Public License 17 along with this program; if not, write to the Free Software 18 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 19 20 xskin.h 21 22 Oct.03.1998 Daisuke Nagano 23 */ 24 25 #ifdef HAVE_CONFIG_H 26 #include "config.h" 27 #endif /* HAVE_CONFIG_H */ 28 29 #include <stdio.h> 30 #include <stdlib.h> 31 #ifndef __MACOS__ 32 #include <sys/time.h> 33 #include <X11/Xlib.h> 34 #include <X11/Xutil.h> 35 #include <X11/cursorfont.h> 36 #endif /* __MACOS__ */ 37 38 #ifndef NO_STRING_H 39 #include <string.h> 40 #else /* NO_STRING_H */ 41 #include <strings.h> 42 #endif /* NO_STRING_H */ 43 44 #ifdef HAVE_SYS_SOCKET_H 45 #include <sys/socket.h> 46 #endif 47 48 #ifndef __MACOS__ 49 #include <signal.h> 50 #include <sys/types.h> 51 #include <sys/ipc.h> 52 #include <sys/shm.h> 53 #endif /* __MACOS__ */ 54 55 #define XSKIN_WINDOW_NAME "Timidity" 56 #define XSKIN_RES_CLASS "timidity" 57 #define XSKIN_RES_NAME "Timidity" 58 59 extern Pixmap xskin_loadBMP( Display *, Window, char *, int *, int * ); 60 extern int xskin_loadviscolor( Display *, Window, char * ); 61 62 63 /* text */ 64 65 extern void ts_puttext( int, int, char * ); 66 67 /* numbers */ 68 69 extern void ts_putnum( int, int, int ); 70 71 /* cbuttons */ 72 73 extern void ts_prev(int); 74 extern void ts_play(int); 75 extern void ts_pause(int); 76 extern void ts_stop(int); 77 extern void ts_next(int); 78 extern void ts_eject(int); 79 80 /* titlebar */ 81 82 extern void ts_titlebar(int); 83 extern void ts_exitbutton(int); 84 extern void ts_menubutton(int); 85 extern void ts_iconbutton(int); 86 extern void ts_minibutton(int); 87 88 /* monoster */ 89 90 extern void ts_mono(int); 91 extern void ts_stereo(int); 92 93 /* shufrep */ 94 95 extern void ts_shuf(int); 96 extern void ts_rep(int); 97 extern void ts_equ(int); 98 extern void ts_plist(int); 99 100 /* posbar */ 101 102 extern int ts_pos(int,int); 103 104 /* volume */ 105 106 extern int ts_volume(int,int); 107 extern int ts_pan(int,int); 108 109 /* spectrum analizer */ 110 111 extern void ts_spectrum( int, unsigned char * ); 112 113 /* positions */ 114 115 #define OFF 0 116 #define ON 1 117 #define ONOFF 2 118 #define OFFON 3 119 120 #define skin_width 275 121 #define skin_height 116 122 123 #define TS_PREV 0 124 #define TS_PLAY 1 125 #define TS_PAUSE 2 126 #define TS_STOP 3 127 #define TS_NEXT 4 128 #define TS_EJECT 5 129 #define TS_TITLEBAR 6 130 #define TS_EXITBUTTON 7 131 #define TS_MENUBUTTON 8 132 #define TS_ICONBUTTON 9 133 #define TS_MINIBUTTON 10 134 #define TS_MONO 11 135 #define TS_STEREO 12 136 #define TS_SHUFON 13 137 #define TS_SHUFOFF 14 138 #define TS_REPON 15 139 #define TS_REPOFF 16 140 #define TS_EQUON 17 141 #define TS_EQUOFF 18 142 #define TS_PLISTON 19 143 #define TS_PLISTOFF 20 144 #define TS_POS 21 145 #define TS_VOLUME 22 146 #define TS_PAN 23 147 #define TS_SPECTRUM 24 148 149 150 /* text */ 151 152 #define TEXT_W 5 153 #define TEXT_H 6 154 155 #define BITRATE_X 111 156 #define BITRATE_Y 43 157 #define SAMPLE_X 156 158 #define SAMPLE_Y 43 159 #define MESSAGE_X 112 160 #define MESSAGE_Y 27 161 162 /* numbers */ 163 164 #define NUM_W 9 165 #define NUM_H 13 166 167 #define MIN_H_X 48 168 #define MIN_H_Y 26 169 #define MIN_L_X 60 170 #define MIN_L_Y 26 171 #define SEC_H_X 78 172 #define SEC_H_Y 26 173 #define SEC_L_X 90 174 #define SEC_L_Y 26 175 176 /* cbuttons */ 177 178 #define PREV_SX(f) 0 179 #define PREV_SY(f) f==OFF?0:18 180 #define PREV_DX 16 181 #define PREV_DY 88 182 #define PREV_W 23 183 #define PREV_H 18 184 185 #define PLAY_SX(f) 23 186 #define PLAY_SY(f) f==OFF?0:18 187 #define PLAY_DX 39 188 #define PLAY_DY 88 189 #define PLAY_W 23 190 #define PLAY_H 18 191 192 #define PAUSE_SX(f) 46 193 #define PAUSE_SY(f) f==OFF?0:18 194 #define PAUSE_DX 62 195 #define PAUSE_DY 88 196 #define PAUSE_W 23 197 #define PAUSE_H 18 198 199 #define STOP_SX(f) 69 200 #define STOP_SY(f) f==OFF?0:18 201 #define STOP_DX 85 202 #define STOP_DY 88 203 #define STOP_W 23 204 #define STOP_H 18 205 206 #define NEXT_SX(f) 92 207 #define NEXT_SY(f) f==OFF?0:18 208 #define NEXT_DX 108 209 #define NEXT_DY 88 210 #define NEXT_W 22 211 #define NEXT_H 18 212 213 #define EJECT_SX(f) 114 214 #define EJECT_SY(f) f==OFF?0:16 215 #define EJECT_DX 136 216 #define EJECT_DY 89 217 #define EJECT_W 23 218 #define EJECT_H 16 219 220 /* titlebar */ 221 222 #define TITLEBAR_SX(f) 27 223 #define TITLEBAR_SY(f) f==OFF?15:0 224 #define TITLEBAR_DX 0 225 #define TITLEBAR_DY 0 226 #define TITLEBAR_W 275 227 #define TITLEBAR_H 14 228 229 #define EXITBUTTON_SX(f) 18 230 #define EXITBUTTON_SY(f) f==OFF?0:9 231 #define EXITBUTTON_DX 264 232 #define EXITBUTTON_DY 3 233 #define EXITBUTTON_W 9 234 #define EXITBUTTON_H 9 235 236 #define MENUBUTTON_SX(f) 0 237 #define MENUBUTTON_SY(f) f==OFF?0:9 238 #define MENUBUTTON_DX 6 239 #define MENUBUTTON_DY 3 240 #define MENUBUTTON_W 9 241 #define MENUBUTTON_H 9 242 243 #define ICONBUTTON_SX(f) 9 244 #define ICONBUTTON_SY(f) f==OFF?0:9 245 #define ICONBUTTON_DX 244 246 #define ICONBUTTON_DY 3 247 #define ICONBUTTON_W 9 248 #define ICONBUTTON_H 9 249 250 #define MINIBUTTON_SX(f) f==OFF?0:9 251 #define MINIBUTTON_SY(f) 18 252 #define MINIBUTTON_DX 254 253 #define MINIBUTTON_DY 3 254 #define MINIBUTTON_W 9 255 #define MINIBUTTON_H 9 256 257 /* monoster */ 258 259 #define MONO_SX(f) 29 260 #define MONO_SY(f) f==OFF?12:0 261 #define MONO_DX 212 262 #define MONO_DY 41 263 #define MONO_W 29 264 #define MONO_H 12 265 266 #define STEREO_SX(f) 0 267 #define STEREO_SY(f) f==OFF?12:0 268 #define STEREO_DX 239 269 #define STEREO_DY 41 270 #define STEREO_W 29 271 #define STEREO_H 12 272 273 /* playpause */ 274 275 #define PSTATE_STOP 0 276 #define PSTATE_PAUSE 1 277 #define PSTATE_PLAY 2 278 279 #define PSTATE1_SX(f) (f==PSTATE_STOP?18:(f==PSTATE_PAUSE?9:0)) 280 #define PSTATE1_SY(f) 0 281 #define PSTATE1_DX 26 282 #define PSTATE1_DY 28 283 #define PSTATE1_W 9 284 #define PSTATE1_H 9 285 286 #define PSTATE2_SX(f) (f==PSTATE_STOP?39:(f==PSTATE_PAUSE?36:27)) 287 #define PSTATE2_SY(f) 0 288 #define PSTATE2_DX 24 289 #define PSTATE2_DY 28 290 #define PSTATE2_W 3 291 #define PSTATE2_H 9 292 293 /* shufrep */ 294 295 #define SHUF_SX(f) 28 296 #define SHUF_SY(f) f==OFF?0:(f==ON?30:(f==ONOFF?45:15)) 297 #define SHUF_DX 164 298 #define SHUF_DY 89 299 #define SHUF_W 47 300 #define SHUF_H 15 301 302 #define REP_SX(f) 0 303 #define REP_SY(f) f==OFF?0:(f==ON?30:(f==ONOFF?45:15)) 304 #define REP_DX 210 305 #define REP_DY 89 306 #define REP_W 28 307 #define REP_H 15 308 309 #define EQU_SX(f) f==OFF?0:(f==ON?0:(f==ONOFF?46:46)) 310 #define EQU_SY(f) f==OFF?73:(f==ON?61:(f==ONOFF?61:73)) 311 #define EQU_DX 219 312 #define EQU_DY 58 313 #define EQU_W 23 314 #define EQU_H 12 315 316 #define PLIST_SX(f) f==OFF?23:(f==ON?23:(f==ONOFF?69:69)) 317 #define PLIST_SY(f) f==OFF?73:(f==ON?61:(f==ONOFF?61:73)) 318 #define PLIST_DX 242 319 #define PLIST_DY 58 320 #define PLIST_W 23 321 #define PLIST_H 12 322 323 /* posbar */ 324 325 #define BAR_SX 0 326 #define BAR_SY 0 327 #define BAR_W 248 328 #define BAR_H 10 329 #define BAR_DX 16 330 #define BAR_DY 72 331 332 #define POS_SX(f) f==OFF?248:278 333 #define POS_SY(f) 0 334 #define POS_W 29 335 #define POS_H 10 336 #define POS_MIN_DX 16 337 #define POS_MAX_DX 235 338 #define POS_DY 72 339 340 /* volume */ 341 342 #define VOLUME_SX 0 343 #define VOLUME_SY 0 344 #define VOLUME_W 68 345 #define VOLUME_H 15 346 #define VOLUME_DX 107 347 #define VOLUME_DY 57 348 349 #define VOL_SX(f) f==OFF?15:0 350 #define VOL_SY(f) 421 351 #define VOL_W 15 352 #define VOL_H 12 353 #define VOL_MIN_DX 107 354 #define VOL_MAX_DX 160 355 #define VOL_DY 57 356 357 #define PANPOT_SX 9 358 #define PANPOT_SY 0 359 #define PANPOT_W 37 360 #define PANPOT_H 15 361 #define PANPOT_DX 177 362 #define PANPOT_DY 57 363 364 #define PAN_SX(f) f==OFF?15:0 365 #define PAN_SY(f) 421 366 #define PAN_W 15 367 #define PAN_H 12 368 #define PAN_MIN_DX 178 369 #define PAN_MAX_DX 199 370 #define PAN_DY 57 371 372 /* spectrum analizer */ 373 374 #define SPE_SX 24 375 #define SPE_SY 43 376 #define SPE_W 76 377 #define SPE_H 16 378 379