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