9e71c28003
Previously, the wmcdplay version number was found in numerous places. To ease future releases, it now appears only in configure.ac.
256 lines
8.6 KiB
Plaintext
256 lines
8.6 KiB
Plaintext
wmcdplay - A cd player designed for WindowMaker
|
|
Copyright (C) 1998 Sam Hawker <shawkie@geocities.com>
|
|
This software comes with ABSOLUTELY NO WARRANTY
|
|
This software is free software, and you are welcome to redistribute it
|
|
under certain conditions
|
|
See the README file for a more complete notice.
|
|
|
|
|
|
ARTWORK
|
|
=======
|
|
|
|
The artwork mechanism allows you to customise the appearance (and more) of
|
|
wmcdplay at run-time, by loading an artwork file with the "-f artwork_file"
|
|
command line argument - yes, THIS IS A CHANGE!!!!! IT USED TO BE "-a"
|
|
----------------------------------------
|
|
|
|
This file trys to explain how to create artwork files. Please feel free to send
|
|
me comments or improved versions.
|
|
|
|
|
|
BASICS
|
|
======
|
|
|
|
wmcdplay can be in any one of 6 states:
|
|
Data 0
|
|
Stopped 1
|
|
Playing 2
|
|
Paused 3
|
|
NoCD 4
|
|
TrayOpen 5
|
|
|
|
wmcdplay buttons can perform any of 10 actions, and the action can
|
|
depend on the current state of wmcdplay:
|
|
NOTHING 0
|
|
Stop 1
|
|
Play 2
|
|
Pause 3
|
|
Resume 4
|
|
Prev 5
|
|
Next 6
|
|
Rewd 7
|
|
FFwd 8
|
|
Eject 9
|
|
Close 10
|
|
|
|
|
|
PIXMAPS
|
|
=======
|
|
|
|
The following symbolic color names may be used in any pixmaps:
|
|
led_color_high
|
|
led_color_med
|
|
led_color_low
|
|
color_back
|
|
and should be used appropriately to ensure that the led and background
|
|
colors can be set at runtime with the "-l led_color" and "-back_color"
|
|
command line arguments
|
|
|
|
led.xpm
|
|
-------
|
|
This pixmap is used by wmcdplay to draw the digits of the time and
|
|
track displays
|
|
It represents the string of characters: "00112233445566778899 DDAATTNNOOCC--PPEE:;_"
|
|
"00" means the character "0" but states that it is double width (eg 7+1 pixels wide)
|
|
":" means the character ":" which is only single width (eg 3+1 pixels wide)
|
|
";" means an unlit ":" single width character
|
|
"_" means a single width "-" character
|
|
The digit size used does not matter, but ensure that 1 pixel spaces are left between
|
|
digits and that (double width + 1 space) = 2 * (single width + 1 space)
|
|
eg. ( 7 + 1 ) = 2 * ( 3 + 1 )
|
|
Transparency is _NOT_ interpreted
|
|
This file must begin with these 2 lines (character perfect):
|
|
|
|
/* XPM */
|
|
static const char * led_xpm[] = {
|
|
|
|
ledsym.xpm
|
|
----------
|
|
This pixmap is used by wmcdplay to draw the symbols illustrating the current status
|
|
It should contain symbols for the following (in sequence):
|
|
Data, Stopped, Playing, Paused, NoCD, TrayOpen
|
|
The symbol size used does not matter, but ensure that 1 pixel spaces are left between
|
|
symbols
|
|
Transparency is _NOT_ interpreted
|
|
This file must begin with these 2 lines (character perfect):
|
|
|
|
/* XPM */
|
|
static const char * ledsym_xpm[] = {
|
|
|
|
ledtsel.xpm
|
|
-----------
|
|
This pixmap is used by wmcdplay to draw the symbols illustrating the current track
|
|
selection mode
|
|
It should contain symbols for the following (in sequence):
|
|
None, Next, Repeat, RepeatCD, Random
|
|
The symbol size used does not matter, but ensure that 1 pixel spaces are left between
|
|
symbols
|
|
Transparency is _NOT_ interpreted
|
|
This file must begin with these 2 lines (character perfect):
|
|
|
|
/* XPM */
|
|
static const char * ledtsel_xpm[] = {
|
|
|
|
symbols.xpm
|
|
-----------
|
|
This pixmap contains the symbols to be drawn onto the buttons
|
|
It should contain symbols for the following (in sequence):
|
|
NOTHING, Stop, Play, Pause, Resume, Prev, Next, Rewd, FFwd, Eject, Close
|
|
The symbol size used does not matter, but ensure that 1 pixel spaces are left between
|
|
symbols
|
|
Transparency _IS_ interpreted
|
|
This file must begin with these 2 lines (character perfect):
|
|
|
|
/* XPM */
|
|
static const char * symbols_xpm[] = {
|
|
|
|
cdplayer.xpm
|
|
------------
|
|
This pixmap provides the basic background for wmcdplay
|
|
It _must_ be 64x64 pixels
|
|
It should provide solid areas (the size and color of which will depend on the
|
|
led.xpm, ledsym.xpm and ledtsel.xpm files used), for any required displays to
|
|
be drawn onto
|
|
These areas are usually bordered in some way
|
|
It can also be used to provide solid areas which can form buttons
|
|
(Although the button symbols can themselves form the buttons)
|
|
Transparency _IS_ interpreted
|
|
This file must begin with these 2 lines (character perfect):
|
|
|
|
/* XPM */
|
|
static const char * cdplayer_xpm[] = {
|
|
|
|
|
|
THE DATA FILE - artwork.dat
|
|
===========================
|
|
|
|
So far, all we have in our artwork file is a set of pixmaps. But we also
|
|
need a data file (artwork.dat), to answer the following questions:
|
|
|
|
How many buttons are there?
|
|
Where exactly is each button?
|
|
What does each button do?
|
|
Should do-NOTHING buttons be hidden?
|
|
Which led displays are there?
|
|
Where are they?
|
|
|
|
The formats of entries in this file must follow the examples given quite closely.
|
|
Basically, anything before an '=' must appear exactly as shown and at the
|
|
beginning of the line (not indented as here). Also, all entries must be on a single
|
|
line unless shown otherwise here.
|
|
Comments and blank lines are, however, perfectly legal (between entries).
|
|
|
|
How many buttons?
|
|
-----------------
|
|
eg.
|
|
|
|
int art_nbtns=5;
|
|
|
|
Where exactly is each button?
|
|
-----------------------------
|
|
Buttons must be shaped as convex polygons, so you give the position
|
|
(and shape) of each as a list of coordinates of its verticies.
|
|
The polygon defined by these points is used to interpret mouse clicks,
|
|
and also (optionally) to hide do-NOTHING buttons.
|
|
|
|
Also, tell wmcdplay where on the button to put the symbol. This is in the
|
|
form of the co-ordinates of the top-left corner of the symbol, relative
|
|
to the top-left corner of wmcdplay.
|
|
A single entry, defines all buttons.
|
|
|
|
eg.
|
|
|
|
int art_btns[]={ 8 , 38 , 5 , 5 , 27 , 7 , 27 , 20 , 40 , 7 , 54 , 5 , 54 ,
|
|
19 , 26 , 5 , 6 , 22 , 28 , 22 , 28 , 39 , 22 , 39 , 6 , 24 ,
|
|
19 , 50 , 5 , 6 , 57 , 21 , 42 , 28 , 42 , 28 , 59 , 6 , 59 ,
|
|
35 , 26 , 5 , 31 , 22 , 52 , 22 , 52 , 24 , 37 , 39 , 31 , 39 ,
|
|
51 , 31 , 5 , 42 , 36 , 56 , 22 , 59 , 22 , 59 , 39 , 42 , 39 };
|
|
|
|
Each line defines 1 button:
|
|
symbol_x , symbol_y , num_vertices , x1 , y1 , x2 , y2 , x3 , y3 , x4 , y4 , x5 , y5
|
|
|
|
Different buttons may have different numbers of vertices, so different numbers of fields.
|
|
The button must be a _convex_ polygon, and the vertices must be given in sequence, going
|
|
_clockwise_ around the button.
|
|
|
|
What does each button do?
|
|
-------------------------
|
|
This is answered with a set of integer actions (see list given earlier) for each button,
|
|
for each state (see list given earlier):
|
|
|
|
wmcdplay state: 0 1 2 3 4 5
|
|
|
|
D S P P N T
|
|
A T L A O R
|
|
T O A U A
|
|
A P Y S C Y
|
|
P I E D
|
|
T E N D O
|
|
R D G P
|
|
K E
|
|
N
|
|
|
|
eg.
|
|
|
|
int art_actions[]={ 0 , 2 , 3 , 4 , 0 , 0 ,
|
|
5 , 5 , 5 , 0 , 0 , 0 ,
|
|
6 , 6 , 6 , 0 , 0 , 0 ,
|
|
0 , 0 , 1 , 1 , 0 , 0 ,
|
|
9 , 9 , 9 , 9 , 9 , 10 };
|
|
|
|
Should do-NOTHING buttons be hidden?
|
|
------------------------------------
|
|
This can be set so that whenever a button has NOTHING assigned to it, it is hidden
|
|
(using the region defined by style_btns). Otherwise it is left and the symbol
|
|
representing NOTHING is drawn onto it.
|
|
|
|
eg.
|
|
|
|
bool art_hidebtns=false;
|
|
|
|
Which led displays are there?
|
|
-----------------------------
|
|
|
|
eg.
|
|
|
|
bool style_leds[4]={ true, true, false, false};
|
|
|
|
That's basically:
|
|
show_time=true , show_track=true , show_status=false , show_trksel=false
|
|
|
|
Where are they?
|
|
---------------
|
|
eg.
|
|
|
|
int art_ledpos[3][2]={ 8 , 7 , 37 , 45 , 0 , 0 , 0 , 0 };
|
|
|
|
That's basically:
|
|
time_x=8 , time_y=7 , track_x=37 , track_y=45 , status_x=0 , status_y=0 , trksel_x=0 , trksel_y=0
|
|
|
|
These are the co-ordinates of the top-left corner of each display
|
|
relative to the top-left corner of wmcdplay.
|
|
You should enter valid integers even for displays which you have
|
|
chosen not to use.
|
|
|
|
|
|
ARTWORK FILES
|
|
=============
|
|
|
|
All the above files should be placed in an appropriately named directory and the
|
|
"makeart" script (installed by default in /usr/local/share/wmcdplay) should be
|
|
executed in the parent directory. You should end up with a new .art file. You
|
|
should be able to load wmcdplay with this artwork using the "-f artwork_file"
|
|
command line argument.
|
|
You should also be able to make your new artwork the compile-time default by
|
|
using the "--with-art" option to the "configure" script.
|