wmcdplay: Add version 1.0beta1 to repository.
Obtained from http://sourceforge.net/projects/wmcdplay/files/wmcdplay-1.0-beta1.tgz/download
This commit is contained in:
parent
87fdc14993
commit
34e3275338
256
wmcdplay/ARTWORK
Normal file
256
wmcdplay/ARTWORK
Normal file
|
@ -0,0 +1,256 @@
|
||||||
|
wmcdplay - A cd player designed for WindowMaker
|
||||||
|
05/09/98 Release 1.0 Beta1
|
||||||
|
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 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 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 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 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 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 in wmcdplay/XPM/
|
||||||
|
and the script wmcdplay/XPM/makeall should be executed.
|
||||||
|
You should end up with a new .art file in wmcdplay/XPM/
|
||||||
|
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 changing the
|
||||||
|
symbolic link wmcdplay/XPM/standard.art point to it, and recompiling
|
339
wmcdplay/COPYING
Normal file
339
wmcdplay/COPYING
Normal file
|
@ -0,0 +1,339 @@
|
||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
Version 2, June 1991
|
||||||
|
|
||||||
|
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||||
|
675 Mass Ave, Cambridge, MA 02139, USA
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
Preamble
|
||||||
|
|
||||||
|
The licenses for most software are designed to take away your
|
||||||
|
freedom to share and change it. By contrast, the GNU General Public
|
||||||
|
License is intended to guarantee your freedom to share and change free
|
||||||
|
software--to make sure the software is free for all its users. This
|
||||||
|
General Public License applies to most of the Free Software
|
||||||
|
Foundation's software and to any other program whose authors commit to
|
||||||
|
using it. (Some other Free Software Foundation software is covered by
|
||||||
|
the GNU Library General Public License instead.) You can apply it to
|
||||||
|
your programs, too.
|
||||||
|
|
||||||
|
When we speak of free software, we are referring to freedom, not
|
||||||
|
price. Our General Public Licenses are designed to make sure that you
|
||||||
|
have the freedom to distribute copies of free software (and charge for
|
||||||
|
this service if you wish), that you receive source code or can get it
|
||||||
|
if you want it, that you can change the software or use pieces of it
|
||||||
|
in new free programs; and that you know you can do these things.
|
||||||
|
|
||||||
|
To protect your rights, we need to make restrictions that forbid
|
||||||
|
anyone to deny you these rights or to ask you to surrender the rights.
|
||||||
|
These restrictions translate to certain responsibilities for you if you
|
||||||
|
distribute copies of the software, or if you modify it.
|
||||||
|
|
||||||
|
For example, if you distribute copies of such a program, whether
|
||||||
|
gratis or for a fee, you must give the recipients all the rights that
|
||||||
|
you have. You must make sure that they, too, receive or can get the
|
||||||
|
source code. And you must show them these terms so they know their
|
||||||
|
rights.
|
||||||
|
|
||||||
|
We protect your rights with two steps: (1) copyright the software, and
|
||||||
|
(2) offer you this license which gives you legal permission to copy,
|
||||||
|
distribute and/or modify the software.
|
||||||
|
|
||||||
|
Also, for each author's protection and ours, we want to make certain
|
||||||
|
that everyone understands that there is no warranty for this free
|
||||||
|
software. If the software is modified by someone else and passed on, we
|
||||||
|
want its recipients to know that what they have is not the original, so
|
||||||
|
that any problems introduced by others will not reflect on the original
|
||||||
|
authors' reputations.
|
||||||
|
|
||||||
|
Finally, any free program is threatened constantly by software
|
||||||
|
patents. We wish to avoid the danger that redistributors of a free
|
||||||
|
program will individually obtain patent licenses, in effect making the
|
||||||
|
program proprietary. To prevent this, we have made it clear that any
|
||||||
|
patent must be licensed for everyone's free use or not licensed at all.
|
||||||
|
|
||||||
|
The precise terms and conditions for copying, distribution and
|
||||||
|
modification follow.
|
||||||
|
|
||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||||
|
|
||||||
|
0. This License applies to any program or other work which contains
|
||||||
|
a notice placed by the copyright holder saying it may be distributed
|
||||||
|
under the terms of this General Public License. The "Program", below,
|
||||||
|
refers to any such program or work, and a "work based on the Program"
|
||||||
|
means either the Program or any derivative work under copyright law:
|
||||||
|
that is to say, a work containing the Program or a portion of it,
|
||||||
|
either verbatim or with modifications and/or translated into another
|
||||||
|
language. (Hereinafter, translation is included without limitation in
|
||||||
|
the term "modification".) Each licensee is addressed as "you".
|
||||||
|
|
||||||
|
Activities other than copying, distribution and modification are not
|
||||||
|
covered by this License; they are outside its scope. The act of
|
||||||
|
running the Program is not restricted, and the output from the Program
|
||||||
|
is covered only if its contents constitute a work based on the
|
||||||
|
Program (independent of having been made by running the Program).
|
||||||
|
Whether that is true depends on what the Program does.
|
||||||
|
|
||||||
|
1. You may copy and distribute verbatim copies of the Program's
|
||||||
|
source code as you receive it, in any medium, provided that you
|
||||||
|
conspicuously and appropriately publish on each copy an appropriate
|
||||||
|
copyright notice and disclaimer of warranty; keep intact all the
|
||||||
|
notices that refer to this License and to the absence of any warranty;
|
||||||
|
and give any other recipients of the Program a copy of this License
|
||||||
|
along with the Program.
|
||||||
|
|
||||||
|
You may charge a fee for the physical act of transferring a copy, and
|
||||||
|
you may at your option offer warranty protection in exchange for a fee.
|
||||||
|
|
||||||
|
2. You may modify your copy or copies of the Program or any portion
|
||||||
|
of it, thus forming a work based on the Program, and copy and
|
||||||
|
distribute such modifications or work under the terms of Section 1
|
||||||
|
above, provided that you also meet all of these conditions:
|
||||||
|
|
||||||
|
a) You must cause the modified files to carry prominent notices
|
||||||
|
stating that you changed the files and the date of any change.
|
||||||
|
|
||||||
|
b) You must cause any work that you distribute or publish, that in
|
||||||
|
whole or in part contains or is derived from the Program or any
|
||||||
|
part thereof, to be licensed as a whole at no charge to all third
|
||||||
|
parties under the terms of this License.
|
||||||
|
|
||||||
|
c) If the modified program normally reads commands interactively
|
||||||
|
when run, you must cause it, when started running for such
|
||||||
|
interactive use in the most ordinary way, to print or display an
|
||||||
|
announcement including an appropriate copyright notice and a
|
||||||
|
notice that there is no warranty (or else, saying that you provide
|
||||||
|
a warranty) and that users may redistribute the program under
|
||||||
|
these conditions, and telling the user how to view a copy of this
|
||||||
|
License. (Exception: if the Program itself is interactive but
|
||||||
|
does not normally print such an announcement, your work based on
|
||||||
|
the Program is not required to print an announcement.)
|
||||||
|
|
||||||
|
These requirements apply to the modified work as a whole. If
|
||||||
|
identifiable sections of that work are not derived from the Program,
|
||||||
|
and can be reasonably considered independent and separate works in
|
||||||
|
themselves, then this License, and its terms, do not apply to those
|
||||||
|
sections when you distribute them as separate works. But when you
|
||||||
|
distribute the same sections as part of a whole which is a work based
|
||||||
|
on the Program, the distribution of the whole must be on the terms of
|
||||||
|
this License, whose permissions for other licensees extend to the
|
||||||
|
entire whole, and thus to each and every part regardless of who wrote it.
|
||||||
|
|
||||||
|
Thus, it is not the intent of this section to claim rights or contest
|
||||||
|
your rights to work written entirely by you; rather, the intent is to
|
||||||
|
exercise the right to control the distribution of derivative or
|
||||||
|
collective works based on the Program.
|
||||||
|
|
||||||
|
In addition, mere aggregation of another work not based on the Program
|
||||||
|
with the Program (or with a work based on the Program) on a volume of
|
||||||
|
a storage or distribution medium does not bring the other work under
|
||||||
|
the scope of this License.
|
||||||
|
|
||||||
|
3. You may copy and distribute the Program (or a work based on it,
|
||||||
|
under Section 2) in object code or executable form under the terms of
|
||||||
|
Sections 1 and 2 above provided that you also do one of the following:
|
||||||
|
|
||||||
|
a) Accompany it with the complete corresponding machine-readable
|
||||||
|
source code, which must be distributed under the terms of Sections
|
||||||
|
1 and 2 above on a medium customarily used for software interchange; or,
|
||||||
|
|
||||||
|
b) Accompany it with a written offer, valid for at least three
|
||||||
|
years, to give any third party, for a charge no more than your
|
||||||
|
cost of physically performing source distribution, a complete
|
||||||
|
machine-readable copy of the corresponding source code, to be
|
||||||
|
distributed under the terms of Sections 1 and 2 above on a medium
|
||||||
|
customarily used for software interchange; or,
|
||||||
|
|
||||||
|
c) Accompany it with the information you received as to the offer
|
||||||
|
to distribute corresponding source code. (This alternative is
|
||||||
|
allowed only for noncommercial distribution and only if you
|
||||||
|
received the program in object code or executable form with such
|
||||||
|
an offer, in accord with Subsection b above.)
|
||||||
|
|
||||||
|
The source code for a work means the preferred form of the work for
|
||||||
|
making modifications to it. For an executable work, complete source
|
||||||
|
code means all the source code for all modules it contains, plus any
|
||||||
|
associated interface definition files, plus the scripts used to
|
||||||
|
control compilation and installation of the executable. However, as a
|
||||||
|
special exception, the source code distributed need not include
|
||||||
|
anything that is normally distributed (in either source or binary
|
||||||
|
form) with the major components (compiler, kernel, and so on) of the
|
||||||
|
operating system on which the executable runs, unless that component
|
||||||
|
itself accompanies the executable.
|
||||||
|
|
||||||
|
If distribution of executable or object code is made by offering
|
||||||
|
access to copy from a designated place, then offering equivalent
|
||||||
|
access to copy the source code from the same place counts as
|
||||||
|
distribution of the source code, even though third parties are not
|
||||||
|
compelled to copy the source along with the object code.
|
||||||
|
|
||||||
|
4. You may not copy, modify, sublicense, or distribute the Program
|
||||||
|
except as expressly provided under this License. Any attempt
|
||||||
|
otherwise to copy, modify, sublicense or distribute the Program is
|
||||||
|
void, and will automatically terminate your rights under this License.
|
||||||
|
However, parties who have received copies, or rights, from you under
|
||||||
|
this License will not have their licenses terminated so long as such
|
||||||
|
parties remain in full compliance.
|
||||||
|
|
||||||
|
5. You are not required to accept this License, since you have not
|
||||||
|
signed it. However, nothing else grants you permission to modify or
|
||||||
|
distribute the Program or its derivative works. These actions are
|
||||||
|
prohibited by law if you do not accept this License. Therefore, by
|
||||||
|
modifying or distributing the Program (or any work based on the
|
||||||
|
Program), you indicate your acceptance of this License to do so, and
|
||||||
|
all its terms and conditions for copying, distributing or modifying
|
||||||
|
the Program or works based on it.
|
||||||
|
|
||||||
|
6. Each time you redistribute the Program (or any work based on the
|
||||||
|
Program), the recipient automatically receives a license from the
|
||||||
|
original licensor to copy, distribute or modify the Program subject to
|
||||||
|
these terms and conditions. You may not impose any further
|
||||||
|
restrictions on the recipients' exercise of the rights granted herein.
|
||||||
|
You are not responsible for enforcing compliance by third parties to
|
||||||
|
this License.
|
||||||
|
|
||||||
|
7. If, as a consequence of a court judgment or allegation of patent
|
||||||
|
infringement or for any other reason (not limited to patent issues),
|
||||||
|
conditions are imposed on you (whether by court order, agreement or
|
||||||
|
otherwise) that contradict the conditions of this License, they do not
|
||||||
|
excuse you from the conditions of this License. If you cannot
|
||||||
|
distribute so as to satisfy simultaneously your obligations under this
|
||||||
|
License and any other pertinent obligations, then as a consequence you
|
||||||
|
may not distribute the Program at all. For example, if a patent
|
||||||
|
license would not permit royalty-free redistribution of the Program by
|
||||||
|
all those who receive copies directly or indirectly through you, then
|
||||||
|
the only way you could satisfy both it and this License would be to
|
||||||
|
refrain entirely from distribution of the Program.
|
||||||
|
|
||||||
|
If any portion of this section is held invalid or unenforceable under
|
||||||
|
any particular circumstance, the balance of the section is intended to
|
||||||
|
apply and the section as a whole is intended to apply in other
|
||||||
|
circumstances.
|
||||||
|
|
||||||
|
It is not the purpose of this section to induce you to infringe any
|
||||||
|
patents or other property right claims or to contest validity of any
|
||||||
|
such claims; this section has the sole purpose of protecting the
|
||||||
|
integrity of the free software distribution system, which is
|
||||||
|
implemented by public license practices. Many people have made
|
||||||
|
generous contributions to the wide range of software distributed
|
||||||
|
through that system in reliance on consistent application of that
|
||||||
|
system; it is up to the author/donor to decide if he or she is willing
|
||||||
|
to distribute software through any other system and a licensee cannot
|
||||||
|
impose that choice.
|
||||||
|
|
||||||
|
This section is intended to make thoroughly clear what is believed to
|
||||||
|
be a consequence of the rest of this License.
|
||||||
|
|
||||||
|
8. If the distribution and/or use of the Program is restricted in
|
||||||
|
certain countries either by patents or by copyrighted interfaces, the
|
||||||
|
original copyright holder who places the Program under this License
|
||||||
|
may add an explicit geographical distribution limitation excluding
|
||||||
|
those countries, so that distribution is permitted only in or among
|
||||||
|
countries not thus excluded. In such case, this License incorporates
|
||||||
|
the limitation as if written in the body of this License.
|
||||||
|
|
||||||
|
9. The Free Software Foundation may publish revised and/or new versions
|
||||||
|
of the General Public License from time to time. Such new versions will
|
||||||
|
be similar in spirit to the present version, but may differ in detail to
|
||||||
|
address new problems or concerns.
|
||||||
|
|
||||||
|
Each version is given a distinguishing version number. If the Program
|
||||||
|
specifies a version number of this License which applies to it and "any
|
||||||
|
later version", you have the option of following the terms and conditions
|
||||||
|
either of that version or of any later version published by the Free
|
||||||
|
Software Foundation. If the Program does not specify a version number of
|
||||||
|
this License, you may choose any version ever published by the Free Software
|
||||||
|
Foundation.
|
||||||
|
|
||||||
|
10. If you wish to incorporate parts of the Program into other free
|
||||||
|
programs whose distribution conditions are different, write to the author
|
||||||
|
to ask for permission. For software which is copyrighted by the Free
|
||||||
|
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||||
|
make exceptions for this. Our decision will be guided by the two goals
|
||||||
|
of preserving the free status of all derivatives of our free software and
|
||||||
|
of promoting the sharing and reuse of software generally.
|
||||||
|
|
||||||
|
NO WARRANTY
|
||||||
|
|
||||||
|
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||||
|
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||||
|
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||||
|
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||||
|
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||||
|
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||||
|
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||||
|
REPAIR OR CORRECTION.
|
||||||
|
|
||||||
|
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||||
|
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||||
|
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||||
|
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||||
|
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||||
|
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||||
|
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||||
|
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||||
|
POSSIBILITY OF SUCH DAMAGES.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
Appendix: How to Apply These Terms to Your New Programs
|
||||||
|
|
||||||
|
If you develop a new program, and you want it to be of the greatest
|
||||||
|
possible use to the public, the best way to achieve this is to make it
|
||||||
|
free software which everyone can redistribute and change under these terms.
|
||||||
|
|
||||||
|
To do so, attach the following notices to the program. It is safest
|
||||||
|
to attach them to the start of each source file to most effectively
|
||||||
|
convey the exclusion of warranty; and each file should have at least
|
||||||
|
the "copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
|
<one line to give the program's name and a brief idea of what it does.>
|
||||||
|
Copyright (C) 19yy <name of author>
|
||||||
|
|
||||||
|
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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
|
||||||
|
If the program is interactive, make it output a short notice like this
|
||||||
|
when it starts in an interactive mode:
|
||||||
|
|
||||||
|
Gnomovision version 69, Copyright (C) 19yy name of author
|
||||||
|
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||||
|
This is free software, and you are welcome to redistribute it
|
||||||
|
under certain conditions; type `show c' for details.
|
||||||
|
|
||||||
|
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||||
|
parts of the General Public License. Of course, the commands you use may
|
||||||
|
be called something other than `show w' and `show c'; they could even be
|
||||||
|
mouse-clicks or menu items--whatever suits your program.
|
||||||
|
|
||||||
|
You should also get your employer (if you work as a programmer) or your
|
||||||
|
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||||
|
necessary. Here is a sample; alter the names:
|
||||||
|
|
||||||
|
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||||
|
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||||
|
|
||||||
|
<signature of Ty Coon>, 1 April 1989
|
||||||
|
Ty Coon, President of Vice
|
||||||
|
|
||||||
|
This General Public License does not permit incorporating your program into
|
||||||
|
proprietary programs. If your program is a subroutine library, you may
|
||||||
|
consider it more useful to permit linking proprietary applications with the
|
||||||
|
library. If this is what you want to do, use the GNU Library General
|
||||||
|
Public License instead of this License.
|
8
wmcdplay/Imakefile
Normal file
8
wmcdplay/Imakefile
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
DEPLIBS = $(DEPXLIB)
|
||||||
|
|
||||||
|
LOCAL_LIBRARIES = $(XPMLIB) $(XLIB)
|
||||||
|
|
||||||
|
SRCS = wmcdplay.cc
|
||||||
|
OBJS = wmcdplay.o
|
||||||
|
|
||||||
|
ComplexProgramTarget(wmcdplay)
|
212
wmcdplay/README
Normal file
212
wmcdplay/README
Normal file
|
@ -0,0 +1,212 @@
|
||||||
|
wmcdplay - A cd player designed for WindowMaker
|
||||||
|
05/09/98 Release 1.0 Beta1
|
||||||
|
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 COPYING file for details.
|
||||||
|
|
||||||
|
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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
|
|
||||||
|
THE AUTHOR:
|
||||||
|
===========
|
||||||
|
|
||||||
|
Sam Hawker
|
||||||
|
shawkie@geocities.com
|
||||||
|
http://www.geocities.com/SiliconValley/Vista/2471/
|
||||||
|
|
||||||
|
|
||||||
|
INSTALLING:
|
||||||
|
===========
|
||||||
|
|
||||||
|
xmkmf
|
||||||
|
make
|
||||||
|
strip wmcdplay
|
||||||
|
make install
|
||||||
|
|
||||||
|
mkdir /usr/X11R6/lib/X11/wmcdplay
|
||||||
|
cp XPM/*.art /usr/X11R6/lib/X11/wmcdplay
|
||||||
|
|
||||||
|
|
||||||
|
TRACK SELECTION:
|
||||||
|
================
|
||||||
|
|
||||||
|
Release 0.6 introduced track selection.
|
||||||
|
|
||||||
|
Actually, track selection is a slightly more logical version of the random/repeat
|
||||||
|
functions found in Creative Labs' SB16 software suite for win95.
|
||||||
|
|
||||||
|
The major change is that the previous releases just played from current position
|
||||||
|
to the end of the cd.
|
||||||
|
Now we play a single track, and when you set the track selection mode, you just
|
||||||
|
tell the cd player what to do at the end of the track. Here are the options:
|
||||||
|
0 None - just stop
|
||||||
|
1 Next - play next (audio) track (stop if end of cd)
|
||||||
|
2 Repeat - play this track again
|
||||||
|
3 RepeatCD - play next (audio) track (start from first track if end of cd)
|
||||||
|
4 Random - select an audio track at random and play it
|
||||||
|
|
||||||
|
The led display symbols for the modes are now part of the artwork file.
|
||||||
|
The mode defaults to Next, but can be changed with the "-t track_selection" command
|
||||||
|
line argument, or by clicking on the track selection mode led display.
|
||||||
|
|
||||||
|
The main consequence of this approach is that when using Random, you will
|
||||||
|
probably here a track twice before every track on the cd has been played once.
|
||||||
|
(Most cd players have a playlist listing all tracks in a randomized order)
|
||||||
|
Also, wmcdplay will always begin with track 1.
|
||||||
|
Furthermore, the Next and Prev buttons will always move through track numbers on the
|
||||||
|
cd (rather than, for instance, selecting random tracks).
|
||||||
|
|
||||||
|
|
||||||
|
AFTERSTEP USERS:
|
||||||
|
================
|
||||||
|
(thanks to tygris@erols.com)
|
||||||
|
|
||||||
|
This release includes in a new command line option (actually, its "-a"
|
||||||
|
and artwork files are now loaded with "-f artwork_file").
|
||||||
|
The effect this has is to enable shape support (it implies "-s"), and
|
||||||
|
to reduce the size of the window to 56x56 pixels.
|
||||||
|
The "-position position" option has also been added, so you can push
|
||||||
|
wmcdplay off the edge of the screen while it gets swallowed.
|
||||||
|
To put wmmount in your Wharf, add the following line in the appropriate
|
||||||
|
part of your .steprc
|
||||||
|
|
||||||
|
*Wharf wmmount nil MaxSwallow "wmmount" wmmount -a -position -0-0 &
|
||||||
|
|
||||||
|
It is also possible (by editing and recompiling the afterstep sources),
|
||||||
|
to make Wharf handle the new 56x56 pixel window properly - yes, I add
|
||||||
|
an option to use a 56x56 pixel window, even though the AfterStep Wharf
|
||||||
|
really wants 55x57 pixel ones.
|
||||||
|
|
||||||
|
I am told (by tygris@erols.com):
|
||||||
|
|
||||||
|
"Locate Wharf.c (or is it Wharf.cc?) Should be in
|
||||||
|
AfterStep-1.0/modules/Wharf. Locate this:
|
||||||
|
|
||||||
|
if (Buttons[button].maxsize) {
|
||||||
|
Buttons[button].icons[0].w = 55;
|
||||||
|
Buttons[button].icons[0].h = 57;
|
||||||
|
}
|
||||||
|
|
||||||
|
and change the 55 and 57 to 56's. Save and compile."
|
||||||
|
|
||||||
|
|
||||||
|
BUILD PROBLEMS:
|
||||||
|
===============
|
||||||
|
|
||||||
|
You may have trouble linking wmmount with the compiler supplied on some
|
||||||
|
recent distributions (eg. Debian 2.0 & RedHat 5.1).
|
||||||
|
It can be made to build by adding the following line to the top of the
|
||||||
|
Imakefile, before executing xmkmf:
|
||||||
|
|
||||||
|
CC = c++
|
||||||
|
|
||||||
|
I am not sure of the effect this has on memory usage, etc.
|
||||||
|
|
||||||
|
|
||||||
|
RELEASE HISTORY:
|
||||||
|
================
|
||||||
|
|
||||||
|
Release 0.1 22/01/98 Poor window repaint technique.
|
||||||
|
Incorrect display if paused on startup.
|
||||||
|
Does not show Tray Open if opened by button on drive,
|
||||||
|
(I think this can only be done if the drive is empty).
|
||||||
|
|
||||||
|
Release 0.2 23/01/98 Improved window repaints.
|
||||||
|
Correct display even if paused on startup.
|
||||||
|
Improved interface on 'other' window managers.
|
||||||
|
|
||||||
|
Release 0.3 07/02/98 Handles multisession CD properly.
|
||||||
|
Now free's ALL pixmaps on exit (i hope).
|
||||||
|
And GCs :-).
|
||||||
|
Major re-write and interface alterations.
|
||||||
|
Option for led display color.
|
||||||
|
Smaller and better written.
|
||||||
|
|
||||||
|
Release 0.4 12/02/98 Highly customizable user interface. You chose:
|
||||||
|
Basic pixmap,
|
||||||
|
How many buttons,
|
||||||
|
Size, shape, position of buttons (polygons),
|
||||||
|
Actions for each button in each state:
|
||||||
|
(Stop, Stop Data, Play, Pause, Ejected),
|
||||||
|
Led and symbol pixmaps,
|
||||||
|
Position of displays.
|
||||||
|
|
||||||
|
Release 0.5 24/02/98 Fixed bug relating to manual window positioning.
|
||||||
|
Fixed error in grey.art.
|
||||||
|
|
||||||
|
Release 0.6 04/03/98 Rewritten cdctl engine.
|
||||||
|
Some more changes to artwork:
|
||||||
|
Different states,
|
||||||
|
Different actions.
|
||||||
|
Random/Repeat track selection.
|
||||||
|
|
||||||
|
Reduced CPU load (thanks to aseltine@cd.umass.edu),
|
||||||
|
It wasn't high on my K6 233MHz box :-).
|
||||||
|
|
||||||
|
Release 0.7 12/03/98 Better track selection.
|
||||||
|
Command line option to set track selection mode.
|
||||||
|
Yet more changes to artwork:
|
||||||
|
Hiding of do-NOTHING buttons now optional,
|
||||||
|
Symbols can be drawn onto non-solid background.
|
||||||
|
New name (wmcdplay).
|
||||||
|
Now works on 8bpp displays with full colormaps.
|
||||||
|
(thanks to devernay@istar.fr on the mailing-list)
|
||||||
|
|
||||||
|
Release 0.8 07/05/98 Now GPL.
|
||||||
|
Added "-v volume" command line argument.
|
||||||
|
Added "-b back_color" command line argument,
|
||||||
|
("-b darkslategrey -l cyan" gives a nice backlit look).
|
||||||
|
Reduced cpu load.
|
||||||
|
Relative or absolute time display,
|
||||||
|
(click time display to switch).
|
||||||
|
More changes to artwork:
|
||||||
|
Led pixmaps now part of artwork,
|
||||||
|
Symbolic color names can now be used in all pixmaps:
|
||||||
|
led_color_high,
|
||||||
|
led_color_med,
|
||||||
|
led_color_low,
|
||||||
|
color_back.
|
||||||
|
All pixmaps now use standard names:
|
||||||
|
cdplayer.xpm = cdplayer_xpm,
|
||||||
|
symbols.xpm = symbols_xpm,
|
||||||
|
led.xpm = led_xpm,
|
||||||
|
ledsym.xpm = ledsym_xpm,
|
||||||
|
ledtsel.xpm = ledtsel_xpm.
|
||||||
|
Entries specifying symbol dimensions no longer needed,
|
||||||
|
"symbols.xpm" now includes a symbol for NOTHING,
|
||||||
|
New piece of artwork, "newstyle.art",
|
||||||
|
New directory structure and scripts.
|
||||||
|
Track selection should be more reliable now.
|
||||||
|
|
||||||
|
Release 1.0 05/09/98 Added some error checking.
|
||||||
|
Beta1 "-a artwork_file" is now "-f artwork_file", sorry ;-).
|
||||||
|
Added "-a" command line argument for AfterStep users.
|
||||||
|
Added "-position position" command line argument.
|
||||||
|
Command line arguments, "-a", "-w" and "-s" are now toggle,
|
||||||
|
so if you enable one at compile-time, you can override
|
||||||
|
it at run-time.
|
||||||
|
Track selection actually works now??
|
||||||
|
(anyone notice a recurring theme here??)
|
||||||
|
Seperate update interval for when drive is empty.
|
||||||
|
(thanks to .....)
|
||||||
|
Fixed problem with (some?) SCSI devices refusing to
|
||||||
|
give LBA values. Thanks to the linux ide-scsi-emulator.
|
||||||
|
Now looks in some known directories for artwork files as
|
||||||
|
a last resort.
|
||||||
|
Improved artwork loading (it was very brain-dead).
|
||||||
|
Formatting changes in artwork files (ARTWORK documentation
|
||||||
|
is now up-to-date).
|
220
wmcdplay/XPM/bluered.art
Normal file
220
wmcdplay/XPM/bluered.art
Normal file
|
@ -0,0 +1,220 @@
|
||||||
|
int art_nbtns=4;
|
||||||
|
int art_btns[]={ 9 , 26 , 4 , 8 , 25 , 21 , 25 , 21 , 38 , 8 , 38 ,
|
||||||
|
9 , 43 , 4 , 8 , 42 , 21 , 42 , 21 , 56 , 8 , 56 ,
|
||||||
|
44 , 26 , 4 , 43 , 25 , 56 , 25 , 56 , 38 , 43 , 38 ,
|
||||||
|
44 , 43 , 4 , 43 , 42 , 56 , 42 , 56 , 56 , 43 , 56 };
|
||||||
|
int art_actions[]={ 0 , 2 , 3 , 4 , 0 , 0 ,
|
||||||
|
5 , 5 , 5 , 0 , 0 , 0 ,
|
||||||
|
9 , 9 , 1 , 1 , 9 , 10 ,
|
||||||
|
6 , 6 , 6 , 0 , 0 , 0 };
|
||||||
|
bool art_hidebtns=true;
|
||||||
|
bool art_showled[4]={ true , true , false , false };
|
||||||
|
int art_ledpos[4][2]={ 14 , 10 , 24 , 43 , 0 , 0 , 0 , 0 };
|
||||||
|
/* XPM */
|
||||||
|
static char * cdplayer_xpm[] = {
|
||||||
|
"64 64 64 1",
|
||||||
|
" c None",
|
||||||
|
". c #FFFF00000000",
|
||||||
|
"X c #F7DE00000820",
|
||||||
|
"o c #EFBE00000820",
|
||||||
|
"O c #EFBE00001040",
|
||||||
|
"+ c #E79D00001861",
|
||||||
|
"@ c #DF7D00001861",
|
||||||
|
"# c #DF7D00002081",
|
||||||
|
"$ c #D75C00002081",
|
||||||
|
"% c #D75C000028A2",
|
||||||
|
"& c #CF3C000030C2",
|
||||||
|
"* c #C71B000030C2",
|
||||||
|
"= c #C71B000038E3",
|
||||||
|
"- c #BEFB000038E3",
|
||||||
|
"; c #BEFB00004103",
|
||||||
|
": c #B6DA00004924",
|
||||||
|
"> c #AEBA00004924",
|
||||||
|
", c #AEBA00005144",
|
||||||
|
"< c #A69900005965",
|
||||||
|
"1 c #9E7900005965",
|
||||||
|
"2 c #9E7900006185",
|
||||||
|
"3 c #965800006185",
|
||||||
|
"4 c #9658000069A6",
|
||||||
|
"5 c #8E38000071C6",
|
||||||
|
"6 c #8617000071C6",
|
||||||
|
"7 c #8617000079E7",
|
||||||
|
"8 c #79E7000079E7",
|
||||||
|
"9 c #79E700008617",
|
||||||
|
"0 c #71C600008E38",
|
||||||
|
"q c #69A600008E38",
|
||||||
|
"w c #69A600009658",
|
||||||
|
"e c #618500009E79",
|
||||||
|
"r c #59650000A699",
|
||||||
|
"t c #51440000A699",
|
||||||
|
"y c #51440000AEBA",
|
||||||
|
"u c #49240000B6DA",
|
||||||
|
"i c #41030000B6DA",
|
||||||
|
"p c #41030000BEFB",
|
||||||
|
"a c #38E30000BEFB",
|
||||||
|
"s c #38E30000C71B",
|
||||||
|
"d c #30C20000CF3C",
|
||||||
|
"f c #28A20000CF3C",
|
||||||
|
"g c #28A20000D75C",
|
||||||
|
"h c #20810000DF7D",
|
||||||
|
"j c #18610000E79D",
|
||||||
|
"k c #10400000E79D",
|
||||||
|
"l c #F7DE00000000",
|
||||||
|
"z c #CF3C000028A2",
|
||||||
|
"x c #B6DA00004103",
|
||||||
|
"c c #71C600008617",
|
||||||
|
"v c #596500009E79",
|
||||||
|
"b c #30C20000C71B",
|
||||||
|
"n c #18610000DF7D",
|
||||||
|
"m c #10400000EFBE",
|
||||||
|
"M c #000000000000",
|
||||||
|
"N c #08200000EFBE",
|
||||||
|
"B c #08200000F7DE",
|
||||||
|
"V c #00000000F7DE",
|
||||||
|
"C c #E79D00001040",
|
||||||
|
"Z c #49240000AEBA",
|
||||||
|
"A c #A69900005144",
|
||||||
|
"S c #8E38000069A6",
|
||||||
|
"D c #618500009658",
|
||||||
|
"F c #20810000D75C",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ..XoO+@#$%&*=-;:>,<1234567890qweertyuipasdfghhjk ",
|
||||||
|
" .lXoO+@#%z&*=;x:>,<12445679c0qwevryyuipsbdfghnjm ",
|
||||||
|
" .lMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMjm ",
|
||||||
|
" .XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMjm ",
|
||||||
|
" .XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMkm ",
|
||||||
|
" lXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMmm ",
|
||||||
|
" lXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMmN ",
|
||||||
|
" lXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMmN ",
|
||||||
|
" XoMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMmB ",
|
||||||
|
" XoMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMmB ",
|
||||||
|
" XoMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMmB ",
|
||||||
|
" XOMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNB ",
|
||||||
|
" oOMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMBB ",
|
||||||
|
" oO+@#$%&*=-;:>,<<234567890qweertyuipasdfghhjkmBV ",
|
||||||
|
" oO+@#%%&*=;x:>,<12445679c0qwevryyuipsbdfghnjmmBV ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" .XC@%&=;><245 .XC@%&=;><245 ",
|
||||||
|
" XC@%&=;><2458 XC@%&=;><2458 ",
|
||||||
|
" C@%&=;><24580 C@%&=;><24580 ",
|
||||||
|
" @%&=;><24580w @%&=;><24580w ",
|
||||||
|
" %&=;><24580we %&=;><24580we ",
|
||||||
|
" &=;><24580wer &=;><24580wer ",
|
||||||
|
" =;><24580werZ =;><24580werZ ",
|
||||||
|
" ;><24580werZi ;><24580werZi ",
|
||||||
|
" ><24580werZis ><24580werZis ",
|
||||||
|
" <24580werZisd <24580werZisd ",
|
||||||
|
" 24580werZisdg 24580werZisdg ",
|
||||||
|
" 4580werZisdgn 4580werZisdgn ",
|
||||||
|
" 580werZisdgnk 580werZisdgnk ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ..XO@$&=;>A2457cwery ",
|
||||||
|
" .XC@%&=;><245 .lo+#%*-:,<3S790Dvyu .XC@%&=;><245 ",
|
||||||
|
" XC@%&=;><2458 .XMMMMMMMMMMMMMMMMZi XC@%&=;><2458 ",
|
||||||
|
" C@%&=;><24580 lOMMMMMMMMMMMMMMMMup C@%&=;><24580 ",
|
||||||
|
" @%&=;><24580w XCMMMMMMMMMMMMMMMMps @%&=;><24580w ",
|
||||||
|
" %&=;><24580we O+MMMMMMMMMMMMMMMMab %&=;><24580we ",
|
||||||
|
" &=;><24580wer C#MMMMMMMMMMMMMMMMsd &=;><24580wer ",
|
||||||
|
" =;><24580werZ +$MMMMMMMMMMMMMMMMdg =;><24580werZ ",
|
||||||
|
" ;><24580werZi #%MMMMMMMMMMMMMMMMdF ;><24580werZi ",
|
||||||
|
" ><24580werZis $&MMMMMMMMMMMMMMMMgh ><24580werZis ",
|
||||||
|
" <24580werZisd %*MMMMMMMMMMMMMMMMhj <24580werZisd ",
|
||||||
|
" 24580werZisdg &=MMMMMMMMMMMMMMMMhk 24580werZisdg ",
|
||||||
|
" 4580werZisdgn *;MMMMMMMMMMMMMMMMjm 4580werZisdgn ",
|
||||||
|
" 580werZisdgnk =x><24580werZpsdgnkB 580werZisdgnk ",
|
||||||
|
" ;:,135790DryupbghjmV ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" "};
|
||||||
|
|
||||||
|
/* XPM */
|
||||||
|
static char * symbols_xpm[] = {
|
||||||
|
"131 11 18 1",
|
||||||
|
" c None",
|
||||||
|
". c #DF7DDF7DDF7D",
|
||||||
|
"X c #D75CD34CD75C",
|
||||||
|
"o c #CF3CCB2BCF3C",
|
||||||
|
"O c #BEFBBEFBBEFB",
|
||||||
|
"+ c #B6DAB2CAB6DA",
|
||||||
|
"@ c #AEBAAAAAAEBA",
|
||||||
|
"# c #9E799E799E79",
|
||||||
|
"$ c #965896589658",
|
||||||
|
"% c #8E388A288E38",
|
||||||
|
"& c #79E77DF779E7",
|
||||||
|
"* c #71C675D671C6",
|
||||||
|
"= c #69A669A669A6",
|
||||||
|
"- c #59655D755965",
|
||||||
|
"; c #514455555144",
|
||||||
|
": c #492449244924",
|
||||||
|
"> c #38E33CF338E3",
|
||||||
|
", c #30C234D330C2",
|
||||||
|
" ...XoO+@#$% ...XoO ...XoO+@#$% ...XoO+@#$% .. O+@#$% ...XoO $% ...XoO+@#$% ...XoO+@#$% O ...XoO+@#$%",
|
||||||
|
" ..XoO+@#$%& ..XoO+@ ..XoO+@#$%& ..XoO+@#$%& .. O+@#$%& ..XoO+@ %& ..XoO+@#$%& ..XoO+@#$%& O+@ ..XoO+@#$%&",
|
||||||
|
" .X &* .X @#$ .X @ &* .X @ &* .X O+@ &* .X @#$ &* .XoO+@#$%&* .XoO+@#$%&* O+@#$ .X &*",
|
||||||
|
" Xo *= Xo $%& Xo # *= Xo # *= XoO+@ *= Xo $%&*= XoO+@#$%&*= XoO+@#$%&*= O+@ $%& Xo *=",
|
||||||
|
" oO =- oO &*= oO $ =- oO $ =- oO+@ =- oO &*=- oO+@#$%&*=- oO+@#$%&*=- O+@ &*= oO =-",
|
||||||
|
" O+ -; O+ =-; O+ % -; O+ % -; O+@ -; O+ =-; O+@#$%&*=-; O+@#$%&*=-; O+@ =-; O+@ =-;",
|
||||||
|
" +@ ;: +@ =-; +@ & ;: +@ & ;: +@#$ ;: +@ =-;: +@#$%&*=-;: +@#$%&*=-;: +@ ;: @#$ =-; ",
|
||||||
|
" @# :> @# =-; @# * :> @# * :> @#$%& :> @# =-;:> @#$%&*=-;:> @#$%&*=-;:> @# :> $%& =-; ",
|
||||||
|
" #$ >, #$ =-; #$ = >, #$ = >, #$ &*= >, #$ =-; >, #$%&*=-;:>, #$%&*=-;:>, #$ >, &*=-; ",
|
||||||
|
" $%&*=-;:>,, $%&*=-; $%&*=-;:>,, $%&*=-;:>,, $% =-;:>,, $%&*=-; ,, $%&*=-;:>,, $%&*=-;:>,, $%&*=-;:>,, =-; ",
|
||||||
|
" %&*=-;:>,,, %&*=-; %&*=-;:>,,, %&*=-;:>,,, %& ;:>,,, %&*=-; ,, %&*=-;:>,,, %&*=-;:>,,, %&*=-;:>,,, ; "};
|
||||||
|
/* XPM */
|
||||||
|
static char * led_xpm[] = {
|
||||||
|
"171 11 4 1",
|
||||||
|
" c #000000",
|
||||||
|
"0 c #00ff00 s led_color_high",
|
||||||
|
"1 c #009b00 s led_color_med",
|
||||||
|
"2 c #006200 s led_color_low",
|
||||||
|
" 00000 1 1 1 00000 00000 1 2 1 00000 00000 00000 00000 00000 1 1 1 1 1 1 00000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 00000 00000 ",
|
||||||
|
"0 212 0 2 0 1 212 0 1 212 0 0 0 0 212 1 0 212 1 2 121 0 0 212 0 0 212 0 2 1 2 0 0 212 0 0 1 2 1 2 1 2 1 2 1 0 212 0 0 212 1 ",
|
||||||
|
"01 10 10 10 10 01 10 01 01 20 01 10 01 10 10 01 10 01 01 10 01 10 2 2",
|
||||||
|
"01 10 10 10 10 01 10 01 01 20 01 10 01 10 10 01 10 01 01 10 01 01 1 1 ",
|
||||||
|
"0 0 1 0 1 121 0 2 121 0 0 212 0 0 212 1 0 212 1 2 0 0 212 0 0 212 0 1 2 1 212 0 0 212 0 0 212 2 1 212 2 1 212 2 1 212 2 1 212 2 0 212 0 0 212 1 ",
|
||||||
|
" 1 2 1 2 1 2 00000 00000 00000 00000 00000 1 1 1 00000 00000 2 1 1 00000 00000 00000 00000 00000 00000 00000 00000 00000 212 212 010",
|
||||||
|
"0 0 1 0 0 212 1 1 212 0 1 212 0 2 121 0 0 212 0 1 0 0 212 0 2 121 0 1 2 0 212 0 0 212 0 0 212 2 0 212 0 0 212 0 0 212 2 1 212 2 0 212 2 0 212 2 ",
|
||||||
|
"01 10 10 01 10 10 20 01 10 20 01 10 20 01 10 01 10 01 01 10 01 10 01 01 01 10 2 2",
|
||||||
|
"01 10 10 01 10 10 20 01 10 20 01 10 20 01 10 01 10 01 01 10 01 10 01 01 01 01 1 1 ",
|
||||||
|
"0 212 0 1 0 0 212 1 2 121 0 1 0 2 121 0 0 212 0 1 0 0 212 0 2 121 0 1 1 0 212 0 0 0 0 212 1 0 0 0 212 0 0 212 1 1 1 0 1 0 212 1 ",
|
||||||
|
" 00000 2 1 2 00000 00000 2 1 2 00000 00000 1 1 1 00000 00000 1 1 2 00000 2 1 2 00000 1 1 2 00000 00000 1 1 2 1 1 2 00000 "};
|
||||||
|
/* XPM */
|
||||||
|
static char * ledsym_xpm[] = {
|
||||||
|
"35 5 2 1",
|
||||||
|
" c #000000",
|
||||||
|
"0 c #00ff00 s led_color_high",
|
||||||
|
"00000 00000 0 00 00 0 0 ",
|
||||||
|
"00000 00000 000 00 00 000 000 ",
|
||||||
|
"00000 00000 00000 00 00 00000 00000",
|
||||||
|
"00000 00000 000 00 00 ",
|
||||||
|
"00000 00000 0 00 00 00000 00000"};
|
||||||
|
/* XPM */
|
||||||
|
static char * ledtsel_xpm[]={
|
||||||
|
"29 11 2 1",
|
||||||
|
" c #000000",
|
||||||
|
"0 c #00ff00 s led_color_high",
|
||||||
|
" 00 00 00 ",
|
||||||
|
" 0 0 0 0 0 0 0 0 ",
|
||||||
|
" 0 0 0 0 0 0 0 ",
|
||||||
|
" 0 0 0 0 0 0 000 ",
|
||||||
|
" 0 0 0 0 0 0 0 ",
|
||||||
|
" 000 000 000 000 ",
|
||||||
|
" 0 0 0 0 0 ",
|
||||||
|
" 0 0 0 0 000 ",
|
||||||
|
" 0 ",
|
||||||
|
" 0 0",
|
||||||
|
" 000 000 00 "};
|
12
wmcdplay/XPM/bluered/artwork.dat
Normal file
12
wmcdplay/XPM/bluered/artwork.dat
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
int art_nbtns=4;
|
||||||
|
int art_btns[]={ 9 , 26 , 4 , 8 , 25 , 21 , 25 , 21 , 38 , 8 , 38 ,
|
||||||
|
9 , 43 , 4 , 8 , 42 , 21 , 42 , 21 , 56 , 8 , 56 ,
|
||||||
|
44 , 26 , 4 , 43 , 25 , 56 , 25 , 56 , 38 , 43 , 38 ,
|
||||||
|
44 , 43 , 4 , 43 , 42 , 56 , 42 , 56 , 56 , 43 , 56 };
|
||||||
|
int art_actions[]={ 0 , 2 , 3 , 4 , 0 , 0 ,
|
||||||
|
5 , 5 , 5 , 0 , 0 , 0 ,
|
||||||
|
9 , 9 , 1 , 1 , 9 , 10 ,
|
||||||
|
6 , 6 , 6 , 0 , 0 , 0 };
|
||||||
|
bool art_hidebtns=true;
|
||||||
|
bool art_showled[4]={ true , true , false , false };
|
||||||
|
int art_ledpos[4][2]={ 14 , 10 , 24 , 43 , 0 , 0 , 0 , 0 };
|
132
wmcdplay/XPM/bluered/cdplayer.xpm
Normal file
132
wmcdplay/XPM/bluered/cdplayer.xpm
Normal file
|
@ -0,0 +1,132 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * cdplayer_xpm[] = {
|
||||||
|
"64 64 64 1",
|
||||||
|
" c None",
|
||||||
|
". c #FFFF00000000",
|
||||||
|
"X c #F7DE00000820",
|
||||||
|
"o c #EFBE00000820",
|
||||||
|
"O c #EFBE00001040",
|
||||||
|
"+ c #E79D00001861",
|
||||||
|
"@ c #DF7D00001861",
|
||||||
|
"# c #DF7D00002081",
|
||||||
|
"$ c #D75C00002081",
|
||||||
|
"% c #D75C000028A2",
|
||||||
|
"& c #CF3C000030C2",
|
||||||
|
"* c #C71B000030C2",
|
||||||
|
"= c #C71B000038E3",
|
||||||
|
"- c #BEFB000038E3",
|
||||||
|
"; c #BEFB00004103",
|
||||||
|
": c #B6DA00004924",
|
||||||
|
"> c #AEBA00004924",
|
||||||
|
", c #AEBA00005144",
|
||||||
|
"< c #A69900005965",
|
||||||
|
"1 c #9E7900005965",
|
||||||
|
"2 c #9E7900006185",
|
||||||
|
"3 c #965800006185",
|
||||||
|
"4 c #9658000069A6",
|
||||||
|
"5 c #8E38000071C6",
|
||||||
|
"6 c #8617000071C6",
|
||||||
|
"7 c #8617000079E7",
|
||||||
|
"8 c #79E7000079E7",
|
||||||
|
"9 c #79E700008617",
|
||||||
|
"0 c #71C600008E38",
|
||||||
|
"q c #69A600008E38",
|
||||||
|
"w c #69A600009658",
|
||||||
|
"e c #618500009E79",
|
||||||
|
"r c #59650000A699",
|
||||||
|
"t c #51440000A699",
|
||||||
|
"y c #51440000AEBA",
|
||||||
|
"u c #49240000B6DA",
|
||||||
|
"i c #41030000B6DA",
|
||||||
|
"p c #41030000BEFB",
|
||||||
|
"a c #38E30000BEFB",
|
||||||
|
"s c #38E30000C71B",
|
||||||
|
"d c #30C20000CF3C",
|
||||||
|
"f c #28A20000CF3C",
|
||||||
|
"g c #28A20000D75C",
|
||||||
|
"h c #20810000DF7D",
|
||||||
|
"j c #18610000E79D",
|
||||||
|
"k c #10400000E79D",
|
||||||
|
"l c #F7DE00000000",
|
||||||
|
"z c #CF3C000028A2",
|
||||||
|
"x c #B6DA00004103",
|
||||||
|
"c c #71C600008617",
|
||||||
|
"v c #596500009E79",
|
||||||
|
"b c #30C20000C71B",
|
||||||
|
"n c #18610000DF7D",
|
||||||
|
"m c #10400000EFBE",
|
||||||
|
"M c #000000000000",
|
||||||
|
"N c #08200000EFBE",
|
||||||
|
"B c #08200000F7DE",
|
||||||
|
"V c #00000000F7DE",
|
||||||
|
"C c #E79D00001040",
|
||||||
|
"Z c #49240000AEBA",
|
||||||
|
"A c #A69900005144",
|
||||||
|
"S c #8E38000069A6",
|
||||||
|
"D c #618500009658",
|
||||||
|
"F c #20810000D75C",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ..XoO+@#$%&*=-;:>,<1234567890qweertyuipasdfghhjk ",
|
||||||
|
" .lXoO+@#%z&*=;x:>,<12445679c0qwevryyuipsbdfghnjm ",
|
||||||
|
" .lMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMjm ",
|
||||||
|
" .XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMjm ",
|
||||||
|
" .XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMkm ",
|
||||||
|
" lXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMmm ",
|
||||||
|
" lXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMmN ",
|
||||||
|
" lXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMmN ",
|
||||||
|
" XoMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMmB ",
|
||||||
|
" XoMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMmB ",
|
||||||
|
" XoMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMmB ",
|
||||||
|
" XOMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNB ",
|
||||||
|
" oOMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMBB ",
|
||||||
|
" oO+@#$%&*=-;:>,<<234567890qweertyuipasdfghhjkmBV ",
|
||||||
|
" oO+@#%%&*=;x:>,<12445679c0qwevryyuipsbdfghnjmmBV ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" .XC@%&=;><245 .XC@%&=;><245 ",
|
||||||
|
" XC@%&=;><2458 XC@%&=;><2458 ",
|
||||||
|
" C@%&=;><24580 C@%&=;><24580 ",
|
||||||
|
" @%&=;><24580w @%&=;><24580w ",
|
||||||
|
" %&=;><24580we %&=;><24580we ",
|
||||||
|
" &=;><24580wer &=;><24580wer ",
|
||||||
|
" =;><24580werZ =;><24580werZ ",
|
||||||
|
" ;><24580werZi ;><24580werZi ",
|
||||||
|
" ><24580werZis ><24580werZis ",
|
||||||
|
" <24580werZisd <24580werZisd ",
|
||||||
|
" 24580werZisdg 24580werZisdg ",
|
||||||
|
" 4580werZisdgn 4580werZisdgn ",
|
||||||
|
" 580werZisdgnk 580werZisdgnk ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ..XO@$&=;>A2457cwery ",
|
||||||
|
" .XC@%&=;><245 .lo+#%*-:,<3S790Dvyu .XC@%&=;><245 ",
|
||||||
|
" XC@%&=;><2458 .XMMMMMMMMMMMMMMMMZi XC@%&=;><2458 ",
|
||||||
|
" C@%&=;><24580 lOMMMMMMMMMMMMMMMMup C@%&=;><24580 ",
|
||||||
|
" @%&=;><24580w XCMMMMMMMMMMMMMMMMps @%&=;><24580w ",
|
||||||
|
" %&=;><24580we O+MMMMMMMMMMMMMMMMab %&=;><24580we ",
|
||||||
|
" &=;><24580wer C#MMMMMMMMMMMMMMMMsd &=;><24580wer ",
|
||||||
|
" =;><24580werZ +$MMMMMMMMMMMMMMMMdg =;><24580werZ ",
|
||||||
|
" ;><24580werZi #%MMMMMMMMMMMMMMMMdF ;><24580werZi ",
|
||||||
|
" ><24580werZis $&MMMMMMMMMMMMMMMMgh ><24580werZis ",
|
||||||
|
" <24580werZisd %*MMMMMMMMMMMMMMMMhj <24580werZisd ",
|
||||||
|
" 24580werZisdg &=MMMMMMMMMMMMMMMMhk 24580werZisdg ",
|
||||||
|
" 4580werZisdgn *;MMMMMMMMMMMMMMMMjm 4580werZisdgn ",
|
||||||
|
" 580werZisdgnk =x><24580werZpsdgnkB 580werZisdgnk ",
|
||||||
|
" ;:,135790DryupbghjmV ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" "};
|
||||||
|
|
18
wmcdplay/XPM/bluered/led.xpm
Normal file
18
wmcdplay/XPM/bluered/led.xpm
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * led_xpm[] = {
|
||||||
|
"171 11 4 1",
|
||||||
|
" c #000000",
|
||||||
|
"0 c #00ff00 s led_color_high",
|
||||||
|
"1 c #009b00 s led_color_med",
|
||||||
|
"2 c #006200 s led_color_low",
|
||||||
|
" 00000 1 1 1 00000 00000 1 2 1 00000 00000 00000 00000 00000 1 1 1 1 1 1 00000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 00000 00000 ",
|
||||||
|
"0 212 0 2 0 1 212 0 1 212 0 0 0 0 212 1 0 212 1 2 121 0 0 212 0 0 212 0 2 1 2 0 0 212 0 0 1 2 1 2 1 2 1 2 1 0 212 0 0 212 1 ",
|
||||||
|
"01 10 10 10 10 01 10 01 01 20 01 10 01 10 10 01 10 01 01 10 01 10 2 2",
|
||||||
|
"01 10 10 10 10 01 10 01 01 20 01 10 01 10 10 01 10 01 01 10 01 01 1 1 ",
|
||||||
|
"0 0 1 0 1 121 0 2 121 0 0 212 0 0 212 1 0 212 1 2 0 0 212 0 0 212 0 1 2 1 212 0 0 212 0 0 212 2 1 212 2 1 212 2 1 212 2 1 212 2 0 212 0 0 212 1 ",
|
||||||
|
" 1 2 1 2 1 2 00000 00000 00000 00000 00000 1 1 1 00000 00000 2 1 1 00000 00000 00000 00000 00000 00000 00000 00000 00000 212 212 010",
|
||||||
|
"0 0 1 0 0 212 1 1 212 0 1 212 0 2 121 0 0 212 0 1 0 0 212 0 2 121 0 1 2 0 212 0 0 212 0 0 212 2 0 212 0 0 212 0 0 212 2 1 212 2 0 212 2 0 212 2 ",
|
||||||
|
"01 10 10 01 10 10 20 01 10 20 01 10 20 01 10 01 10 01 01 10 01 10 01 01 01 10 2 2",
|
||||||
|
"01 10 10 01 10 10 20 01 10 20 01 10 20 01 10 01 10 01 01 10 01 10 01 01 01 01 1 1 ",
|
||||||
|
"0 212 0 1 0 0 212 1 2 121 0 1 0 2 121 0 0 212 0 1 0 0 212 0 2 121 0 1 1 0 212 0 0 0 0 212 1 0 0 0 212 0 0 212 1 1 1 0 1 0 212 1 ",
|
||||||
|
" 00000 2 1 2 00000 00000 2 1 2 00000 00000 1 1 1 00000 00000 1 1 2 00000 2 1 2 00000 1 1 2 00000 00000 1 1 2 1 1 2 00000 "};
|
10
wmcdplay/XPM/bluered/ledsym.xpm
Normal file
10
wmcdplay/XPM/bluered/ledsym.xpm
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * ledsym_xpm[] = {
|
||||||
|
"35 5 2 1",
|
||||||
|
" c #000000",
|
||||||
|
"0 c #00ff00 s led_color_high",
|
||||||
|
"00000 00000 0 00 00 0 0 ",
|
||||||
|
"00000 00000 000 00 00 000 000 ",
|
||||||
|
"00000 00000 00000 00 00 00000 00000",
|
||||||
|
"00000 00000 000 00 00 ",
|
||||||
|
"00000 00000 0 00 00 00000 00000"};
|
16
wmcdplay/XPM/bluered/ledtsel.xpm
Normal file
16
wmcdplay/XPM/bluered/ledtsel.xpm
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * ledtsel_xpm[]={
|
||||||
|
"29 11 2 1",
|
||||||
|
" c #000000",
|
||||||
|
"0 c #00ff00 s led_color_high",
|
||||||
|
" 00 00 00 ",
|
||||||
|
" 0 0 0 0 0 0 0 0 ",
|
||||||
|
" 0 0 0 0 0 0 0 ",
|
||||||
|
" 0 0 0 0 0 0 000 ",
|
||||||
|
" 0 0 0 0 0 0 0 ",
|
||||||
|
" 000 000 000 000 ",
|
||||||
|
" 0 0 0 0 0 ",
|
||||||
|
" 0 0 0 0 000 ",
|
||||||
|
" 0 ",
|
||||||
|
" 0 0",
|
||||||
|
" 000 000 00 "};
|
32
wmcdplay/XPM/bluered/symbols.xpm
Normal file
32
wmcdplay/XPM/bluered/symbols.xpm
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * symbols_xpm[] = {
|
||||||
|
"131 11 18 1",
|
||||||
|
" c None",
|
||||||
|
". c #DF7DDF7DDF7D",
|
||||||
|
"X c #D75CD34CD75C",
|
||||||
|
"o c #CF3CCB2BCF3C",
|
||||||
|
"O c #BEFBBEFBBEFB",
|
||||||
|
"+ c #B6DAB2CAB6DA",
|
||||||
|
"@ c #AEBAAAAAAEBA",
|
||||||
|
"# c #9E799E799E79",
|
||||||
|
"$ c #965896589658",
|
||||||
|
"% c #8E388A288E38",
|
||||||
|
"& c #79E77DF779E7",
|
||||||
|
"* c #71C675D671C6",
|
||||||
|
"= c #69A669A669A6",
|
||||||
|
"- c #59655D755965",
|
||||||
|
"; c #514455555144",
|
||||||
|
": c #492449244924",
|
||||||
|
"> c #38E33CF338E3",
|
||||||
|
", c #30C234D330C2",
|
||||||
|
" ...XoO+@#$% ...XoO ...XoO+@#$% ...XoO+@#$% .. O+@#$% ...XoO $% ...XoO+@#$% ...XoO+@#$% O ...XoO+@#$%",
|
||||||
|
" ..XoO+@#$%& ..XoO+@ ..XoO+@#$%& ..XoO+@#$%& .. O+@#$%& ..XoO+@ %& ..XoO+@#$%& ..XoO+@#$%& O+@ ..XoO+@#$%&",
|
||||||
|
" .X &* .X @#$ .X @ &* .X @ &* .X O+@ &* .X @#$ &* .XoO+@#$%&* .XoO+@#$%&* O+@#$ .X &*",
|
||||||
|
" Xo *= Xo $%& Xo # *= Xo # *= XoO+@ *= Xo $%&*= XoO+@#$%&*= XoO+@#$%&*= O+@ $%& Xo *=",
|
||||||
|
" oO =- oO &*= oO $ =- oO $ =- oO+@ =- oO &*=- oO+@#$%&*=- oO+@#$%&*=- O+@ &*= oO =-",
|
||||||
|
" O+ -; O+ =-; O+ % -; O+ % -; O+@ -; O+ =-; O+@#$%&*=-; O+@#$%&*=-; O+@ =-; O+@ =-;",
|
||||||
|
" +@ ;: +@ =-; +@ & ;: +@ & ;: +@#$ ;: +@ =-;: +@#$%&*=-;: +@#$%&*=-;: +@ ;: @#$ =-; ",
|
||||||
|
" @# :> @# =-; @# * :> @# * :> @#$%& :> @# =-;:> @#$%&*=-;:> @#$%&*=-;:> @# :> $%& =-; ",
|
||||||
|
" #$ >, #$ =-; #$ = >, #$ = >, #$ &*= >, #$ =-; >, #$%&*=-;:>, #$%&*=-;:>, #$ >, &*=-; ",
|
||||||
|
" $%&*=-;:>,, $%&*=-; $%&*=-;:>,, $%&*=-;:>,, $% =-;:>,, $%&*=-; ,, $%&*=-;:>,, $%&*=-;:>,, $%&*=-;:>,, =-; ",
|
||||||
|
" %&*=-;:>,,, %&*=-; %&*=-;:>,,, %&*=-;:>,,, %& ;:>,,, %&*=-; ,, %&*=-;:>,,, %&*=-;:>,,, %&*=-;:>,,, ; "};
|
140
wmcdplay/XPM/grey.art
Normal file
140
wmcdplay/XPM/grey.art
Normal file
|
@ -0,0 +1,140 @@
|
||||||
|
int art_nbtns=5;
|
||||||
|
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 };
|
||||||
|
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 };
|
||||||
|
bool art_hidebtns=true;
|
||||||
|
bool art_showled[4]={ true , true , true , true };
|
||||||
|
int art_ledpos[4][2]={ 8 , 7 , 41 , 45 , 50 , 10 , 33 , 45 };
|
||||||
|
/* XPM */
|
||||||
|
static char * cdplayer_xpm[] = {
|
||||||
|
"64 64 5 1",
|
||||||
|
" c None",
|
||||||
|
"0 c #414141",
|
||||||
|
"1 c #000000",
|
||||||
|
"2 c #C7C3C7",
|
||||||
|
"3 c #9E9A9E",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" 000000000000000000000000000000000000000000000000000000 ",
|
||||||
|
" 011111111111111111111111111111111111111111111111111112 ",
|
||||||
|
" 011111111111111111111111111111111111111111111111111112 ",
|
||||||
|
" 011111111111111111111111111111111111111111111111111112 ",
|
||||||
|
" 011111111111111111111111111111111111111111111111111112 ",
|
||||||
|
" 011111111111111111111111111111111111111111111111111112 ",
|
||||||
|
" 011111111111111111111111111111111111111111111111111112 ",
|
||||||
|
" 011111111111111111111111111111111111111111111111111112 ",
|
||||||
|
" 011111111111111111111111111111111111111111111111111112 ",
|
||||||
|
" 011111111111111111111111111111111111111111111111111112 ",
|
||||||
|
" 011111111111111111111111111111111111111111111111111112 ",
|
||||||
|
" 011111111111111111111111111111111111111111111111111112 ",
|
||||||
|
" 011111111111111111111111111111111111111111111111111112 ",
|
||||||
|
" 011111111111111111111111111111111111111111111111111112 ",
|
||||||
|
" 222222222222222222222222222222222222222222222222222222 ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" 2222222222222222222222 222222222222222222222 222 ",
|
||||||
|
" 0333333333333333333330 233333333333333333330 2330 ",
|
||||||
|
" 033333333333333333330 23333333333333333330 23330 ",
|
||||||
|
" 03333333333333333330 2333333333333333330 233330 ",
|
||||||
|
" 0333333333333333330 233333333333333330 2333330 ",
|
||||||
|
" 22 033333333333333330 23333333333333330 23333330 ",
|
||||||
|
" 232 03333333333333330 2333333333333330 233333330 ",
|
||||||
|
" 2332 0333333333333330 233333333333330 2333333330 ",
|
||||||
|
" 23332 033333333333330 23333333333330 23333333330 ",
|
||||||
|
" 233332 03333333333330 2333333333330 233333333330 ",
|
||||||
|
" 2333332 0333333333330 233333333330 2333333333330 ",
|
||||||
|
" 23333332 033333333330 23333333330 23333333333330 ",
|
||||||
|
" 233333332 03333333330 2333333330 233333333333330 ",
|
||||||
|
" 2333333332 0333333330 233333330 2333333333333330 ",
|
||||||
|
" 23333333332 033333330 23333330 23333333333333330 ",
|
||||||
|
" 233333333332 03333330 2333330 23333333333333330 ",
|
||||||
|
" 2333333333332 0000000 000000 00000000000000000 ",
|
||||||
|
" 23333333333332 ",
|
||||||
|
" 233333333333330 ",
|
||||||
|
" 23333333333330 ",
|
||||||
|
" 2333333333330 2222220 0000000000000000000000000000 ",
|
||||||
|
" 233333333330 23333330 0111111111111111111111111112 ",
|
||||||
|
" 23333333330 233333330 0111111111111111111111111112 ",
|
||||||
|
" 2333333330 2333333330 0111111111111111111111111112 ",
|
||||||
|
" 233333330 23333333330 0111111111111111111111111112 ",
|
||||||
|
" 23333330 233333333330 0111111111111111111111111112 ",
|
||||||
|
" 2333330 2333333333330 0111111111111111111111111112 ",
|
||||||
|
" 233330 23333333333330 0111111111111111111111111112 ",
|
||||||
|
" 23330 233333333333330 0111111111111111111111111112 ",
|
||||||
|
" 2330 2333333333333330 0111111111111111111111111112 ",
|
||||||
|
" 230 23333333333333330 0111111111111111111111111112 ",
|
||||||
|
" 20 233333333333333330 0111111111111111111111111112 ",
|
||||||
|
" 2333333333333333330 0111111111111111111111111112 ",
|
||||||
|
" 23333333333333333330 0111111111111111111111111112 ",
|
||||||
|
" 233333333333333333330 0111111111111111111111111112 ",
|
||||||
|
" 2333333333333333333330 0111111111111111111111111112 ",
|
||||||
|
" 0000000000000000000000 2222222222222222222222222222 ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" "};
|
||||||
|
/* XPM */
|
||||||
|
static char * symbols_xpm[] = {
|
||||||
|
"65 5 2 1",
|
||||||
|
" c None",
|
||||||
|
"0 c #000000",
|
||||||
|
" 00000 0 00 00 00 00 0 0 0 0 0 00000",
|
||||||
|
" 00000 000 00 00 00 00 0 000 000 0 0 0 0 0 000 000 ",
|
||||||
|
" 00000 00000 00 00 00 00 00000 00000 00 00 00 00 00000 0 ",
|
||||||
|
" 00000 000 00 00 00 00 0 000 000 0 0 0 0 0 ",
|
||||||
|
" 00000 0 00 00 00 00 0 0 0 0 00000 00000"};
|
||||||
|
/* XPM */
|
||||||
|
static char * led_xpm[] = {
|
||||||
|
"171 11 4 1",
|
||||||
|
" c #000000",
|
||||||
|
"0 c #00ff00 s led_color_high",
|
||||||
|
"1 c #009b00 s led_color_med",
|
||||||
|
"2 c #006200 s led_color_low",
|
||||||
|
" 00000 1 1 1 00000 00000 1 2 1 00000 00000 00000 00000 00000 1 1 1 1 1 1 00000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 00000 00000 ",
|
||||||
|
"0 212 0 2 0 1 212 0 1 212 0 0 0 0 212 1 0 212 1 2 121 0 0 212 0 0 212 0 2 1 2 0 0 212 0 0 1 2 1 2 1 2 1 2 1 0 212 0 0 212 1 ",
|
||||||
|
"01 10 10 10 10 01 10 01 01 20 01 10 01 10 10 01 10 01 01 10 01 10 2 2",
|
||||||
|
"01 10 10 10 10 01 10 01 01 20 01 10 01 10 10 01 10 01 01 10 01 01 1 1 ",
|
||||||
|
"0 0 1 0 1 121 0 2 121 0 0 212 0 0 212 1 0 212 1 2 0 0 212 0 0 212 0 1 2 1 212 0 0 212 0 0 212 2 1 212 2 1 212 2 1 212 2 1 212 2 0 212 0 0 212 1 ",
|
||||||
|
" 1 2 1 2 1 2 00000 00000 00000 00000 00000 1 1 1 00000 00000 2 1 1 00000 00000 00000 00000 00000 00000 00000 00000 00000 212 212 010",
|
||||||
|
"0 0 1 0 0 212 1 1 212 0 1 212 0 2 121 0 0 212 0 1 0 0 212 0 2 121 0 1 2 0 212 0 0 212 0 0 212 2 0 212 0 0 212 0 0 212 2 1 212 2 0 212 2 0 212 2 ",
|
||||||
|
"01 10 10 01 10 10 20 01 10 20 01 10 20 01 10 01 10 01 01 10 01 10 01 01 01 10 2 2",
|
||||||
|
"01 10 10 01 10 10 20 01 10 20 01 10 20 01 10 01 10 01 01 10 01 10 01 01 01 01 1 1 ",
|
||||||
|
"0 212 0 1 0 0 212 1 2 121 0 1 0 2 121 0 0 212 0 1 0 0 212 0 2 121 0 1 1 0 212 0 0 0 0 212 1 0 0 0 212 0 0 212 1 1 1 0 1 0 212 1 ",
|
||||||
|
" 00000 2 1 2 00000 00000 2 1 2 00000 00000 1 1 1 00000 00000 1 1 2 00000 2 1 2 00000 1 1 2 00000 00000 1 1 2 1 1 2 00000 "};
|
||||||
|
/* XPM */
|
||||||
|
static char * ledsym_xpm[] = {
|
||||||
|
"35 5 2 1",
|
||||||
|
" c #000000",
|
||||||
|
"0 c #00ff00 s led_color_high",
|
||||||
|
"00000 00000 0 00 00 0 0 ",
|
||||||
|
"00000 00000 000 00 00 000 000 ",
|
||||||
|
"00000 00000 00000 00 00 00000 00000",
|
||||||
|
"00000 00000 000 00 00 ",
|
||||||
|
"00000 00000 0 00 00 00000 00000"};
|
||||||
|
/* XPM */
|
||||||
|
static char * ledtsel_xpm[]={
|
||||||
|
"29 11 2 1",
|
||||||
|
" c #000000",
|
||||||
|
"0 c #00ff00 s led_color_high",
|
||||||
|
" 00 00 00 ",
|
||||||
|
" 0 0 0 0 0 0 0 0 ",
|
||||||
|
" 0 0 0 0 0 0 0 ",
|
||||||
|
" 0 0 0 0 0 0 000 ",
|
||||||
|
" 0 0 0 0 0 0 0 ",
|
||||||
|
" 000 000 000 000 ",
|
||||||
|
" 0 0 0 0 0 ",
|
||||||
|
" 0 0 0 0 000 ",
|
||||||
|
" 0 ",
|
||||||
|
" 0 0",
|
||||||
|
" 000 000 00 "};
|
14
wmcdplay/XPM/grey/artwork.dat
Normal file
14
wmcdplay/XPM/grey/artwork.dat
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
int art_nbtns=5;
|
||||||
|
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 };
|
||||||
|
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 };
|
||||||
|
bool art_hidebtns=true;
|
||||||
|
bool art_showled[4]={ true , true , true , true };
|
||||||
|
int art_ledpos[4][2]={ 8 , 7 , 41 , 45 , 50 , 10 , 33 , 45 };
|
72
wmcdplay/XPM/grey/cdplayer.xpm
Normal file
72
wmcdplay/XPM/grey/cdplayer.xpm
Normal file
|
@ -0,0 +1,72 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * cdplayer_xpm[] = {
|
||||||
|
"64 64 5 1",
|
||||||
|
" c None",
|
||||||
|
"0 c #414141",
|
||||||
|
"1 c #000000",
|
||||||
|
"2 c #C7C3C7",
|
||||||
|
"3 c #9E9A9E",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" 000000000000000000000000000000000000000000000000000000 ",
|
||||||
|
" 011111111111111111111111111111111111111111111111111112 ",
|
||||||
|
" 011111111111111111111111111111111111111111111111111112 ",
|
||||||
|
" 011111111111111111111111111111111111111111111111111112 ",
|
||||||
|
" 011111111111111111111111111111111111111111111111111112 ",
|
||||||
|
" 011111111111111111111111111111111111111111111111111112 ",
|
||||||
|
" 011111111111111111111111111111111111111111111111111112 ",
|
||||||
|
" 011111111111111111111111111111111111111111111111111112 ",
|
||||||
|
" 011111111111111111111111111111111111111111111111111112 ",
|
||||||
|
" 011111111111111111111111111111111111111111111111111112 ",
|
||||||
|
" 011111111111111111111111111111111111111111111111111112 ",
|
||||||
|
" 011111111111111111111111111111111111111111111111111112 ",
|
||||||
|
" 011111111111111111111111111111111111111111111111111112 ",
|
||||||
|
" 011111111111111111111111111111111111111111111111111112 ",
|
||||||
|
" 222222222222222222222222222222222222222222222222222222 ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" 2222222222222222222222 222222222222222222222 222 ",
|
||||||
|
" 0333333333333333333330 233333333333333333330 2330 ",
|
||||||
|
" 033333333333333333330 23333333333333333330 23330 ",
|
||||||
|
" 03333333333333333330 2333333333333333330 233330 ",
|
||||||
|
" 0333333333333333330 233333333333333330 2333330 ",
|
||||||
|
" 22 033333333333333330 23333333333333330 23333330 ",
|
||||||
|
" 232 03333333333333330 2333333333333330 233333330 ",
|
||||||
|
" 2332 0333333333333330 233333333333330 2333333330 ",
|
||||||
|
" 23332 033333333333330 23333333333330 23333333330 ",
|
||||||
|
" 233332 03333333333330 2333333333330 233333333330 ",
|
||||||
|
" 2333332 0333333333330 233333333330 2333333333330 ",
|
||||||
|
" 23333332 033333333330 23333333330 23333333333330 ",
|
||||||
|
" 233333332 03333333330 2333333330 233333333333330 ",
|
||||||
|
" 2333333332 0333333330 233333330 2333333333333330 ",
|
||||||
|
" 23333333332 033333330 23333330 23333333333333330 ",
|
||||||
|
" 233333333332 03333330 2333330 23333333333333330 ",
|
||||||
|
" 2333333333332 0000000 000000 00000000000000000 ",
|
||||||
|
" 23333333333332 ",
|
||||||
|
" 233333333333330 ",
|
||||||
|
" 23333333333330 ",
|
||||||
|
" 2333333333330 2222220 0000000000000000000000000000 ",
|
||||||
|
" 233333333330 23333330 0111111111111111111111111112 ",
|
||||||
|
" 23333333330 233333330 0111111111111111111111111112 ",
|
||||||
|
" 2333333330 2333333330 0111111111111111111111111112 ",
|
||||||
|
" 233333330 23333333330 0111111111111111111111111112 ",
|
||||||
|
" 23333330 233333333330 0111111111111111111111111112 ",
|
||||||
|
" 2333330 2333333333330 0111111111111111111111111112 ",
|
||||||
|
" 233330 23333333333330 0111111111111111111111111112 ",
|
||||||
|
" 23330 233333333333330 0111111111111111111111111112 ",
|
||||||
|
" 2330 2333333333333330 0111111111111111111111111112 ",
|
||||||
|
" 230 23333333333333330 0111111111111111111111111112 ",
|
||||||
|
" 20 233333333333333330 0111111111111111111111111112 ",
|
||||||
|
" 2333333333333333330 0111111111111111111111111112 ",
|
||||||
|
" 23333333333333333330 0111111111111111111111111112 ",
|
||||||
|
" 233333333333333333330 0111111111111111111111111112 ",
|
||||||
|
" 2333333333333333333330 0111111111111111111111111112 ",
|
||||||
|
" 0000000000000000000000 2222222222222222222222222222 ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" "};
|
18
wmcdplay/XPM/grey/led.xpm
Normal file
18
wmcdplay/XPM/grey/led.xpm
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * led_xpm[] = {
|
||||||
|
"171 11 4 1",
|
||||||
|
" c #000000",
|
||||||
|
"0 c #00ff00 s led_color_high",
|
||||||
|
"1 c #009b00 s led_color_med",
|
||||||
|
"2 c #006200 s led_color_low",
|
||||||
|
" 00000 1 1 1 00000 00000 1 2 1 00000 00000 00000 00000 00000 1 1 1 1 1 1 00000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 00000 00000 ",
|
||||||
|
"0 212 0 2 0 1 212 0 1 212 0 0 0 0 212 1 0 212 1 2 121 0 0 212 0 0 212 0 2 1 2 0 0 212 0 0 1 2 1 2 1 2 1 2 1 0 212 0 0 212 1 ",
|
||||||
|
"01 10 10 10 10 01 10 01 01 20 01 10 01 10 10 01 10 01 01 10 01 10 2 2",
|
||||||
|
"01 10 10 10 10 01 10 01 01 20 01 10 01 10 10 01 10 01 01 10 01 01 1 1 ",
|
||||||
|
"0 0 1 0 1 121 0 2 121 0 0 212 0 0 212 1 0 212 1 2 0 0 212 0 0 212 0 1 2 1 212 0 0 212 0 0 212 2 1 212 2 1 212 2 1 212 2 1 212 2 0 212 0 0 212 1 ",
|
||||||
|
" 1 2 1 2 1 2 00000 00000 00000 00000 00000 1 1 1 00000 00000 2 1 1 00000 00000 00000 00000 00000 00000 00000 00000 00000 212 212 010",
|
||||||
|
"0 0 1 0 0 212 1 1 212 0 1 212 0 2 121 0 0 212 0 1 0 0 212 0 2 121 0 1 2 0 212 0 0 212 0 0 212 2 0 212 0 0 212 0 0 212 2 1 212 2 0 212 2 0 212 2 ",
|
||||||
|
"01 10 10 01 10 10 20 01 10 20 01 10 20 01 10 01 10 01 01 10 01 10 01 01 01 10 2 2",
|
||||||
|
"01 10 10 01 10 10 20 01 10 20 01 10 20 01 10 01 10 01 01 10 01 10 01 01 01 01 1 1 ",
|
||||||
|
"0 212 0 1 0 0 212 1 2 121 0 1 0 2 121 0 0 212 0 1 0 0 212 0 2 121 0 1 1 0 212 0 0 0 0 212 1 0 0 0 212 0 0 212 1 1 1 0 1 0 212 1 ",
|
||||||
|
" 00000 2 1 2 00000 00000 2 1 2 00000 00000 1 1 1 00000 00000 1 1 2 00000 2 1 2 00000 1 1 2 00000 00000 1 1 2 1 1 2 00000 "};
|
10
wmcdplay/XPM/grey/ledsym.xpm
Normal file
10
wmcdplay/XPM/grey/ledsym.xpm
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * ledsym_xpm[] = {
|
||||||
|
"35 5 2 1",
|
||||||
|
" c #000000",
|
||||||
|
"0 c #00ff00 s led_color_high",
|
||||||
|
"00000 00000 0 00 00 0 0 ",
|
||||||
|
"00000 00000 000 00 00 000 000 ",
|
||||||
|
"00000 00000 00000 00 00 00000 00000",
|
||||||
|
"00000 00000 000 00 00 ",
|
||||||
|
"00000 00000 0 00 00 00000 00000"};
|
16
wmcdplay/XPM/grey/ledtsel.xpm
Normal file
16
wmcdplay/XPM/grey/ledtsel.xpm
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * ledtsel_xpm[]={
|
||||||
|
"29 11 2 1",
|
||||||
|
" c #000000",
|
||||||
|
"0 c #00ff00 s led_color_high",
|
||||||
|
" 00 00 00 ",
|
||||||
|
" 0 0 0 0 0 0 0 0 ",
|
||||||
|
" 0 0 0 0 0 0 0 ",
|
||||||
|
" 0 0 0 0 0 0 000 ",
|
||||||
|
" 0 0 0 0 0 0 0 ",
|
||||||
|
" 000 000 000 000 ",
|
||||||
|
" 0 0 0 0 0 ",
|
||||||
|
" 0 0 0 0 000 ",
|
||||||
|
" 0 ",
|
||||||
|
" 0 0",
|
||||||
|
" 000 000 00 "};
|
10
wmcdplay/XPM/grey/symbols.xpm
Normal file
10
wmcdplay/XPM/grey/symbols.xpm
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * symbols_xpm[] = {
|
||||||
|
"65 5 2 1",
|
||||||
|
" c None",
|
||||||
|
"0 c #000000",
|
||||||
|
" 00000 0 00 00 00 00 0 0 0 0 0 00000",
|
||||||
|
" 00000 000 00 00 00 00 0 000 000 0 0 0 0 0 000 000 ",
|
||||||
|
" 00000 00000 00 00 00 00 00000 00000 00 00 00 00 00000 0 ",
|
||||||
|
" 00000 000 00 00 00 00 0 000 000 0 0 0 0 0 ",
|
||||||
|
" 00000 0 00 00 00 00 0 0 0 0 00000 00000"};
|
3
wmcdplay/XPM/makeall
Executable file
3
wmcdplay/XPM/makeall
Executable file
|
@ -0,0 +1,3 @@
|
||||||
|
#!/bin/sh
|
||||||
|
echo "Making all artwork files"
|
||||||
|
find ./* -type d -exec ./makeart {} \;
|
8
wmcdplay/XPM/makeart
Executable file
8
wmcdplay/XPM/makeart
Executable file
|
@ -0,0 +1,8 @@
|
||||||
|
#!/bin/sh
|
||||||
|
echo "Making artwork file $1.art from directory $1"
|
||||||
|
cat $1/artwork.dat >$1.art
|
||||||
|
cat $1/cdplayer.xpm >>$1.art
|
||||||
|
cat $1/symbols.xpm >>$1.art
|
||||||
|
cat $1/led.xpm >>$1.art
|
||||||
|
cat $1/ledsym.xpm >>$1.art
|
||||||
|
cat $1/ledtsel.xpm >>$1.art
|
145
wmcdplay/XPM/newstyle.art
Normal file
145
wmcdplay/XPM/newstyle.art
Normal file
|
@ -0,0 +1,145 @@
|
||||||
|
int art_nbtns=7;
|
||||||
|
int art_btns[]={ 29 , 50 , 4 , 18 , 47 , 46 , 47 , 46 , 58 , 18 , 58 ,
|
||||||
|
9 , 50 , 4 , 5 , 47 , 18 , 47 , 18 , 58 , 5 , 58 ,
|
||||||
|
50 , 50 , 4 , 46 , 47 , 59 , 47 , 59 , 58 , 46 , 58 ,
|
||||||
|
9 , 39 , 4 , 5 , 36 , 18 , 36 , 18 , 47 , 5 , 47 ,
|
||||||
|
50 , 39 , 4 , 46 , 36 , 59 , 36 , 59 , 47 , 46 , 47 ,
|
||||||
|
22 , 39 , 4 , 18 , 36 , 32 , 36 , 32 , 47 , 18 , 47 ,
|
||||||
|
36 , 39 , 4 , 32 , 36 , 46 , 36 , 46 , 47 , 32 , 47 };
|
||||||
|
int art_actions[]={ 0 , 2 , 3 , 4 , 0 , 0 ,
|
||||||
|
0 , 0 , 7 , 0 , 0 , 0 ,
|
||||||
|
0 , 0 , 8 , 0 , 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 };
|
||||||
|
bool art_hidebtns=false;
|
||||||
|
bool art_showled[4]={ true , true , true , true };
|
||||||
|
int art_ledpos[4][2]={ 11 , 7 , 26 , 19 , 44 , 7 , 42 , 20 };
|
||||||
|
/* XPM */
|
||||||
|
static char * cdplayer_xpm[] = {
|
||||||
|
"64 64 8 1",
|
||||||
|
" c None",
|
||||||
|
". c #000000",
|
||||||
|
"X c #282828 s color_back",
|
||||||
|
"o c #C7C3C7",
|
||||||
|
"O c #F7F3FF",
|
||||||
|
"+ c #86828E",
|
||||||
|
"@ c #AEAAAE",
|
||||||
|
"Q c #0000FF s led_color_high",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ........................................................ ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXQQQXXXXXQXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXQXXXQQXQXQXXQXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXQXXQXXXQQXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXQXXQXXXQQXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXQXXQXXXQXQXXQXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" oooooooooooooooooooooooooooooooooooooooooooooooooooooooo ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ........................................................ ",
|
||||||
|
" .OOOOOOOOOOOO+OOOOOOOOOOOOO+OOOOOOOOOOOOO+OOOOOOOOOOOO+o ",
|
||||||
|
" .O@@@@@@@@@@@.O@@@@@@@@@@@@.O@@@@@@@@@@@@.O@@@@@@@@@@@.o ",
|
||||||
|
" .O@@@@@@@@@@@.O@@@@@@@@@@@@.O@@@@@@@@@@@@.O@@@@@@@@@@@.o ",
|
||||||
|
" .O@@@@@@@@@@@.O@@@@@@@@@@@@.O@@@@@@@@@@@@.O@@@@@@@@@@@.o ",
|
||||||
|
" .O@@@@@@@@@@@.O@@@@@@@@@@@@.O@@@@@@@@@@@@.O@@@@@@@@@@@.o ",
|
||||||
|
" .O@@@@@@@@@@@.O@@@@@@@@@@@@.O@@@@@@@@@@@@.O@@@@@@@@@@@.o ",
|
||||||
|
" .O@@@@@@@@@@@.O@@@@@@@@@@@@.O@@@@@@@@@@@@.O@@@@@@@@@@@.o ",
|
||||||
|
" .O@@@@@@@@@@@.O@@@@@@@@@@@@.O@@@@@@@@@@@@.O@@@@@@@@@@@.o ",
|
||||||
|
" .O@@@@@@@@@@@.O@@@@@@@@@@@@.O@@@@@@@@@@@@.O@@@@@@@@@@@.o ",
|
||||||
|
" .O@@@@@@@@@@@.O@@@@@@@@@@@@.O@@@@@@@@@@@@.O@@@@@@@@@@@.o ",
|
||||||
|
" .+............+.............+.............+............o ",
|
||||||
|
" .OOOOOOOOOOOO+OOOOOOOOOOOOOOOOOOOOOOOOOOO+OOOOOOOOOOOO+o ",
|
||||||
|
" .O@@@@@@@@@@@.O@@@@@@@@@@@@@@@@@@@@@@@@@@.O@@@@@@@@@@@.o ",
|
||||||
|
" .O@@@@@@@@@@@.O@@@@@@@@@@@@@@@@@@@@@@@@@@.O@@@@@@@@@@@.o ",
|
||||||
|
" .O@@@@@@@@@@@.O@@@@@@@@@@@@@@@@@@@@@@@@@@.O@@@@@@@@@@@.o ",
|
||||||
|
" .O@@@@@@@@@@@.O@@@@@@@@@@@@@@@@@@@@@@@@@@.O@@@@@@@@@@@.o ",
|
||||||
|
" .O@@@@@@@@@@@.O@@@@@@@@@@@@@@@@@@@@@@@@@@.O@@@@@@@@@@@.o ",
|
||||||
|
" .O@@@@@@@@@@@.O@@@@@@@@@@@@@@@@@@@@@@@@@@.O@@@@@@@@@@@.o ",
|
||||||
|
" .O@@@@@@@@@@@.O@@@@@@@@@@@@@@@@@@@@@@@@@@.O@@@@@@@@@@@.o ",
|
||||||
|
" .O@@@@@@@@@@@.O@@@@@@@@@@@@@@@@@@@@@@@@@@.O@@@@@@@@@@@.o ",
|
||||||
|
" .O@@@@@@@@@@@.O@@@@@@@@@@@@@@@@@@@@@@@@@@.O@@@@@@@@@@@.o ",
|
||||||
|
" .+............+...........................+............o ",
|
||||||
|
" oooooooooooooooooooooooooooooooooooooooooooooooooooooooo ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" "};
|
||||||
|
/* XPM */
|
||||||
|
static char * symbols_xpm[] = {
|
||||||
|
"65 5 2 1",
|
||||||
|
" c None",
|
||||||
|
"0 c #000000",
|
||||||
|
" 00000 0 00 00 00 00 0 0 0 0 0 0 0 0 0 00000",
|
||||||
|
" 00000 000 00 00 00 00 0 000 000 0 0000 0000 000 000 ",
|
||||||
|
" 00000 00000 00 00 00 00 00000 00000 00000 00000 00000 0 ",
|
||||||
|
" 00000 000 00 00 00 00 0 000 000 0 0000 0000 ",
|
||||||
|
" 00000 0 00 00 00 00 0 0 0 0 0 0 0 0 00000 00000"};
|
||||||
|
/* XPM */
|
||||||
|
static char * led_xpm[] = {
|
||||||
|
"128 9 3 1",
|
||||||
|
" c #282828 s color_back",
|
||||||
|
"1 c #006200 s led_color_low",
|
||||||
|
"0 c #00ff00 s led_color_high",
|
||||||
|
"10001 1111 10001 10001 11111 10001 10001 10001 10001 10001 111 10001 10001 10001 10001 10001 10001 111 10001 10001 ",
|
||||||
|
"0 1 0 1 1 0 1 1 0 1 1 0 0 1 0 0 1 1 0 1 1 1 1 0 0 1 0 0 1 0 1 1 1 1 0 0 0 1 0 1 0 1 0 1 0 0 1 0 0 1 1 1 1 1 0 1 0 0 1 1 ",
|
||||||
|
"0 1 0 1 1 0 1 1 0 1 1 0 0 1 0 0 1 1 0 1 1 1 1 0 0 1 0 0 1 0 1 1 1 1 0 0 0 1 0 1 0 1 0 1 0 0 1 0 0 1 1 1 1 1 0 1 0 0 1 1 0 1 1",
|
||||||
|
"0 0 1 0 1 0 1 0 0 0 0 1 0 1 1 0 0 0 0 0 1 1 1 1 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 1 ",
|
||||||
|
"11111 1111 10001 10001 10001 10001 10001 1 11 10001 10001 111 1111 10001 111 11111 11111 11111 10001 10001 10001 11 11 00",
|
||||||
|
"0 0 1 0 0 1 1 0 1 0 1 0 0 0 1 0 0 0 1 0 1 1 1 1 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 1 0 1 ",
|
||||||
|
"0 1 0 1 1 0 0 1 1 1 1 0 1 1 0 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 1 1 1 1 0 0 0 1 0 1 0 1 0 1 0 0 1 0 0 1 1 1 1 1 0 1 1 0 1 1 0 1 1",
|
||||||
|
"0 1 0 1 1 0 0 1 1 1 1 0 1 1 0 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 1 1 1 1 0 0 0 1 0 1 0 1 0 1 0 0 1 0 0 1 1 1 1 1 0 1 1 0 1 1 ",
|
||||||
|
"10001 1111 10001 10001 1111 10001 10001 1111 10001 10001 111 10001 11111 111 11111 10001 10001 111 1111 10001 "};
|
||||||
|
/* XPM */
|
||||||
|
static char * ledsym_xpm[] = {
|
||||||
|
"59 9 3 1",
|
||||||
|
" c #282828 s color_back",
|
||||||
|
"0 c #00ff00 s led_color_high",
|
||||||
|
"1 c #006200 s color_back",
|
||||||
|
"0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 0 0 1 1 0 1 1 1 1 0 1 1",
|
||||||
|
" ",
|
||||||
|
"0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 1 0 0 0 1 1 0 0 0 1",
|
||||||
|
" ",
|
||||||
|
"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
|
||||||
|
" ",
|
||||||
|
"0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 1 1 1 1 1 1 1 1 1 1",
|
||||||
|
" ",
|
||||||
|
"0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0"};
|
||||||
|
/* XPM */
|
||||||
|
static char * ledtsel_xpm[] = {
|
||||||
|
"69 7 2 1",
|
||||||
|
" c #282828 s color_back",
|
||||||
|
"0 c #00ff00 s led_color_high",
|
||||||
|
" ",
|
||||||
|
" 0 0 0 0 ",
|
||||||
|
" 0 0 0 0000000 0 0000000 0 0 0 ",
|
||||||
|
" 0000000 0 0000000 0 0 0 0 0 00000 00000 ",
|
||||||
|
" 0 0 0 0 0 0 0 0 ",
|
||||||
|
" 0000 0000 0 ",
|
||||||
|
" "};
|
18
wmcdplay/XPM/newstyle/artwork.dat
Normal file
18
wmcdplay/XPM/newstyle/artwork.dat
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
int art_nbtns=7;
|
||||||
|
int art_btns[]={ 29 , 50 , 4 , 18 , 47 , 46 , 47 , 46 , 58 , 18 , 58 ,
|
||||||
|
9 , 50 , 4 , 5 , 47 , 18 , 47 , 18 , 58 , 5 , 58 ,
|
||||||
|
50 , 50 , 4 , 46 , 47 , 59 , 47 , 59 , 58 , 46 , 58 ,
|
||||||
|
9 , 39 , 4 , 5 , 36 , 18 , 36 , 18 , 47 , 5 , 47 ,
|
||||||
|
50 , 39 , 4 , 46 , 36 , 59 , 36 , 59 , 47 , 46 , 47 ,
|
||||||
|
22 , 39 , 4 , 18 , 36 , 32 , 36 , 32 , 47 , 18 , 47 ,
|
||||||
|
36 , 39 , 4 , 32 , 36 , 46 , 36 , 46 , 47 , 32 , 47 };
|
||||||
|
int art_actions[]={ 0 , 2 , 3 , 4 , 0 , 0 ,
|
||||||
|
0 , 0 , 7 , 0 , 0 , 0 ,
|
||||||
|
0 , 0 , 8 , 0 , 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 };
|
||||||
|
bool art_hidebtns=false;
|
||||||
|
bool art_showled[4]={ true , true , true , true };
|
||||||
|
int art_ledpos[4][2]={ 11 , 7 , 26 , 19 , 44 , 7 , 42 , 20 };
|
75
wmcdplay/XPM/newstyle/cdplayer.xpm
Normal file
75
wmcdplay/XPM/newstyle/cdplayer.xpm
Normal file
|
@ -0,0 +1,75 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * cdplayer_xpm[] = {
|
||||||
|
"64 64 8 1",
|
||||||
|
" c None",
|
||||||
|
". c #000000",
|
||||||
|
"X c #282828 s color_back",
|
||||||
|
"o c #C7C3C7",
|
||||||
|
"O c #F7F3FF",
|
||||||
|
"+ c #86828E",
|
||||||
|
"@ c #AEAAAE",
|
||||||
|
"Q c #0000FF s led_color_high",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ........................................................ ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXQQQXXXXXQXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXQXXXQQXQXQXXQXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXQXXQXXXQQXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXQXXQXXXQQXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXQXXQXXXQXQXXQXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" oooooooooooooooooooooooooooooooooooooooooooooooooooooooo ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ........................................................ ",
|
||||||
|
" .OOOOOOOOOOOO+OOOOOOOOOOOOO+OOOOOOOOOOOOO+OOOOOOOOOOOO+o ",
|
||||||
|
" .O@@@@@@@@@@@.O@@@@@@@@@@@@.O@@@@@@@@@@@@.O@@@@@@@@@@@.o ",
|
||||||
|
" .O@@@@@@@@@@@.O@@@@@@@@@@@@.O@@@@@@@@@@@@.O@@@@@@@@@@@.o ",
|
||||||
|
" .O@@@@@@@@@@@.O@@@@@@@@@@@@.O@@@@@@@@@@@@.O@@@@@@@@@@@.o ",
|
||||||
|
" .O@@@@@@@@@@@.O@@@@@@@@@@@@.O@@@@@@@@@@@@.O@@@@@@@@@@@.o ",
|
||||||
|
" .O@@@@@@@@@@@.O@@@@@@@@@@@@.O@@@@@@@@@@@@.O@@@@@@@@@@@.o ",
|
||||||
|
" .O@@@@@@@@@@@.O@@@@@@@@@@@@.O@@@@@@@@@@@@.O@@@@@@@@@@@.o ",
|
||||||
|
" .O@@@@@@@@@@@.O@@@@@@@@@@@@.O@@@@@@@@@@@@.O@@@@@@@@@@@.o ",
|
||||||
|
" .O@@@@@@@@@@@.O@@@@@@@@@@@@.O@@@@@@@@@@@@.O@@@@@@@@@@@.o ",
|
||||||
|
" .O@@@@@@@@@@@.O@@@@@@@@@@@@.O@@@@@@@@@@@@.O@@@@@@@@@@@.o ",
|
||||||
|
" .+............+.............+.............+............o ",
|
||||||
|
" .OOOOOOOOOOOO+OOOOOOOOOOOOOOOOOOOOOOOOOOO+OOOOOOOOOOOO+o ",
|
||||||
|
" .O@@@@@@@@@@@.O@@@@@@@@@@@@@@@@@@@@@@@@@@.O@@@@@@@@@@@.o ",
|
||||||
|
" .O@@@@@@@@@@@.O@@@@@@@@@@@@@@@@@@@@@@@@@@.O@@@@@@@@@@@.o ",
|
||||||
|
" .O@@@@@@@@@@@.O@@@@@@@@@@@@@@@@@@@@@@@@@@.O@@@@@@@@@@@.o ",
|
||||||
|
" .O@@@@@@@@@@@.O@@@@@@@@@@@@@@@@@@@@@@@@@@.O@@@@@@@@@@@.o ",
|
||||||
|
" .O@@@@@@@@@@@.O@@@@@@@@@@@@@@@@@@@@@@@@@@.O@@@@@@@@@@@.o ",
|
||||||
|
" .O@@@@@@@@@@@.O@@@@@@@@@@@@@@@@@@@@@@@@@@.O@@@@@@@@@@@.o ",
|
||||||
|
" .O@@@@@@@@@@@.O@@@@@@@@@@@@@@@@@@@@@@@@@@.O@@@@@@@@@@@.o ",
|
||||||
|
" .O@@@@@@@@@@@.O@@@@@@@@@@@@@@@@@@@@@@@@@@.O@@@@@@@@@@@.o ",
|
||||||
|
" .O@@@@@@@@@@@.O@@@@@@@@@@@@@@@@@@@@@@@@@@.O@@@@@@@@@@@.o ",
|
||||||
|
" .+............+...........................+............o ",
|
||||||
|
" oooooooooooooooooooooooooooooooooooooooooooooooooooooooo ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" "};
|
15
wmcdplay/XPM/newstyle/led.xpm
Normal file
15
wmcdplay/XPM/newstyle/led.xpm
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * led_xpm[] = {
|
||||||
|
"128 9 3 1",
|
||||||
|
" c #282828 s color_back",
|
||||||
|
"1 c #006200 s led_color_low",
|
||||||
|
"0 c #00ff00 s led_color_high",
|
||||||
|
"10001 1111 10001 10001 11111 10001 10001 10001 10001 10001 111 10001 10001 10001 10001 10001 10001 111 10001 10001 ",
|
||||||
|
"0 1 0 1 1 0 1 1 0 1 1 0 0 1 0 0 1 1 0 1 1 1 1 0 0 1 0 0 1 0 1 1 1 1 0 0 0 1 0 1 0 1 0 1 0 0 1 0 0 1 1 1 1 1 0 1 0 0 1 1 ",
|
||||||
|
"0 1 0 1 1 0 1 1 0 1 1 0 0 1 0 0 1 1 0 1 1 1 1 0 0 1 0 0 1 0 1 1 1 1 0 0 0 1 0 1 0 1 0 1 0 0 1 0 0 1 1 1 1 1 0 1 0 0 1 1 0 1 1",
|
||||||
|
"0 0 1 0 1 0 1 0 0 0 0 1 0 1 1 0 0 0 0 0 1 1 1 1 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 1 ",
|
||||||
|
"11111 1111 10001 10001 10001 10001 10001 1 11 10001 10001 111 1111 10001 111 11111 11111 11111 10001 10001 10001 11 11 00",
|
||||||
|
"0 0 1 0 0 1 1 0 1 0 1 0 0 0 1 0 0 0 1 0 1 1 1 1 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 1 0 1 ",
|
||||||
|
"0 1 0 1 1 0 0 1 1 1 1 0 1 1 0 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 1 1 1 1 0 0 0 1 0 1 0 1 0 1 0 0 1 0 0 1 1 1 1 1 0 1 1 0 1 1 0 1 1",
|
||||||
|
"0 1 0 1 1 0 0 1 1 1 1 0 1 1 0 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 1 1 1 1 0 0 0 1 0 1 0 1 0 1 0 0 1 0 0 1 1 1 1 1 0 1 1 0 1 1 ",
|
||||||
|
"10001 1111 10001 10001 1111 10001 10001 1111 10001 10001 111 10001 11111 111 11111 10001 10001 111 1111 10001 "};
|
15
wmcdplay/XPM/newstyle/ledsym.xpm
Normal file
15
wmcdplay/XPM/newstyle/ledsym.xpm
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * ledsym_xpm[] = {
|
||||||
|
"59 9 3 1",
|
||||||
|
" c #282828 s color_back",
|
||||||
|
"0 c #00ff00 s led_color_high",
|
||||||
|
"1 c #006200 s color_back",
|
||||||
|
"0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 0 0 1 1 0 1 1 1 1 0 1 1",
|
||||||
|
" ",
|
||||||
|
"0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 1 0 0 0 1 1 0 0 0 1",
|
||||||
|
" ",
|
||||||
|
"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
|
||||||
|
" ",
|
||||||
|
"0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 1 1 1 1 1 1 1 1 1 1",
|
||||||
|
" ",
|
||||||
|
"0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0"};
|
12
wmcdplay/XPM/newstyle/ledtsel.xpm
Normal file
12
wmcdplay/XPM/newstyle/ledtsel.xpm
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * ledtsel_xpm[] = {
|
||||||
|
"69 7 2 1",
|
||||||
|
" c #282828 s color_back",
|
||||||
|
"0 c #00ff00 s led_color_high",
|
||||||
|
" ",
|
||||||
|
" 0 0 0 0 ",
|
||||||
|
" 0 0 0 0000000 0 0000000 0 0 0 ",
|
||||||
|
" 0000000 0 0000000 0 0 0 0 0 00000 00000 ",
|
||||||
|
" 0 0 0 0 0 0 0 0 ",
|
||||||
|
" 0000 0000 0 ",
|
||||||
|
" "};
|
10
wmcdplay/XPM/newstyle/symbols.xpm
Normal file
10
wmcdplay/XPM/newstyle/symbols.xpm
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * symbols_xpm[] = {
|
||||||
|
"65 5 2 1",
|
||||||
|
" c None",
|
||||||
|
"0 c #000000",
|
||||||
|
" 00000 0 00 00 00 00 0 0 0 0 0 0 0 0 0 00000",
|
||||||
|
" 00000 000 00 00 00 00 0 000 000 0 0000 0000 000 000 ",
|
||||||
|
" 00000 00000 00 00 00 00 00000 00000 00000 00000 00000 0 ",
|
||||||
|
" 00000 000 00 00 00 00 0 000 000 0 0000 0000 ",
|
||||||
|
" 00000 0 00 00 00 00 0 0 0 0 0 0 0 0 00000 00000"};
|
1
wmcdplay/XPM/standard.art
Symbolic link
1
wmcdplay/XPM/standard.art
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
newstyle.art
|
121
wmcdplay/XPM/tile.xpm
Normal file
121
wmcdplay/XPM/tile.xpm
Normal file
|
@ -0,0 +1,121 @@
|
||||||
|
/* XPM */
|
||||||
|
static char *tile_xpm[] = {
|
||||||
|
"64 64 54 1",
|
||||||
|
" c #F3CEF3CEF3CE",
|
||||||
|
". c #000000000000",
|
||||||
|
"X c #514461856185",
|
||||||
|
"o c #A289A289B2CA",
|
||||||
|
"O c #A289A289A289",
|
||||||
|
"+ c #A2899248B2CA",
|
||||||
|
"@ c #9248A289A289",
|
||||||
|
"# c #A2899248A289",
|
||||||
|
"$ c #92489248A289",
|
||||||
|
"% c #924892489248",
|
||||||
|
"& c #92488207A289",
|
||||||
|
"* c #820792489248",
|
||||||
|
"= c #924882079248",
|
||||||
|
"- c #820782079248",
|
||||||
|
"; c #820782078207",
|
||||||
|
": c #820771C69248",
|
||||||
|
"> c #618551446185",
|
||||||
|
", c #9248A289B2CA",
|
||||||
|
"< c #92489248B2CA",
|
||||||
|
"1 c #82079248A289",
|
||||||
|
"2 c #82078207A289",
|
||||||
|
"3 c #71C682079248",
|
||||||
|
"4 c #71C682078207",
|
||||||
|
"5 c #514451446185",
|
||||||
|
"6 c #514451445144",
|
||||||
|
"7 c #820771C68207",
|
||||||
|
"8 c #410351445144",
|
||||||
|
"9 c #514441035144",
|
||||||
|
"0 c #71C671C69248",
|
||||||
|
"q c #71C671C68207",
|
||||||
|
"w c #71C671C671C6",
|
||||||
|
"e c #410341035144",
|
||||||
|
"r c #71C661858207",
|
||||||
|
"t c #618571C68207",
|
||||||
|
"y c #410351444103",
|
||||||
|
"u c #410341034103",
|
||||||
|
"i c #618571C671C6",
|
||||||
|
"p c #410330C24103",
|
||||||
|
"a c #30C241034103",
|
||||||
|
"s c #71C6618571C6",
|
||||||
|
"d c #6185618571C6",
|
||||||
|
"f c #618561858207",
|
||||||
|
"g c #30C230C230C2",
|
||||||
|
"h c #618561856185",
|
||||||
|
"j c #30C230C24103",
|
||||||
|
"k c #5144618571C6",
|
||||||
|
"l c #30C2410330C2",
|
||||||
|
"z c #6185514471C6",
|
||||||
|
"x c #208130C230C2",
|
||||||
|
"c c #30C2208130C2",
|
||||||
|
"v c #5144514471C6",
|
||||||
|
"b c #2081208130C2",
|
||||||
|
"n c #208120812081",
|
||||||
|
"m c #410330C25144",
|
||||||
|
" .",
|
||||||
|
" X.",
|
||||||
|
" oOoO+O+O+O+@#$+@#$#$#$$$#$$%&%&%&%&*&*&*=-=*=-=-=--;---;:;:;>.",
|
||||||
|
" oo@o,o@o@o@+@+@<@$@$@$@$@$1$$$*$*$*&*&*2*&*2*-*-*-----3-3-4-X.",
|
||||||
|
" oO+OoO#O+@#@#@#$#@#$#%#$$%$%$%&%&*=%&*=*=*=-=-=--;-;-;:;:;:;5.",
|
||||||
|
" ,ooo@+@+@+@+@<@#@<@$$$$$$$$$*$1$*&*&*&*&*2*---*-----3---4:4:6.",
|
||||||
|
" +O+O+O+@#$#@#$#$#$$%$$$%&%&%&%&*=*&*=-=*=---=--;---;:;:4:;:45.",
|
||||||
|
" @o@o@o@+@+@<@$@$@$$$@$1$1$*$*$*&*&*2*=*2*-*-*-----4-3-4:4-4:6.",
|
||||||
|
" +O#O+@#@#@#$#$#$#%#%$%&%$%&%&*=*&*=*=*=-=-=--;-;-;:;:;:;:4745.",
|
||||||
|
" @+@+@+@+@<@#@$@$$$$$$$$$*$*$*&*&*&*&*2*---*-----3---4:4:4:4:8.",
|
||||||
|
" #O+@#$#@#$#$#$$%$$$%&%&%&%&*=*&*=-=-=---=--;:;-;:;:4:4:474:49.",
|
||||||
|
" @o@<@+@<@$@$@$$$$$1$1$*$*$*&*&*2*=*2*-*-*-----4-4-4:4:4:4:408.",
|
||||||
|
" +@#@#@#$#$#$$%#%$%&%$%&%&*=*&*=*=*=-=-=--;-;-;:;:;:;:474747q9.",
|
||||||
|
" @+@+@<@$$$@$$$$$1$$$*&*$*&*&*&*&*2*---------3-3-4:4:4:4:404q8.",
|
||||||
|
" #$#@#$#$#$$%$$$%&%&%&%&*=-&*=-=-=---=--;:;:;:;:4:4:474:47q7q9.",
|
||||||
|
" @#@<@$@$@$$$$$*$1$*$*$*&*&*2*-*2*-*-*-3---4-4-4:4:4:4:404q4q8.",
|
||||||
|
" #@#$#$#$$%$%$%&%$%&%&*=*=*=-=*=-=;=--;-;-;:;:47;:474747q7q7q9.",
|
||||||
|
" @<@$$$@$$$$$1$$$*&*&*&*&*&*=*2*---------4-3-4:4:4:4:404qq04q8.",
|
||||||
|
" #$#$#$$%$%$%&%&%&%&*=-&*=-=-=------;:;:;:;:4:4:47q747qqq7qqq9.",
|
||||||
|
" @$@$@$$$$$*$1$*$*$*&*&*2*-*-*---*-3-3-4-4-4:4:4:4:404q4q4qqq8.",
|
||||||
|
" #$#$$%$%$%&%&%&%&*=*=*=-=-=-=;=--;:;-;:;:474:474747q7q7qqwqw9.",
|
||||||
|
" $$@$$$$$*$$$*&*&*&*&*2*=*2*---------4-3-4:4:4:4:404qqq4qqqqqe.",
|
||||||
|
" #$$%$%$%&%&*&%&*=-&*=-=-=------;:;:;:;:4:4:47q7q7qqq7qqwrqqw9.",
|
||||||
|
" @$$$$$*$1$*&*$*2*&*2*-*-*-----3-3-4-4-4:4:404:404q4q4qqqqqtqy.",
|
||||||
|
" $%$%$%&%&%=%&*=*=*=-=-=--;=--;:;-;:;:474:474747q7q7qqwqwqwrwe.",
|
||||||
|
" $$$$*$1$*&*&*&*&*2*--2*-----3---4:3-4:4:4:4:404qqqqqqqqqtqtqu.",
|
||||||
|
" &%$%&%&*&*&*=-=*=-=-=--;---;:;:;:;:4:4:47q7q7qqq7qqwrqrwrwrip.",
|
||||||
|
" $$*$*$*&*&*2*&*2*-*-*-----3-3-4-4-4:4:404q404q4q4qtqqqiqtqiru.",
|
||||||
|
" $%&%&*=%&*=*=*=-=-=--;-;-;:;-;:;:474:47q747q7q7qqwqwqwrwrirwu.",
|
||||||
|
" *$1$*&*&*&*&*2*---*-----3---4:4:4:4:4:4:404qqqqqqqqqtqtqirira.",
|
||||||
|
" &%&*=*&*=-=*=-=-=--;---;:;:;:;:4:4:47q7q7qqqqqqwrqrwrwriririp.",
|
||||||
|
" *$*&*&*2*&*2*-*-*-----3-3-4-4-4:4:404q4q4qqq4qtqtqiqiqiriqira.",
|
||||||
|
" &*=*&*=*=*=-=-=--;-;-;:;:;:;:474:47q7q7q7q7qqwrwqwrwrirwrisip.",
|
||||||
|
" *&*&*&*&*2*---*-----3---4:4:4:4:404:404qqqqqqqqqtqtqiriririra.",
|
||||||
|
" =*&*=-=*=---=--;---;:;:4:;:474:47q7q7qqqqqqwrwrwrwriririsdrdp.",
|
||||||
|
" *&*2*=*2*-*-*-----4-3-4:4-4:4:404q4q4qqqqqtqtqiqiqiriqifirifa.",
|
||||||
|
" &*=*=*=-=-=--;-;-;:;:;:;:474747q7q7qqq7qqwrwqwrwrirwrisisisdp.",
|
||||||
|
" *&*&*2*---*-----3-3-4:4:4:4:404qq04qqqqqtqqqirtqiririririfida.",
|
||||||
|
" =-=-=---=--;:;-;:;:4:4:474:47q7q7qqqqqqwrwrwrwriririsdrdsdddp.",
|
||||||
|
" *=*2*-*-*-----4-4-4:4:4:4:404q4q4qqqqqtqtqiqiqiriqifififidida.",
|
||||||
|
" =*=-=-=--;-;-;:;:4:;:474747q7q7qqwqwqwrwqwrwrirwrisdsisdsdsdp.",
|
||||||
|
" *2*---------4-3-4:4:4:4:404qq04qqqqqtqqqiririririririfidddddg.",
|
||||||
|
" =---=--;:;:;:;:4:4:474:47q7q7qqqqqqwrwrwrwriririsdsdsddddddhj.",
|
||||||
|
" *---*-3---4-4-4:4:4:4:404q4q4qqqqqtqtqiqiqiririfififidddidkdl.",
|
||||||
|
" =;=--;:;-;:;:474:474747q7q7qqwqwqwrwrwrwrirwrisdsdsdsdsddhzhj.",
|
||||||
|
" --------4-3-4:4:4:4:404qq04qqqqqtqqqiririririfirifidddddddddx.",
|
||||||
|
" ---;:;:;:;:4:4:47q747qqq7qqwqqqwrwrirwriririsdsdsddddddhzhzhc.",
|
||||||
|
" --3-3-4-4-4:4:4:4:404q4q4qqqqqtqtqiriqiririfififidddddkdkdXdx.",
|
||||||
|
" -;:;-;:;:474:474747q7q7qqwqwqwrwrwrwrisisisdsdsdddsddhzhdhzhg.",
|
||||||
|
" ----4-3-4:4:4:4:404qqq4qqqqqtqtqiriririrififdfidddddkdddkzkdx.",
|
||||||
|
" :;:;:;:4:4:47q7q7qqq7qqwrqqwrwriririririsdsdsddddddhzhzhzhzXc.",
|
||||||
|
" 3-4-4-4:4:404:404q4q4qqqqqtqtqiriqiririfidididddddkdkdXdXdXzx.",
|
||||||
|
" -;:;:474:47q747q7q7qqwqwqwrwrirwrisisisdsdsddddddhzhdhzhzXzhc.",
|
||||||
|
" 4:4-4:4:4:4:404qqqqqqqqqtqtqiriririrififdfidddddkdddkzkdXzXzx.",
|
||||||
|
" :;:4:4:47q7q7qqq7qqwrqrwrwriririsirisdsdsddddddhzhzhzhzXzXzXc.",
|
||||||
|
" 4-4:4:404q404qqq4qtqqqiqtqiriqiririfidididddddkdkdXdXdXzXzXvx.",
|
||||||
|
" :474:47q7q7q7q7qqwrwqwrwrirwrisisisdsdsddddddhzhzhzhzXzhzX>5c.",
|
||||||
|
" 4:4:4:4:404qqqqqqqqqtqtqiririririfiddfidddddkdddXzkdXzXzXvXzx.",
|
||||||
|
" :4:47q7q7qqqqqqwrwrwrwriririsdrisdddsddddddhzhzXzhzXzXzX>5>5c.",
|
||||||
|
" 4:404q4q4qqqqqtqtqiqiqiriqiririfidididddddkdkdXzXdXzXzXvXvXvx.",
|
||||||
|
" :47q7q7q7q7qqwrwqwrwrirwrisisisdsdsddhdddhzhzhzhzXzXzX>5>5>5b.",
|
||||||
|
" 404:404qqqqqqqqqiqtqiririririfidddidddddkdkdXzkzXzXzXvXv5vX5n.",
|
||||||
|
" >65656569698989y9e9u9ueumueupupapaplpgjgjgjgcgcgcgcxcbcncnbnb.",
|
||||||
|
" ..............................................................."};
|
173
wmcdplay/XPM/wmcd.art
Normal file
173
wmcdplay/XPM/wmcd.art
Normal file
|
@ -0,0 +1,173 @@
|
||||||
|
int art_nbtns=7;
|
||||||
|
int art_btns[]={ 5 , 54 , 4 , 5 , 54 , 12 , 54 , 12 , 59 , 5 , 59 ,
|
||||||
|
13 , 54 , 4 , 13 , 54 , 20 , 54 , 20 , 59 , 13 , 59 ,
|
||||||
|
21 , 54 , 4 , 21 , 54 , 28 , 54 , 28 , 59 , 21 , 59 ,
|
||||||
|
29 , 54 , 4 , 29 , 54 , 36 , 54 , 36 , 59 , 29 , 59 ,
|
||||||
|
37 , 54 , 4 , 37 , 54 , 44 , 54 , 44 , 59 , 37 , 59 ,
|
||||||
|
45 , 54 , 4 , 45 , 54 , 52 , 54 , 52 , 59 , 45 , 59 ,
|
||||||
|
53 , 54 , 4 , 53 , 54 , 60 , 54 , 60 , 59 , 53 , 59 };
|
||||||
|
int art_actions[]={ 0 , 2 , 3 , 4 , 0 , 0 ,
|
||||||
|
0 , 0 , 7 , 0 , 0 , 0 ,
|
||||||
|
0 , 0 , 8 , 0 , 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 };
|
||||||
|
bool art_hidebtns=false;
|
||||||
|
bool art_showled[4]={ true , true , true , true };
|
||||||
|
int art_ledpos[4][2]={ 8 , 37 , 28 , 14 , 50 , 40 , 20 , 14 };
|
||||||
|
/* XPM */
|
||||||
|
static char * cdplayer_xpm[] = {
|
||||||
|
"64 64 6 1",
|
||||||
|
" c None",
|
||||||
|
". c #410341034103",
|
||||||
|
"X c #000000000000",
|
||||||
|
"o c #C71BC30BC71B",
|
||||||
|
"O c #618561856185",
|
||||||
|
"+ c #B6DAB2CAB6DA",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ............................ ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" oooooooooooooooooooooooooooo ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO ",
|
||||||
|
" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
|
||||||
|
" OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO ",
|
||||||
|
" OXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+ ",
|
||||||
|
" OXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+ ",
|
||||||
|
" OXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+ ",
|
||||||
|
" OXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+ ",
|
||||||
|
" OXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+ ",
|
||||||
|
" OXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+ ",
|
||||||
|
" OXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+ ",
|
||||||
|
" OXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+ ",
|
||||||
|
" OXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+ ",
|
||||||
|
" OXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+ ",
|
||||||
|
" OXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+ ",
|
||||||
|
" OXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+ ",
|
||||||
|
" OXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+ ",
|
||||||
|
" ++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
|
||||||
|
" OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO ",
|
||||||
|
" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" "};
|
||||||
|
|
||||||
|
/* XPM */
|
||||||
|
static char * symbols_xpm[] = {
|
||||||
|
"87 7 26 1",
|
||||||
|
" c None",
|
||||||
|
". c #CF3CCF3CCF3C",
|
||||||
|
"X c #E79DE38DE79D",
|
||||||
|
"o c #E79DE79DE79D",
|
||||||
|
"O c #CF3CCB2BCF3C",
|
||||||
|
"+ c #B6DAB6DAB6DA",
|
||||||
|
"@ c #C71BC71BC71B",
|
||||||
|
"# c #DF7DDB6CDF7D",
|
||||||
|
"$ c #D75CD34CD75C",
|
||||||
|
"% c #BEFBBAEABEFB",
|
||||||
|
"& c #A699A289A699",
|
||||||
|
"* c #EFBEEFBEEFBE",
|
||||||
|
"= c #9E799E799E79",
|
||||||
|
"- c #AEBAAAAAAEBA",
|
||||||
|
"; c #71C675D671C6",
|
||||||
|
": c #965896589658",
|
||||||
|
"> c #79E77DF779E7",
|
||||||
|
", c #69A669A669A6",
|
||||||
|
"< c #49244D344924",
|
||||||
|
"1 c #8E388A288E38",
|
||||||
|
"2 c #492449244924",
|
||||||
|
"3 c #59655D755965",
|
||||||
|
"4 c #69A66DB669A6",
|
||||||
|
"5 c #38E33CF338E3",
|
||||||
|
"6 c #514455555144",
|
||||||
|
"7 c #8E388E388E38",
|
||||||
|
" .XoooO+ .@+ .XO#XO+ .XO#XO+ .@+ .@+ .@+ .@+ .@+ .XoooO+",
|
||||||
|
" $oooo%& $X#O+ $o%#o%& $o%#o%& $@OX*O& $X#OX@& .@+.@+ .@+.@+ .oo%+ +$XoO&=",
|
||||||
|
" %%---;; %$O##O+ %%;-%;; %%;-%;; %.O*X&; %$O#X+; .oOOoO& $X%XX%+ .oo#%%+ :>>,<<>",
|
||||||
|
" %%---;; %%-11== %%;-%;; %%;-%;; %+-%-;; %%-1-=; +%=1%=; %+;%+;= +=;234= :>2<> ",
|
||||||
|
" %%---;; %=3553> %%;-%;; %%;-%;; %:36;4; %=35;>; :>33>34 =;<;;<> %%---11 .XX#OO+",
|
||||||
|
" =>222<4 =;53> =><,><4 =><,><4 =73;634 =;53;74 :7>:7> :7>:7> ++---== ++---==",
|
||||||
|
" :;2223> :7> :;3,;3> :;3,;3> :7> :7> :7> :7> :;2223> :;2223>"};
|
||||||
|
|
||||||
|
/* XPM */
|
||||||
|
static char * led_xpm[] = {
|
||||||
|
"171 11 4 1",
|
||||||
|
" c #000000",
|
||||||
|
"0 c #00ff00 s led_color_high",
|
||||||
|
"1 c #009b00 s led_color_med",
|
||||||
|
"2 c #006200 s led_color_low",
|
||||||
|
" 00000 1 1 1 00000 00000 1 2 1 00000 00000 00000 00000 00000 1 1 1 1 1 1 00000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 00000 00000 ",
|
||||||
|
"0 212 0 2 0 1 212 0 1 212 0 0 0 0 212 1 0 212 1 2 121 0 0 212 0 0 212 0 2 1 2 0 0 212 0 0 1 2 1 2 1 2 1 2 1 0 212 0 0 212 1 ",
|
||||||
|
"01 10 10 10 10 01 10 01 01 20 01 10 01 10 10 01 10 01 01 10 01 10 2 2",
|
||||||
|
"01 10 10 10 10 01 10 01 01 20 01 10 01 10 10 01 10 01 01 10 01 01 1 1 ",
|
||||||
|
"0 0 1 0 1 121 0 2 121 0 0 212 0 0 212 1 0 212 1 2 0 0 212 0 0 212 0 1 2 1 212 0 0 212 0 0 212 2 1 212 2 1 212 2 1 212 2 1 212 2 0 212 0 0 212 1 ",
|
||||||
|
" 1 2 1 2 1 2 00000 00000 00000 00000 00000 1 1 1 00000 00000 2 1 1 00000 00000 00000 00000 00000 00000 00000 00000 00000 212 212 010",
|
||||||
|
"0 0 1 0 0 212 1 1 212 0 1 212 0 2 121 0 0 212 0 1 0 0 212 0 2 121 0 1 2 0 212 0 0 212 0 0 212 2 0 212 0 0 212 0 0 212 2 1 212 2 0 212 2 0 212 2 ",
|
||||||
|
"01 10 10 01 10 10 20 01 10 20 01 10 20 01 10 01 10 01 01 10 01 10 01 01 01 10 2 2",
|
||||||
|
"01 10 10 01 10 10 20 01 10 20 01 10 20 01 10 01 10 01 01 10 01 10 01 01 01 01 1 1 ",
|
||||||
|
"0 212 0 1 0 0 212 1 2 121 0 1 0 2 121 0 0 212 0 1 0 0 212 0 2 121 0 1 1 0 212 0 0 0 0 212 1 0 0 0 212 0 0 212 1 1 1 0 1 0 212 1 ",
|
||||||
|
" 00000 2 1 2 00000 00000 2 1 2 00000 00000 1 1 1 00000 00000 1 1 2 00000 2 1 2 00000 1 1 2 00000 00000 1 1 2 1 1 2 00000 "};
|
||||||
|
/* XPM */
|
||||||
|
static char * ledsym_xpm[] = {
|
||||||
|
"35 5 2 1",
|
||||||
|
" c #000000",
|
||||||
|
"0 c #00ff00 s led_color_high",
|
||||||
|
"00000 00000 0 00 00 0 0 ",
|
||||||
|
"00000 00000 000 00 00 000 000 ",
|
||||||
|
"00000 00000 00000 00 00 00000 00000",
|
||||||
|
"00000 00000 000 00 00 ",
|
||||||
|
"00000 00000 0 00 00 00000 00000"};
|
||||||
|
/* XPM */
|
||||||
|
static char * ledtsel_xpm[]={
|
||||||
|
"29 11 2 1",
|
||||||
|
" c #000000",
|
||||||
|
"0 c #00ff00 s led_color_high",
|
||||||
|
" 00 00 00 ",
|
||||||
|
" 0 0 0 0 0 0 0 0 ",
|
||||||
|
" 0 0 0 0 0 0 0 ",
|
||||||
|
" 0 0 0 0 0 0 000 ",
|
||||||
|
" 0 0 0 0 0 0 0 ",
|
||||||
|
" 000 000 000 000 ",
|
||||||
|
" 0 0 0 0 0 ",
|
||||||
|
" 0 0 0 0 000 ",
|
||||||
|
" 0 ",
|
||||||
|
" 0 0",
|
||||||
|
" 000 000 00 "};
|
18
wmcdplay/XPM/wmcd/artwork.dat
Normal file
18
wmcdplay/XPM/wmcd/artwork.dat
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
int art_nbtns=7;
|
||||||
|
int art_btns[]={ 5 , 54 , 4 , 5 , 54 , 12 , 54 , 12 , 59 , 5 , 59 ,
|
||||||
|
13 , 54 , 4 , 13 , 54 , 20 , 54 , 20 , 59 , 13 , 59 ,
|
||||||
|
21 , 54 , 4 , 21 , 54 , 28 , 54 , 28 , 59 , 21 , 59 ,
|
||||||
|
29 , 54 , 4 , 29 , 54 , 36 , 54 , 36 , 59 , 29 , 59 ,
|
||||||
|
37 , 54 , 4 , 37 , 54 , 44 , 54 , 44 , 59 , 37 , 59 ,
|
||||||
|
45 , 54 , 4 , 45 , 54 , 52 , 54 , 52 , 59 , 45 , 59 ,
|
||||||
|
53 , 54 , 4 , 53 , 54 , 60 , 54 , 60 , 59 , 53 , 59 };
|
||||||
|
int art_actions[]={ 0 , 2 , 3 , 4 , 0 , 0 ,
|
||||||
|
0 , 0 , 7 , 0 , 0 , 0 ,
|
||||||
|
0 , 0 , 8 , 0 , 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 };
|
||||||
|
bool art_hidebtns=false;
|
||||||
|
bool art_showled[4]={ true , true , true , true };
|
||||||
|
int art_ledpos[4][2]={ 8 , 37 , 28 , 14 , 50 , 40 , 20 , 14 };
|
74
wmcdplay/XPM/wmcd/cdplayer.xpm
Normal file
74
wmcdplay/XPM/wmcd/cdplayer.xpm
Normal file
|
@ -0,0 +1,74 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * cdplayer_xpm[] = {
|
||||||
|
"64 64 6 1",
|
||||||
|
" c None",
|
||||||
|
". c #410341034103",
|
||||||
|
"X c #000000000000",
|
||||||
|
"o c #C71BC30BC71B",
|
||||||
|
"O c #618561856185",
|
||||||
|
"+ c #B6DAB2CAB6DA",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ............................ ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXXXXXXXXXXXXXXXXXo ",
|
||||||
|
" oooooooooooooooooooooooooooo ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO ",
|
||||||
|
" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
|
||||||
|
" OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO ",
|
||||||
|
" OXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+ ",
|
||||||
|
" OXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+ ",
|
||||||
|
" OXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+ ",
|
||||||
|
" OXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+ ",
|
||||||
|
" OXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+ ",
|
||||||
|
" OXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+ ",
|
||||||
|
" OXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+ ",
|
||||||
|
" OXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+ ",
|
||||||
|
" OXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+ ",
|
||||||
|
" OXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+ ",
|
||||||
|
" OXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+ ",
|
||||||
|
" OXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+ ",
|
||||||
|
" OXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+ ",
|
||||||
|
" ++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
|
||||||
|
" OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO ",
|
||||||
|
" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" "};
|
||||||
|
|
18
wmcdplay/XPM/wmcd/led.xpm
Normal file
18
wmcdplay/XPM/wmcd/led.xpm
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * led_xpm[] = {
|
||||||
|
"171 11 4 1",
|
||||||
|
" c #000000",
|
||||||
|
"0 c #00ff00 s led_color_high",
|
||||||
|
"1 c #009b00 s led_color_med",
|
||||||
|
"2 c #006200 s led_color_low",
|
||||||
|
" 00000 1 1 1 00000 00000 1 2 1 00000 00000 00000 00000 00000 1 1 1 1 1 1 00000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 00000 00000 ",
|
||||||
|
"0 212 0 2 0 1 212 0 1 212 0 0 0 0 212 1 0 212 1 2 121 0 0 212 0 0 212 0 2 1 2 0 0 212 0 0 1 2 1 2 1 2 1 2 1 0 212 0 0 212 1 ",
|
||||||
|
"01 10 10 10 10 01 10 01 01 20 01 10 01 10 10 01 10 01 01 10 01 10 2 2",
|
||||||
|
"01 10 10 10 10 01 10 01 01 20 01 10 01 10 10 01 10 01 01 10 01 01 1 1 ",
|
||||||
|
"0 0 1 0 1 121 0 2 121 0 0 212 0 0 212 1 0 212 1 2 0 0 212 0 0 212 0 1 2 1 212 0 0 212 0 0 212 2 1 212 2 1 212 2 1 212 2 1 212 2 0 212 0 0 212 1 ",
|
||||||
|
" 1 2 1 2 1 2 00000 00000 00000 00000 00000 1 1 1 00000 00000 2 1 1 00000 00000 00000 00000 00000 00000 00000 00000 00000 212 212 010",
|
||||||
|
"0 0 1 0 0 212 1 1 212 0 1 212 0 2 121 0 0 212 0 1 0 0 212 0 2 121 0 1 2 0 212 0 0 212 0 0 212 2 0 212 0 0 212 0 0 212 2 1 212 2 0 212 2 0 212 2 ",
|
||||||
|
"01 10 10 01 10 10 20 01 10 20 01 10 20 01 10 01 10 01 01 10 01 10 01 01 01 10 2 2",
|
||||||
|
"01 10 10 01 10 10 20 01 10 20 01 10 20 01 10 01 10 01 01 10 01 10 01 01 01 01 1 1 ",
|
||||||
|
"0 212 0 1 0 0 212 1 2 121 0 1 0 2 121 0 0 212 0 1 0 0 212 0 2 121 0 1 1 0 212 0 0 0 0 212 1 0 0 0 212 0 0 212 1 1 1 0 1 0 212 1 ",
|
||||||
|
" 00000 2 1 2 00000 00000 2 1 2 00000 00000 1 1 1 00000 00000 1 1 2 00000 2 1 2 00000 1 1 2 00000 00000 1 1 2 1 1 2 00000 "};
|
10
wmcdplay/XPM/wmcd/ledsym.xpm
Normal file
10
wmcdplay/XPM/wmcd/ledsym.xpm
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * ledsym_xpm[] = {
|
||||||
|
"35 5 2 1",
|
||||||
|
" c #000000",
|
||||||
|
"0 c #00ff00 s led_color_high",
|
||||||
|
"00000 00000 0 00 00 0 0 ",
|
||||||
|
"00000 00000 000 00 00 000 000 ",
|
||||||
|
"00000 00000 00000 00 00 00000 00000",
|
||||||
|
"00000 00000 000 00 00 ",
|
||||||
|
"00000 00000 0 00 00 00000 00000"};
|
16
wmcdplay/XPM/wmcd/ledtsel.xpm
Normal file
16
wmcdplay/XPM/wmcd/ledtsel.xpm
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * ledtsel_xpm[]={
|
||||||
|
"29 11 2 1",
|
||||||
|
" c #000000",
|
||||||
|
"0 c #00ff00 s led_color_high",
|
||||||
|
" 00 00 00 ",
|
||||||
|
" 0 0 0 0 0 0 0 0 ",
|
||||||
|
" 0 0 0 0 0 0 0 ",
|
||||||
|
" 0 0 0 0 0 0 000 ",
|
||||||
|
" 0 0 0 0 0 0 0 ",
|
||||||
|
" 000 000 000 000 ",
|
||||||
|
" 0 0 0 0 0 ",
|
||||||
|
" 0 0 0 0 000 ",
|
||||||
|
" 0 ",
|
||||||
|
" 0 0",
|
||||||
|
" 000 000 00 "};
|
37
wmcdplay/XPM/wmcd/symbols.xpm
Normal file
37
wmcdplay/XPM/wmcd/symbols.xpm
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * symbols_xpm[] = {
|
||||||
|
"87 7 26 1",
|
||||||
|
" c None",
|
||||||
|
". c #CF3CCF3CCF3C",
|
||||||
|
"X c #E79DE38DE79D",
|
||||||
|
"o c #E79DE79DE79D",
|
||||||
|
"O c #CF3CCB2BCF3C",
|
||||||
|
"+ c #B6DAB6DAB6DA",
|
||||||
|
"@ c #C71BC71BC71B",
|
||||||
|
"# c #DF7DDB6CDF7D",
|
||||||
|
"$ c #D75CD34CD75C",
|
||||||
|
"% c #BEFBBAEABEFB",
|
||||||
|
"& c #A699A289A699",
|
||||||
|
"* c #EFBEEFBEEFBE",
|
||||||
|
"= c #9E799E799E79",
|
||||||
|
"- c #AEBAAAAAAEBA",
|
||||||
|
"; c #71C675D671C6",
|
||||||
|
": c #965896589658",
|
||||||
|
"> c #79E77DF779E7",
|
||||||
|
", c #69A669A669A6",
|
||||||
|
"< c #49244D344924",
|
||||||
|
"1 c #8E388A288E38",
|
||||||
|
"2 c #492449244924",
|
||||||
|
"3 c #59655D755965",
|
||||||
|
"4 c #69A66DB669A6",
|
||||||
|
"5 c #38E33CF338E3",
|
||||||
|
"6 c #514455555144",
|
||||||
|
"7 c #8E388E388E38",
|
||||||
|
" .XoooO+ .@+ .XO#XO+ .XO#XO+ .@+ .@+ .@+ .@+ .@+ .XoooO+",
|
||||||
|
" $oooo%& $X#O+ $o%#o%& $o%#o%& $@OX*O& $X#OX@& .@+.@+ .@+.@+ .oo%+ +$XoO&=",
|
||||||
|
" %%---;; %$O##O+ %%;-%;; %%;-%;; %.O*X&; %$O#X+; .oOOoO& $X%XX%+ .oo#%%+ :>>,<<>",
|
||||||
|
" %%---;; %%-11== %%;-%;; %%;-%;; %+-%-;; %%-1-=; +%=1%=; %+;%+;= +=;234= :>2<> ",
|
||||||
|
" %%---;; %=3553> %%;-%;; %%;-%;; %:36;4; %=35;>; :>33>34 =;<;;<> %%---11 .XX#OO+",
|
||||||
|
" =>222<4 =;53> =><,><4 =><,><4 =73;634 =;53;74 :7>:7> :7>:7> ++---== ++---==",
|
||||||
|
" :;2223> :7> :;3,;3> :;3,;3> :7> :7> :7> :7> :;2223> :;2223>"};
|
||||||
|
|
425
wmcdplay/cdctl.h
Normal file
425
wmcdplay/cdctl.h
Normal file
|
@ -0,0 +1,425 @@
|
||||||
|
// cdctl.h - CDCtl class provides easy control of cd audio functions
|
||||||
|
// 05/09/98 Release 1.0 Beta1
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
// Although cdctl.h is an integral part of wmcdplay, it may also be distributed seperately.
|
||||||
|
|
||||||
|
// Change this define to alter the size of forward and backward skips (in frames)
|
||||||
|
// Yes, I know this should really be a method of CDCtl
|
||||||
|
#define _CDCTL_SKIP_SIZE 1125
|
||||||
|
|
||||||
|
// Try defining some of these. They may improve performance or reliability
|
||||||
|
// (or just plain make it work)
|
||||||
|
// #define _CDCTL_STOP_BEFORE_PLAY
|
||||||
|
// #define _CDCTL_START_BEFORE_PLAY
|
||||||
|
// #define _CDCTL_SOFT_STOP
|
||||||
|
|
||||||
|
// Define this if it stops after each track
|
||||||
|
#define _CDCTL_SENSITIVE_EOT
|
||||||
|
// If it still stops for a while between tracks, increase this (0-75 is a sensible range)
|
||||||
|
#define _CDCTL_SENSITIVITY 0
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <sys/ioctl.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <linux/cdrom.h>
|
||||||
|
|
||||||
|
// CD status values
|
||||||
|
#define ssData 0
|
||||||
|
#define ssStopped 1
|
||||||
|
#define ssPlaying 2
|
||||||
|
#define ssPaused 3
|
||||||
|
#define ssNoCD 4
|
||||||
|
#define ssTrayOpen 5
|
||||||
|
|
||||||
|
// Audio command values
|
||||||
|
#define acStop 0
|
||||||
|
#define acPlay 1
|
||||||
|
#define acPause 2
|
||||||
|
#define acResume 3
|
||||||
|
#define acPrev 4
|
||||||
|
#define acNext 5
|
||||||
|
#define acRewd 6
|
||||||
|
#define acFFwd 7
|
||||||
|
#define acEject 8
|
||||||
|
#define acClose 9
|
||||||
|
|
||||||
|
// Track selection values (what to do when I've played the requested track)
|
||||||
|
// Note: Track selection is not perfect - so use tsNone if you want to avoid trouble.
|
||||||
|
// Basically, if we receive a CDROM_AUDIO_COMPLETED status, then we have to decide what to do.
|
||||||
|
// If we think the last play command was ours (Next/Prev/FFwd/Rewd don't count), then we do something,
|
||||||
|
// depending on the current track selection mode.
|
||||||
|
// Failures: Sometimes we may think we sent the last play command when we did not (if we didn't see play stop in
|
||||||
|
// in between).
|
||||||
|
// If another application is polling the status, it may receive the CDROM_AUDIO_COMPLETED we are looking
|
||||||
|
// for, and we will not, so will think play was stopped manually.
|
||||||
|
// Similarly, we may read the CDROM_AUDIO_COMPLETED status when we don't want it, such that the other
|
||||||
|
// application never sees it.
|
||||||
|
// Verdict: Linux audio cdrom handling is broken.
|
||||||
|
// Update: New define _CDCTL_SENSITIVE_EOT may help in cases where CDROM_AUDIO_COMPLETED is not being returned
|
||||||
|
// correctly. It may, however, interfere with other running cd players.
|
||||||
|
|
||||||
|
// Update: I think this works like a dream now. Even with many cd players sharing a cdrom. Let me know if not!!
|
||||||
|
|
||||||
|
#define tsNone 0 // Just stop
|
||||||
|
#define tsRepeat 1 // Play it again
|
||||||
|
#define tsNext 2 // Play next track (stop at end of CD)
|
||||||
|
#define tsRepeatCD 3 // Play next track (start from first track if end is reached)
|
||||||
|
#define tsRandom 4 // Play a track at random
|
||||||
|
|
||||||
|
class CDCtl
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
CDCtl(char *dname){
|
||||||
|
device=(char *)malloc(sizeof(char)*(strlen(dname)+1));
|
||||||
|
strcpy(device,dname);
|
||||||
|
srand(getpid());
|
||||||
|
tracksel=tsRandom;
|
||||||
|
tskOurPlay=false;
|
||||||
|
|
||||||
|
if(cdfdopen=(cdfd=open(device,O_RDONLY | O_NONBLOCK))!=-1){
|
||||||
|
status_state=ssNoCD;
|
||||||
|
status_track=0;
|
||||||
|
status_pos=0;
|
||||||
|
cd_trklist=NULL;
|
||||||
|
doStatus();
|
||||||
|
readVolume();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
~CDCtl(){
|
||||||
|
if(cdfdopen){
|
||||||
|
close(cdfd);
|
||||||
|
if(device!=NULL)
|
||||||
|
free(device);
|
||||||
|
if(cd_trklist!=NULL)
|
||||||
|
free(cd_trklist);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
bool openOK(){
|
||||||
|
return cdfdopen;
|
||||||
|
}
|
||||||
|
void doAudioCommand(int cmd){
|
||||||
|
if(cdfdopen){
|
||||||
|
int newtrk=status_track;
|
||||||
|
switch(cmd){
|
||||||
|
case acStop:
|
||||||
|
|
||||||
|
#ifdef _CDCTL_SOFT_STOP
|
||||||
|
ioctl(cdfd,CDROMSTART);
|
||||||
|
#endif
|
||||||
|
#ifndef _CDCTL_SOFT_STOP
|
||||||
|
ioctl(cdfd,CDROMSTOP);
|
||||||
|
#endif
|
||||||
|
tskOurPlay=false;
|
||||||
|
|
||||||
|
break;
|
||||||
|
case acPlay:
|
||||||
|
status_state=ssPlaying;
|
||||||
|
select(status_track);
|
||||||
|
tskOurPlay=true;
|
||||||
|
break;
|
||||||
|
case acPause:
|
||||||
|
ioctl(cdfd,CDROMPAUSE);
|
||||||
|
break;
|
||||||
|
case acResume:
|
||||||
|
ioctl(cdfd,CDROMRESUME);
|
||||||
|
break;
|
||||||
|
case acPrev:
|
||||||
|
newtrk--;
|
||||||
|
if(newtrk<0)
|
||||||
|
newtrk=cd_tracks-1;
|
||||||
|
select(newtrk);
|
||||||
|
break;
|
||||||
|
case acNext:
|
||||||
|
newtrk++;
|
||||||
|
if(newtrk>cd_tracks-1)
|
||||||
|
newtrk=0;
|
||||||
|
select(newtrk);
|
||||||
|
break;
|
||||||
|
case acRewd:
|
||||||
|
if(status_pos>cd_trklist[status_track].track_start+_CDCTL_SKIP_SIZE){
|
||||||
|
status_pos-=_CDCTL_SKIP_SIZE;
|
||||||
|
play();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case acFFwd:
|
||||||
|
if(status_pos<cd_trklist[status_track].track_start+cd_trklist[status_track].track_len-_CDCTL_SKIP_SIZE){
|
||||||
|
status_pos+=_CDCTL_SKIP_SIZE;
|
||||||
|
play();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case acEject:
|
||||||
|
if(ioctl(cdfd,CDROMEJECT))
|
||||||
|
status_state=ssNoCD;
|
||||||
|
else
|
||||||
|
status_state=ssTrayOpen;
|
||||||
|
break;
|
||||||
|
case acClose:
|
||||||
|
ioctl(cdfd,CDROMCLOSETRAY);
|
||||||
|
status_state=ssNoCD;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
doStatus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void doStatus(){
|
||||||
|
if(cdfdopen){
|
||||||
|
struct cdrom_subchnl sc;
|
||||||
|
sc.cdsc_format=CDROM_MSF;
|
||||||
|
if(ioctl(cdfd, CDROMSUBCHNL, &sc)){
|
||||||
|
if(status_state!=ssNoCD)
|
||||||
|
status_state=ssTrayOpen;
|
||||||
|
status_track=0;
|
||||||
|
status_pos=0;
|
||||||
|
tskOurPlay=false;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
if(status_state==ssNoCD || status_state==ssTrayOpen)
|
||||||
|
readTOC();
|
||||||
|
int start,now,stop;
|
||||||
|
switch(sc.cdsc_audiostatus){
|
||||||
|
case CDROM_AUDIO_PLAY:
|
||||||
|
if(status_state==ssStopped)
|
||||||
|
tskOurPlay=false;
|
||||||
|
status_state=ssPlaying;
|
||||||
|
break;
|
||||||
|
case CDROM_AUDIO_PAUSED:
|
||||||
|
if(status_state==ssStopped)
|
||||||
|
tskOurPlay=false;
|
||||||
|
status_state=ssPaused;
|
||||||
|
break;
|
||||||
|
case CDROM_AUDIO_COMPLETED:
|
||||||
|
if(tskOurPlay){
|
||||||
|
status_state=ssPlaying;
|
||||||
|
selecttrack();
|
||||||
|
doStatus();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
status_state=ssStopped;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
|
||||||
|
#ifdef _CDCTL_SENSITIVE_EOT
|
||||||
|
if(tskOurPlay){
|
||||||
|
start = cd_trklist[status_track].track_start;
|
||||||
|
stop = start + cd_trklist[status_track].track_len - _CDCTL_SENSITIVITY;
|
||||||
|
now = ((sc.cdsc_absaddr.msf.minute) * 60 + sc.cdsc_absaddr.msf.second) * 75 + sc.cdsc_absaddr.msf.frame - CD_MSF_OFFSET;
|
||||||
|
if(now>0 && (now<start || now>=stop)){
|
||||||
|
status_state=ssPlaying;
|
||||||
|
selecttrack();
|
||||||
|
doStatus();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
status_state=ssStopped;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
#endif
|
||||||
|
|
||||||
|
status_state=ssStopped;
|
||||||
|
}
|
||||||
|
trackinfo(&sc);
|
||||||
|
if(cd_trklist[status_track].track_data)
|
||||||
|
status_state=ssData;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void setVolume(int l, int r){
|
||||||
|
if(cdfdopen){
|
||||||
|
struct cdrom_volctrl vol;
|
||||||
|
vol.channel0=l;
|
||||||
|
vol.channel1=r;
|
||||||
|
ioctl(cdfd,CDROMVOLCTRL,&vol);
|
||||||
|
readVolume();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void readVolume(){
|
||||||
|
if(cdfdopen){
|
||||||
|
struct cdrom_volctrl vol;
|
||||||
|
ioctl(cdfd,CDROMVOLREAD,&vol);
|
||||||
|
status_volumel=vol.channel0;
|
||||||
|
status_volumer=vol.channel1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
int getVolumeL(){
|
||||||
|
return status_volumel;
|
||||||
|
}
|
||||||
|
int getVolumeR(){
|
||||||
|
return status_volumer;
|
||||||
|
}
|
||||||
|
void setTrackSelection(int ts){
|
||||||
|
tracksel=ts;
|
||||||
|
}
|
||||||
|
int getTrackSelection(){
|
||||||
|
return tracksel;
|
||||||
|
}
|
||||||
|
char *getDevName(){
|
||||||
|
return device;
|
||||||
|
}
|
||||||
|
int getCDTracks(){
|
||||||
|
return cd_tracks;
|
||||||
|
}
|
||||||
|
int getCDLen(){
|
||||||
|
return cd_len;
|
||||||
|
}
|
||||||
|
int getTrackStart(int trk){
|
||||||
|
return cd_trklist[trk-1].track_start;
|
||||||
|
}
|
||||||
|
int getTrackLen(int trk){
|
||||||
|
return cd_trklist[trk-1].track_len;
|
||||||
|
}
|
||||||
|
bool getTrackData(int trk){
|
||||||
|
return cd_trklist[trk-1].track_data;
|
||||||
|
}
|
||||||
|
int getStatusState(){
|
||||||
|
return status_state;
|
||||||
|
}
|
||||||
|
int getStatusTrack(){
|
||||||
|
return status_track+1;
|
||||||
|
}
|
||||||
|
int getStatusPosAbs(){
|
||||||
|
return status_pos-cd_trklist[0].track_start;
|
||||||
|
}
|
||||||
|
int getStatusPosRel(){
|
||||||
|
return status_pos-cd_trklist[status_track].track_start;
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
void readTOC(){
|
||||||
|
if(cd_trklist!=NULL)
|
||||||
|
free(cd_trklist);
|
||||||
|
struct cdrom_tochdr hdr;
|
||||||
|
ioctl(cdfd, CDROMREADTOCHDR, &hdr);
|
||||||
|
cd_tracks=hdr.cdth_trk1;
|
||||||
|
cd_trklist=(struct CDTrack *)malloc(cd_tracks*sizeof(struct CDTrack));
|
||||||
|
struct cdrom_tocentry te;
|
||||||
|
int prev_addr=0;
|
||||||
|
for(int i=0;i<=cd_tracks;i++){
|
||||||
|
if(i==cd_tracks)
|
||||||
|
te.cdte_track=CDROM_LEADOUT;
|
||||||
|
else
|
||||||
|
te.cdte_track=i+1;
|
||||||
|
te.cdte_format=CDROM_MSF; // I think it is ok to read this as LBA, but for a quiet life...
|
||||||
|
ioctl(cdfd, CDROMREADTOCENTRY, &te);
|
||||||
|
int this_addr=((te.cdte_addr.msf.minute * 60) + te.cdte_addr.msf.second) * 75 + te.cdte_addr.msf.frame - CD_MSF_OFFSET;
|
||||||
|
if(i>0)
|
||||||
|
cd_trklist[i-1].track_len = this_addr - prev_addr - 1;
|
||||||
|
prev_addr=this_addr;
|
||||||
|
if(i<cd_tracks){
|
||||||
|
cd_trklist[i].track_data = te.cdte_ctrl & CDROM_DATA_TRACK ? true : false;
|
||||||
|
cd_trklist[i].track_start = this_addr;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
cd_len = this_addr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void trackinfo(struct cdrom_subchnl *subchnl){
|
||||||
|
if(status_state==ssPlaying || status_state==ssPaused){
|
||||||
|
status_pos=((subchnl->cdsc_absaddr.msf.minute) * 60 + subchnl->cdsc_absaddr.msf.second) * 75 + subchnl->cdsc_absaddr.msf.frame - CD_MSF_OFFSET;
|
||||||
|
for(status_track=0;status_track<cd_tracks;status_track++){
|
||||||
|
if(status_pos<cd_trklist[status_track].track_start+cd_trklist[status_track].track_len)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void play(){
|
||||||
|
struct cdrom_msf pmsf;
|
||||||
|
int abs0=status_pos + CD_MSF_OFFSET;
|
||||||
|
int abs1=cd_trklist[status_track].track_start + cd_trklist[status_track].track_len - 1 + CD_MSF_OFFSET;
|
||||||
|
pmsf.cdmsf_min0=abs0/(75*60);
|
||||||
|
pmsf.cdmsf_min1=abs1/(75*60);
|
||||||
|
pmsf.cdmsf_sec0=(abs0%(75*60))/75;
|
||||||
|
pmsf.cdmsf_sec1=(abs1%(75*60))/75;
|
||||||
|
pmsf.cdmsf_frame0=abs0%75;
|
||||||
|
pmsf.cdmsf_frame1=abs1%75;
|
||||||
|
|
||||||
|
#ifdef _CDCTL_STOP_BEFORE_PLAY
|
||||||
|
ioctl(cdfd,CDROMSTOP);
|
||||||
|
#endif
|
||||||
|
#ifdef _CDCTL_START_BEFORE_PLAY
|
||||||
|
ioctl(cdfd,CDROMSTART);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
ioctl(cdfd,CDROMPLAYMSF,&pmsf);
|
||||||
|
}
|
||||||
|
void select(int trk){
|
||||||
|
status_track=trk;
|
||||||
|
status_pos=cd_trklist[status_track].track_start;
|
||||||
|
if(status_state==ssPlaying){
|
||||||
|
if(cd_trklist[status_track].track_data){
|
||||||
|
|
||||||
|
#ifdef _CDCTL_HARD_STOP
|
||||||
|
ioctl(cdfd,CDROMSTOP);
|
||||||
|
#endif
|
||||||
|
#ifndef _CDCTL_HARD_STOP
|
||||||
|
ioctl(cdfd,CDROMSTART);
|
||||||
|
#endif
|
||||||
|
tskOurPlay=false;
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
play();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void selecttrack(){
|
||||||
|
int newtrk=status_track;
|
||||||
|
do{
|
||||||
|
switch(tracksel){
|
||||||
|
case tsNone:
|
||||||
|
tskOurPlay=false;
|
||||||
|
return;
|
||||||
|
break;
|
||||||
|
case tsRepeat:
|
||||||
|
// do nothing
|
||||||
|
break;
|
||||||
|
case tsNext:
|
||||||
|
newtrk++;
|
||||||
|
if(newtrk>=cd_tracks){
|
||||||
|
tskOurPlay=false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case tsRepeatCD:
|
||||||
|
newtrk++;
|
||||||
|
if(newtrk>=cd_tracks)
|
||||||
|
newtrk=0;
|
||||||
|
break;
|
||||||
|
case tsRandom:
|
||||||
|
newtrk+=(int)((cd_tracks-1)*(float)rand()/RAND_MAX+1);
|
||||||
|
if(newtrk>=cd_tracks)
|
||||||
|
newtrk-=cd_tracks;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} while(cd_trklist[newtrk].track_data);
|
||||||
|
select(newtrk);
|
||||||
|
play();
|
||||||
|
}
|
||||||
|
int cdfd;
|
||||||
|
int cdfdopen;
|
||||||
|
char *device;
|
||||||
|
int tracksel;
|
||||||
|
bool tskOurPlay;
|
||||||
|
|
||||||
|
struct CDTrack{
|
||||||
|
int track_start;
|
||||||
|
int track_len;
|
||||||
|
bool track_data;
|
||||||
|
};
|
||||||
|
|
||||||
|
int cd_tracks;
|
||||||
|
int cd_len;
|
||||||
|
struct CDTrack *cd_trklist;
|
||||||
|
int status_state;
|
||||||
|
int status_track;
|
||||||
|
int status_pos;
|
||||||
|
int status_volumel;
|
||||||
|
int status_volumer;
|
||||||
|
};
|
818
wmcdplay/wmcdplay.cc
Normal file
818
wmcdplay/wmcdplay.cc
Normal file
|
@ -0,0 +1,818 @@
|
||||||
|
// wmcdplay - A cd player designed for WindowMaker
|
||||||
|
// 05/09/98 Release 1.0 Beta1
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
|
||||||
|
// Defines, includes and global variables
|
||||||
|
// --------------------------------------
|
||||||
|
|
||||||
|
// User defines - standard
|
||||||
|
#define WINDOWMAKER false
|
||||||
|
#define USESHAPE false
|
||||||
|
#define AFTERSTEP false
|
||||||
|
#define NORMSIZE 64
|
||||||
|
#define ASTEPSIZE 56
|
||||||
|
#define NAME "wmcdplay"
|
||||||
|
#define CLASS "WMCDPlay"
|
||||||
|
|
||||||
|
// User defines - custom
|
||||||
|
#define SYSARTDIR "/usr/X11R6/lib/X11/wmcdplay/"
|
||||||
|
#define CDDEV "/dev/cdrom"
|
||||||
|
#define BACKCOLOR "#282828"
|
||||||
|
#define LEDCOLOR "green"
|
||||||
|
#define POSRELABS 0 // 0=relative position, 1=absolute position
|
||||||
|
#define UINTERVAL_N 1 // 20ths of a second
|
||||||
|
#define UINTERVAL_E 20 // 20ths of a second
|
||||||
|
|
||||||
|
// Includes - standard
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
// Includes - custom
|
||||||
|
#include "cdctl.h"
|
||||||
|
|
||||||
|
// X-Windows includes - standard
|
||||||
|
#include <X11/X.h>
|
||||||
|
#include <X11/Xlib.h>
|
||||||
|
#include <X11/Xutil.h>
|
||||||
|
#include <X11/Xproto.h>
|
||||||
|
#include <X11/xpm.h>
|
||||||
|
#include <X11/extensions/shape.h>
|
||||||
|
|
||||||
|
// Pixmaps - standard
|
||||||
|
Pixmap pm_tile;
|
||||||
|
Pixmap pm_disp;
|
||||||
|
Pixmap pm_mask;
|
||||||
|
|
||||||
|
// Pixmaps - artwork
|
||||||
|
Pixmap pm_cd;
|
||||||
|
Pixmap pm_cdmask;
|
||||||
|
Pixmap pm_sym;
|
||||||
|
Pixmap pm_symmask;
|
||||||
|
Pixmap pm_led;
|
||||||
|
Pixmap pm_sled;
|
||||||
|
Pixmap pm_tled;
|
||||||
|
|
||||||
|
// Xpm images - standard
|
||||||
|
#include "XPM/tile.xpm"
|
||||||
|
|
||||||
|
// Xpm images - artwork
|
||||||
|
#include "XPM/standard.art"
|
||||||
|
|
||||||
|
// Variables for command-line arguments - standard
|
||||||
|
bool wmaker=WINDOWMAKER;
|
||||||
|
bool ushape=USESHAPE;
|
||||||
|
bool astep=AFTERSTEP;
|
||||||
|
char display[256]="";
|
||||||
|
char position[256]="";
|
||||||
|
int winsize;
|
||||||
|
|
||||||
|
// Variables for command-line arguments - custom
|
||||||
|
char cddev[256]=CDDEV;
|
||||||
|
char backcolor[256]=BACKCOLOR;
|
||||||
|
char ledcolor[256]=LEDCOLOR;
|
||||||
|
bool artwrk=false;
|
||||||
|
char artwrkf[256]="";
|
||||||
|
int tsel=1;
|
||||||
|
int vol=-1; // -1 means don't set volume
|
||||||
|
|
||||||
|
// X-Windows basics - standard
|
||||||
|
Atom _XA_GNUSTEP_WM_FUNC;
|
||||||
|
Atom deleteWin;
|
||||||
|
Display *d_display;
|
||||||
|
Window w_icon;
|
||||||
|
Window w_main;
|
||||||
|
Window w_root;
|
||||||
|
Window w_activewin;
|
||||||
|
|
||||||
|
// X-Windows basics - custom
|
||||||
|
GC gc_gc, gc_bitgc;
|
||||||
|
unsigned long color[4];
|
||||||
|
|
||||||
|
|
||||||
|
// Misc custom global variables
|
||||||
|
// ----------------------------
|
||||||
|
|
||||||
|
// For artwork loading
|
||||||
|
int **art_btnlist;
|
||||||
|
int *art_btnptr;
|
||||||
|
int *art_actptr;
|
||||||
|
int art_symsize[2];
|
||||||
|
int art_ledsize[6];
|
||||||
|
|
||||||
|
int mode=-1, track=-1, pos=-1;
|
||||||
|
int tdisplay=POSRELABS;
|
||||||
|
int ucount=0;
|
||||||
|
char trackstr[8]="";
|
||||||
|
char timestr[8]="";
|
||||||
|
char chrset[]="00112233445566778899 DDAATTNNOOCC--PPEE:;_";
|
||||||
|
|
||||||
|
CDCtl *cdctl;
|
||||||
|
|
||||||
|
|
||||||
|
// Procedures and functions
|
||||||
|
// ------------------------
|
||||||
|
|
||||||
|
// Procedures and functions - standard
|
||||||
|
void initXWin(int argc, char **argv);
|
||||||
|
void freeXWin();
|
||||||
|
void createWin(Window *win, int x, int y);
|
||||||
|
unsigned long getColor(char *colorname);
|
||||||
|
unsigned long mixColor(char *colorname1, int prop1, char *colorname2, int prop2);
|
||||||
|
|
||||||
|
// Procedures and functions - custom
|
||||||
|
void scanArgs(int argc, char **argv);
|
||||||
|
void checkStatus(bool forced);
|
||||||
|
void pressEvent(XButtonEvent *xev);
|
||||||
|
void repaint();
|
||||||
|
void update();
|
||||||
|
void drawText(int x, int y, char *text);
|
||||||
|
|
||||||
|
// Procedures and functions - artwork basics
|
||||||
|
bool readArtwork(char *artfilen);
|
||||||
|
char *readBlock(FILE *dfile);
|
||||||
|
int arrayItems(char *buf);
|
||||||
|
void readArrayInt(char *buf, int *array, int n);
|
||||||
|
void readArrayBool(char *buf, bool *array, int n);
|
||||||
|
|
||||||
|
// Procedures and functions - artwork specials
|
||||||
|
void createPixmap(char **data, char *buf, Pixmap *image, Pixmap *mask, int *width, int *height);
|
||||||
|
void setBtnList(int *bset);
|
||||||
|
bool inPolygon(int *points, int px, int py);
|
||||||
|
|
||||||
|
|
||||||
|
// Implementation
|
||||||
|
// --------------
|
||||||
|
|
||||||
|
int main(int argc, char **argv)
|
||||||
|
{
|
||||||
|
scanArgs(argc, argv);
|
||||||
|
initXWin(argc, argv);
|
||||||
|
|
||||||
|
color[0]=mixColor(ledcolor, 0, backcolor, 100);
|
||||||
|
color[1]=mixColor(ledcolor, 100, backcolor, 0);
|
||||||
|
color[2]=mixColor(ledcolor, 60, backcolor, 40);
|
||||||
|
color[3]=mixColor(ledcolor, 25, backcolor, 75);
|
||||||
|
|
||||||
|
if(artwrk)
|
||||||
|
artwrk=readArtwork(artwrkf);
|
||||||
|
if(!artwrk){
|
||||||
|
int w, h;
|
||||||
|
createPixmap(cdplayer_xpm, NULL, &pm_cd, &pm_cdmask, NULL, NULL);
|
||||||
|
createPixmap(symbols_xpm, NULL, &pm_sym, &pm_symmask, &w, &h);
|
||||||
|
art_symsize[0]=(w+1)/11-1;
|
||||||
|
art_symsize[1]=h;
|
||||||
|
createPixmap(led_xpm, NULL, &pm_led, NULL, &w, &h);
|
||||||
|
art_ledsize[0]=(w+1)/strlen(chrset)-1;
|
||||||
|
art_ledsize[1]=h;
|
||||||
|
createPixmap(ledsym_xpm, NULL, &pm_sled, NULL, &w, &h);
|
||||||
|
art_ledsize[2]=(w+1)/6-1;
|
||||||
|
art_ledsize[3]=h;
|
||||||
|
createPixmap(ledtsel_xpm, NULL, &pm_tled, NULL, &w, &h);
|
||||||
|
art_ledsize[4]=(w+1)/5-1;
|
||||||
|
art_ledsize[5]=h;
|
||||||
|
art_btnptr=art_btns;
|
||||||
|
art_actptr=art_actions;
|
||||||
|
}
|
||||||
|
setBtnList(art_btnptr);
|
||||||
|
createPixmap(tile_xpm, NULL, &pm_tile, NULL, NULL, NULL);
|
||||||
|
pm_disp = XCreatePixmap(d_display, w_root, 64, 64, DefaultDepth(d_display, DefaultScreen(d_display)));
|
||||||
|
pm_mask = XCreatePixmap(d_display, w_root, 64, 64, 1);
|
||||||
|
|
||||||
|
XGCValues gcv;
|
||||||
|
unsigned long gcm;
|
||||||
|
gcm=GCGraphicsExposures;
|
||||||
|
gcv.graphics_exposures=false;
|
||||||
|
gc_gc=XCreateGC(d_display, w_root, gcm, &gcv);
|
||||||
|
gc_bitgc=XCreateGC(d_display, pm_mask, gcm, &gcv);
|
||||||
|
|
||||||
|
cdctl=new CDCtl(cddev);
|
||||||
|
|
||||||
|
if(!cdctl->openOK())
|
||||||
|
fprintf(stderr, "%s : Unable to open cdrom device '%s'.\n", NAME, cddev);
|
||||||
|
else{
|
||||||
|
if(vol!=-1)
|
||||||
|
cdctl->setVolume(vol, vol);
|
||||||
|
int tsels[] = { tsNone, tsNext, tsRepeat, tsRepeatCD, tsRandom };
|
||||||
|
cdctl->setTrackSelection(tsels[tsel]);
|
||||||
|
|
||||||
|
checkStatus(true);
|
||||||
|
|
||||||
|
XEvent xev;
|
||||||
|
XSelectInput(d_display, w_activewin, ButtonPress | ExposureMask);
|
||||||
|
XMapWindow(d_display, w_main);
|
||||||
|
|
||||||
|
bool done=false;
|
||||||
|
while(!done){
|
||||||
|
while(XPending(d_display)){
|
||||||
|
XNextEvent(d_display, &xev);
|
||||||
|
switch(xev.type){
|
||||||
|
case Expose:
|
||||||
|
repaint();
|
||||||
|
break;
|
||||||
|
case ButtonPress:
|
||||||
|
pressEvent(&xev.xbutton);
|
||||||
|
break;
|
||||||
|
case ClientMessage:
|
||||||
|
if(xev.xclient.data.l[0]==deleteWin)
|
||||||
|
done=true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ucount++;
|
||||||
|
if(ucount>=((mode==ssNoCD || mode==ssTrayOpen) ? UINTERVAL_E : UINTERVAL_N))
|
||||||
|
checkStatus(false);
|
||||||
|
XFlush(d_display);
|
||||||
|
usleep(50000);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
XFreeGC(d_display, gc_gc);
|
||||||
|
XFreeGC(d_display, gc_bitgc);
|
||||||
|
XFreePixmap(d_display, pm_tile);
|
||||||
|
XFreePixmap(d_display, pm_disp);
|
||||||
|
XFreePixmap(d_display, pm_mask);
|
||||||
|
XFreePixmap(d_display, pm_cd);
|
||||||
|
XFreePixmap(d_display, pm_cdmask);
|
||||||
|
XFreePixmap(d_display, pm_sym);
|
||||||
|
XFreePixmap(d_display, pm_symmask);
|
||||||
|
XFreePixmap(d_display, pm_led);
|
||||||
|
XFreePixmap(d_display, pm_sled);
|
||||||
|
XFreePixmap(d_display, pm_tled);
|
||||||
|
freeXWin();
|
||||||
|
if(artwrk){
|
||||||
|
free(art_btnptr);
|
||||||
|
free(art_actptr);
|
||||||
|
}
|
||||||
|
free(art_btnlist);
|
||||||
|
delete cdctl;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void initXWin(int argc, char **argv){
|
||||||
|
winsize=astep ? ASTEPSIZE : NORMSIZE;
|
||||||
|
|
||||||
|
if((d_display=XOpenDisplay(display))==NULL){
|
||||||
|
fprintf(stderr,"%s : Unable to open X display '%s'.\n", NAME, XDisplayName(display));
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
_XA_GNUSTEP_WM_FUNC=XInternAtom(d_display, "_GNUSTEP_WM_FUNCTION", false);
|
||||||
|
deleteWin=XInternAtom(d_display, "WM_DELETE_WINDOW", false);
|
||||||
|
|
||||||
|
w_root=DefaultRootWindow(d_display);
|
||||||
|
|
||||||
|
XWMHints wmhints;
|
||||||
|
XSizeHints shints;
|
||||||
|
shints.x=0;
|
||||||
|
shints.y=0;
|
||||||
|
shints.flags=0;
|
||||||
|
bool pos=(XWMGeometry(d_display, DefaultScreen(d_display), position, NULL, 0, &shints, &shints.x, &shints.y,
|
||||||
|
&shints.width, &shints.height, &shints.win_gravity) & (XValue | YValue));
|
||||||
|
shints.min_width=winsize;
|
||||||
|
shints.min_height=winsize;
|
||||||
|
shints.max_width=winsize;
|
||||||
|
shints.max_height=winsize;
|
||||||
|
shints.base_width=winsize;
|
||||||
|
shints.base_height=winsize;
|
||||||
|
shints.flags=PMinSize | PMaxSize | PBaseSize;
|
||||||
|
|
||||||
|
createWin(&w_main, shints.x, shints.y);
|
||||||
|
|
||||||
|
if(wmaker || astep || pos)
|
||||||
|
shints.flags |= USPosition;
|
||||||
|
if(wmaker){
|
||||||
|
wmhints.initial_state=WithdrawnState;
|
||||||
|
wmhints.flags=WindowGroupHint | StateHint | IconWindowHint;
|
||||||
|
createWin(&w_icon, shints.x, shints.y);
|
||||||
|
w_activewin=w_icon;
|
||||||
|
wmhints.icon_window=w_icon;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
wmhints.initial_state=NormalState;
|
||||||
|
wmhints.flags=WindowGroupHint | StateHint;
|
||||||
|
w_activewin=w_main;
|
||||||
|
}
|
||||||
|
wmhints.window_group=w_main;
|
||||||
|
XSetWMHints(d_display, w_main, &wmhints);
|
||||||
|
XSetWMNormalHints(d_display, w_main, &shints);
|
||||||
|
XSetCommand(d_display, w_main, argv, argc);
|
||||||
|
XStoreName(d_display, w_main, NAME);
|
||||||
|
XSetIconName(d_display, w_main, NAME);
|
||||||
|
XSetWMProtocols(d_display, w_activewin, &deleteWin, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
void freeXWin(){
|
||||||
|
XDestroyWindow(d_display, w_main);
|
||||||
|
if(wmaker)
|
||||||
|
XDestroyWindow(d_display, w_icon);
|
||||||
|
XCloseDisplay(d_display);
|
||||||
|
}
|
||||||
|
|
||||||
|
void createWin(Window *win, int x, int y){
|
||||||
|
XClassHint classHint;
|
||||||
|
*win=XCreateSimpleWindow(d_display, w_root, x, y, winsize, winsize, 0, 0, 0);
|
||||||
|
classHint.res_name=NAME;
|
||||||
|
classHint.res_class=CLASS;
|
||||||
|
XSetClassHint(d_display, *win, &classHint);
|
||||||
|
}
|
||||||
|
|
||||||
|
unsigned long getColor(char *colorname){
|
||||||
|
XColor color;
|
||||||
|
XWindowAttributes winattr;
|
||||||
|
XGetWindowAttributes(d_display, w_root, &winattr);
|
||||||
|
color.pixel=0;
|
||||||
|
XParseColor(d_display, winattr.colormap, colorname, &color);
|
||||||
|
color.flags=DoRed | DoGreen | DoBlue;
|
||||||
|
XAllocColor(d_display, winattr.colormap, &color);
|
||||||
|
return color.pixel;
|
||||||
|
}
|
||||||
|
|
||||||
|
unsigned long mixColor(char *colorname1, int prop1, char *colorname2, int prop2){
|
||||||
|
XColor color, color1, color2;
|
||||||
|
XWindowAttributes winattr;
|
||||||
|
XGetWindowAttributes(d_display, w_root, &winattr);
|
||||||
|
XParseColor(d_display, winattr.colormap, colorname1, &color1);
|
||||||
|
XParseColor(d_display, winattr.colormap, colorname2, &color2);
|
||||||
|
color.pixel=0;
|
||||||
|
color.red=(color1.red*prop1+color2.red*prop2)/(prop1+prop2);
|
||||||
|
color.green=(color1.green*prop1+color2.green*prop2)/(prop1+prop2);
|
||||||
|
color.blue=(color1.blue*prop1+color2.blue*prop2)/(prop1+prop2);
|
||||||
|
color.flags=DoRed | DoGreen | DoBlue;
|
||||||
|
XAllocColor(d_display, winattr.colormap, &color);
|
||||||
|
return color.pixel;
|
||||||
|
}
|
||||||
|
|
||||||
|
void scanArgs(int argc, char **argv){
|
||||||
|
for(int i=1;i<argc;i++){
|
||||||
|
if(strcmp(argv[i], "-h")==0 || strcmp(argv[i], "-help")==0 || strcmp(argv[i], "--help")==0){
|
||||||
|
fprintf(stderr, "wmcdplay - A cd player designed for WindowMaker\n05/09/98 Release 1.0 Beta1\n");
|
||||||
|
fprintf(stderr, "Copyright (C) 1998 Sam Hawker <shawkie@geocities.com>\n");
|
||||||
|
fprintf(stderr, "This software comes with ABSOLUTELY NO WARRANTY\n");
|
||||||
|
fprintf(stderr, "This software is free software, and you are welcome to redistribute it\n");
|
||||||
|
fprintf(stderr, "under certain conditions\n");
|
||||||
|
fprintf(stderr, "See the README file for a more complete notice.\n\n");
|
||||||
|
fprintf(stderr, "usage:\n\n %s [options]\n\noptions:\n\n",argv[0]);
|
||||||
|
fprintf(stderr, " -h | -help | --help display this help screen\n");
|
||||||
|
fprintf(stderr, " -w use WithdrawnState (for WindowMaker)\n");
|
||||||
|
fprintf(stderr, " -s shaped window\n");
|
||||||
|
fprintf(stderr, " -a use smaller window (for AfterStep Wharf)\n");
|
||||||
|
fprintf(stderr, " -f artwork_file load the specified artwork file\n");
|
||||||
|
fprintf(stderr, " -t track_selection set track selection (between 0 and 4)\n");
|
||||||
|
fprintf(stderr, " -v volume set the cdrom volume (between 0 and 255)\n");
|
||||||
|
fprintf(stderr, " -l led_color use the specified color for led displays\n");
|
||||||
|
fprintf(stderr, " -b back_color use the specified color for backgrounds\n");
|
||||||
|
fprintf(stderr, " -d cd_device use specified device (rather than /dev/cdrom)\n");
|
||||||
|
fprintf(stderr, " -position position set window position (see X manual pages)\n");
|
||||||
|
fprintf(stderr, " -display display select target display (see X manual pages)\n\n");
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
if(strcmp(argv[i], "-w")==0)
|
||||||
|
wmaker=!wmaker;
|
||||||
|
if(strcmp(argv[i], "-s")==0)
|
||||||
|
ushape=!ushape;
|
||||||
|
if(strcmp(argv[i], "-a")==0)
|
||||||
|
astep=!astep;
|
||||||
|
if(strcmp(argv[i], "-t")==0){
|
||||||
|
if(i<argc-1){
|
||||||
|
i++;
|
||||||
|
sscanf(argv[i], "%i", &tsel);
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if(strcmp(argv[i], "-v")==0){
|
||||||
|
if(i<argc-1){
|
||||||
|
i++;
|
||||||
|
sscanf(argv[i], "%i", &vol);
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if(strcmp(argv[i], "-f")==0){
|
||||||
|
artwrk=true;
|
||||||
|
if(i<argc-1){
|
||||||
|
i++;
|
||||||
|
sprintf(artwrkf, "%s", argv[i]);
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if(strcmp(argv[i], "-d")==0){
|
||||||
|
if(i<argc-1){
|
||||||
|
i++;
|
||||||
|
sprintf(cddev, "%s", argv[i]);
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if(strcmp(argv[i], "-l")==0){
|
||||||
|
if(i<argc-1){
|
||||||
|
i++;
|
||||||
|
sprintf(ledcolor, "%s", argv[i]);
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if(strcmp(argv[i], "-b")==0){
|
||||||
|
if(i<argc-1){
|
||||||
|
i++;
|
||||||
|
sprintf(backcolor, "%s", argv[i]);
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if(strcmp(argv[i], "-position")==0){
|
||||||
|
if(i<argc-1){
|
||||||
|
i++;
|
||||||
|
sprintf(position, "%s", argv[i]);
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if(strcmp(argv[i], "-display")==0){
|
||||||
|
if(i<argc-1){
|
||||||
|
i++;
|
||||||
|
sprintf(display, "%s", argv[i]);
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void checkStatus(bool forced){
|
||||||
|
ucount=0;
|
||||||
|
int oldmode=mode;
|
||||||
|
int oldpos=pos;
|
||||||
|
int oldtrack=track;
|
||||||
|
|
||||||
|
cdctl->doStatus();
|
||||||
|
mode=cdctl->getStatusState();
|
||||||
|
track=cdctl->getStatusTrack();
|
||||||
|
|
||||||
|
if(mode==ssStopped){
|
||||||
|
if(tdisplay==0)
|
||||||
|
pos=0;
|
||||||
|
if(tdisplay==1)
|
||||||
|
pos=cdctl->getTrackStart(track);
|
||||||
|
}
|
||||||
|
if(mode==ssPlaying || mode==ssPaused){
|
||||||
|
if(tdisplay==0)
|
||||||
|
pos=cdctl->getStatusPosRel();
|
||||||
|
if(tdisplay==1)
|
||||||
|
pos=cdctl->getStatusPosAbs();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool umode=mode!=oldmode || forced;
|
||||||
|
bool utrack=umode || (!(mode==ssNoCD || mode==ssTrayOpen) && track!=oldtrack);
|
||||||
|
bool utimer=utrack || ((mode==ssPlaying || mode==ssPaused || mode==ssStopped) && (int)(pos/75)!=(int)(oldpos/75));
|
||||||
|
|
||||||
|
if(utimer){
|
||||||
|
if(umode)
|
||||||
|
update();
|
||||||
|
if(utrack){
|
||||||
|
if(mode==ssNoCD || mode==ssTrayOpen)
|
||||||
|
sprintf(trackstr, " ");
|
||||||
|
else
|
||||||
|
sprintf(trackstr, "%2d", cdctl->getStatusTrack());
|
||||||
|
if(art_showled[1])
|
||||||
|
drawText(art_ledpos[1][0], art_ledpos[1][1], trackstr);
|
||||||
|
}
|
||||||
|
if(mode==ssPlaying || mode==ssPaused || mode==ssStopped){
|
||||||
|
int remain;
|
||||||
|
if(tdisplay==0)
|
||||||
|
remain=cdctl->getTrackLen(cdctl->getStatusTrack())-pos;
|
||||||
|
if(tdisplay==1)
|
||||||
|
remain=cdctl->getCDLen()-pos;
|
||||||
|
if(remain<2250)
|
||||||
|
sprintf(timestr, " -;%02d", remain/75);
|
||||||
|
else
|
||||||
|
sprintf(timestr, "%2d:%02d", (pos/75)/60, (pos/75)%60);
|
||||||
|
}
|
||||||
|
if(art_showled[0])
|
||||||
|
drawText(art_ledpos[0][0], art_ledpos[0][1], timestr);
|
||||||
|
repaint();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void pressEvent(XButtonEvent *xev){
|
||||||
|
int x=xev->x-(winsize/2-32);
|
||||||
|
int y=xev->y-(winsize/2-32);
|
||||||
|
int btn=-1;
|
||||||
|
for(int i=0;i<art_nbtns;i++){
|
||||||
|
if(inPolygon(&art_btnlist[i][2], x, y))
|
||||||
|
btn=i;
|
||||||
|
}
|
||||||
|
if(btn==-1){
|
||||||
|
if(art_showled[3]){
|
||||||
|
if(x>=art_ledpos[3][0] && y>=art_ledpos[3][1] && x<=art_ledpos[3][0]+art_ledsize[4] && y<=art_ledpos[3][1]+art_ledsize[5]){
|
||||||
|
int tsels[] = { tsNone, tsNext, tsRepeat, tsRepeatCD, tsRandom };
|
||||||
|
tsel++;
|
||||||
|
if(tsel>=5)
|
||||||
|
tsel=0;
|
||||||
|
cdctl->setTrackSelection(tsels[tsel]);
|
||||||
|
XCopyArea(d_display, pm_tled, pm_disp, gc_gc, (art_ledsize[4]+1)*tsel, 0, art_ledsize[4], art_ledsize[5], art_ledpos[3][0], art_ledpos[3][1]);
|
||||||
|
repaint();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(art_showled[0]){
|
||||||
|
if(x>=art_ledpos[0][0] && y>=art_ledpos[0][1] && x<=art_ledpos[0][0]+(art_ledsize[0]+1)*9-1 && y<=art_ledpos[0][1]+art_ledsize[1]){
|
||||||
|
tdisplay++;
|
||||||
|
if(tdisplay>=2)
|
||||||
|
tdisplay=0;
|
||||||
|
checkStatus(false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
int action=art_actptr[6*btn+mode];
|
||||||
|
int acmds[]={ acStop, acPlay, acPause, acResume, acPrev, acNext, acRewd, acFFwd, acEject, acClose };
|
||||||
|
if(action>0){
|
||||||
|
int acmd=acmds[action-1];
|
||||||
|
cdctl->doAudioCommand(acmd);
|
||||||
|
checkStatus(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void repaint(){
|
||||||
|
XCopyArea(d_display, pm_disp, w_activewin, gc_gc, 0, 0, 64, 64, winsize/2-32, winsize/2-32);
|
||||||
|
XEvent xev;
|
||||||
|
while(XCheckTypedEvent(d_display, Expose, &xev));
|
||||||
|
}
|
||||||
|
|
||||||
|
void update(){
|
||||||
|
if(mode==ssData)
|
||||||
|
sprintf(timestr, "DA_TA");
|
||||||
|
if(mode==ssNoCD)
|
||||||
|
sprintf(timestr, "NO;CD");
|
||||||
|
if(mode==ssTrayOpen)
|
||||||
|
sprintf(timestr, "OP_EN");
|
||||||
|
|
||||||
|
XPoint mply[art_nbtns];
|
||||||
|
if(pm_cdmask!=None){
|
||||||
|
XSetForeground(d_display, gc_bitgc, 0);
|
||||||
|
XCopyArea(d_display, pm_cdmask, pm_mask, gc_bitgc, 0, 0, 64, 64, 0, 0);
|
||||||
|
for(int i=0; i<art_nbtns; i++){
|
||||||
|
if(art_actptr[6*i+mode]==0 && art_hidebtns){
|
||||||
|
for(int k=0;k<art_btnlist[i][2];k++){
|
||||||
|
mply[k].x=art_btnlist[i][k*2+3];
|
||||||
|
mply[k].y=art_btnlist[i][k*2+4];
|
||||||
|
}
|
||||||
|
XFillPolygon(d_display, pm_mask, gc_bitgc, (XPoint *)mply, art_btnlist[i][2], Convex, CoordModeOrigin);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(!(wmaker || ushape || astep)){
|
||||||
|
XCopyArea(d_display, pm_tile, pm_disp, gc_gc, 0, 0, 64, 64, 0, 0);
|
||||||
|
XSetClipMask(d_display, gc_gc, pm_mask);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
XCopyArea(d_display, pm_cd, pm_disp, gc_gc, 0, 0, 64, 64, 0, 0);
|
||||||
|
if(pm_symmask!=None){
|
||||||
|
XSetClipMask(d_display, gc_gc, pm_symmask);
|
||||||
|
XSetClipMask(d_display, gc_bitgc, pm_symmask);
|
||||||
|
}
|
||||||
|
XSetForeground(d_display, gc_bitgc, 1);
|
||||||
|
for(int i=0;i<art_nbtns;i++){
|
||||||
|
if(!(art_actptr[6*i+mode]==0 && art_hidebtns)){
|
||||||
|
int sympos=(art_symsize[0]+1)*(art_actptr[6*i+mode]);
|
||||||
|
XSetClipOrigin(d_display, gc_gc, art_btnlist[i][0]-sympos, art_btnlist[i][1]);
|
||||||
|
XSetClipOrigin(d_display, gc_bitgc, art_btnlist[i][0]-sympos, art_btnlist[i][1]);
|
||||||
|
XCopyArea(d_display, pm_sym, pm_disp, gc_gc, sympos, 0, art_symsize[0], art_symsize[1], art_btnlist[i][0], art_btnlist[i][1]);
|
||||||
|
XFillRectangle(d_display, pm_mask, gc_bitgc, art_btnlist[i][0], art_btnlist[i][1], art_symsize[0], art_symsize[1]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(wmaker || ushape || astep)
|
||||||
|
XShapeCombineMask(d_display, w_activewin, ShapeBounding, winsize/2-32, winsize/2-32, pm_mask, ShapeSet);
|
||||||
|
XSetClipOrigin(d_display, gc_gc, 0, 0);
|
||||||
|
XSetClipOrigin(d_display, gc_bitgc, 0, 0);
|
||||||
|
XSetClipMask(d_display, gc_gc, None);
|
||||||
|
XSetClipMask(d_display, gc_bitgc, None);
|
||||||
|
if(art_showled[2])
|
||||||
|
XCopyArea(d_display, pm_sled, pm_disp, gc_gc, (art_ledsize[2]+1)*mode, 0, art_ledsize[2], art_ledsize[3], art_ledpos[2][0], art_ledpos[2][1]);
|
||||||
|
if(art_showled[3])
|
||||||
|
XCopyArea(d_display, pm_tled, pm_disp, gc_gc, (art_ledsize[4]+1)*tsel, 0, art_ledsize[4], art_ledsize[5], art_ledpos[3][0], art_ledpos[3][1]);
|
||||||
|
}
|
||||||
|
|
||||||
|
void drawText(int x, int y, char *text){
|
||||||
|
int drawx=x;
|
||||||
|
for(int i=0;i<strlen(text);i++){
|
||||||
|
char *chrptr=strchr(chrset,text[i]);
|
||||||
|
if(chrptr!=NULL){
|
||||||
|
int chrindex=chrptr-chrset;
|
||||||
|
int chrwidth=art_ledsize[0];
|
||||||
|
if(chrset[chrindex+1]==text[i])
|
||||||
|
chrwidth=2*art_ledsize[0]+1;
|
||||||
|
XCopyArea(d_display, pm_led, pm_disp, gc_gc, chrindex*(art_ledsize[0]+1), 0, chrwidth, art_ledsize[1], drawx, y);
|
||||||
|
drawx+=chrwidth+1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool readArtwork(char *artfilen){
|
||||||
|
FILE *artfile;
|
||||||
|
char artfilenbuf[256];
|
||||||
|
artfile=fopen(artfilen, "r");
|
||||||
|
if(artfile==NULL){
|
||||||
|
if(strchr(artfilen, '/')!=NULL){
|
||||||
|
fprintf(stderr, "%s : Unable to open artwork file '%s'.\n", NAME, artfilen);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
sprintf(artfilenbuf, "%s/.wmcdplay/%s", getenv("HOME"), artfilen);
|
||||||
|
artfile=fopen(artfilenbuf, "r");
|
||||||
|
if(artfile==NULL){
|
||||||
|
sprintf(artfilenbuf, "%s%s", SYSARTDIR, artfilen);
|
||||||
|
artfile=fopen(artfilenbuf, "r");
|
||||||
|
if(artfile==NULL){
|
||||||
|
fprintf(stderr,"%s : Tried to find artwork file, but failed.\n", NAME, artfilen);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
char buf[256];
|
||||||
|
bool done=false;
|
||||||
|
while(!done){
|
||||||
|
fgets(buf, 250, artfile);
|
||||||
|
done=(feof(artfile)!=0);
|
||||||
|
if(!done){
|
||||||
|
|
||||||
|
int keynum=0;
|
||||||
|
char *keystr[]={ "int art_nbtns=",
|
||||||
|
"bool art_hidebtns=",
|
||||||
|
"bool art_showled[4]=",
|
||||||
|
"int art_ledpos[4][2]=",
|
||||||
|
"int art_btns[]=",
|
||||||
|
"int art_actions[]=",
|
||||||
|
"/* XPM */" };
|
||||||
|
for(int i=0;i<7;i++){
|
||||||
|
if(strncmp(buf, keystr[i], strlen(keystr[i]))==0){
|
||||||
|
keynum=i+1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(keynum==1)
|
||||||
|
sscanf(buf+strlen(keystr[keynum-1]), "%d", &art_nbtns);
|
||||||
|
|
||||||
|
if(keynum==2)
|
||||||
|
art_hidebtns=(strstr(buf+strlen(keystr[keynum-1]), "true")!=NULL);
|
||||||
|
|
||||||
|
if(keynum==3)
|
||||||
|
readArrayBool((char *)buf, (bool *)art_showled, 4);
|
||||||
|
|
||||||
|
if(keynum==4)
|
||||||
|
readArrayInt((char *)buf, (int *)art_ledpos, 8);
|
||||||
|
|
||||||
|
if(keynum>=5){
|
||||||
|
fseek(artfile, -strlen(buf), SEEK_CUR);
|
||||||
|
char *block=readBlock(artfile);
|
||||||
|
|
||||||
|
if(keynum==5){
|
||||||
|
int items=arrayItems(block);
|
||||||
|
art_btnptr=(int *)malloc(sizeof(int)*items);
|
||||||
|
readArrayInt(block, art_btnptr, items);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(keynum==6){
|
||||||
|
int items=arrayItems(block);
|
||||||
|
art_actptr=(int *)malloc(sizeof(int)*items);
|
||||||
|
readArrayInt(block, art_actptr, items);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(keynum==7){
|
||||||
|
|
||||||
|
strncpy(buf, strchr(block+strlen(keystr[keynum-1]), '\n')+1, 250);
|
||||||
|
*strchr(buf, '\n')='\0';
|
||||||
|
|
||||||
|
int w,h;
|
||||||
|
if(strncmp(buf, "static char * cdplayer_xpm", strlen("static char * cdplayer_xpm"))==0)
|
||||||
|
createPixmap(NULL, block, &pm_cd, &pm_cdmask, NULL, NULL);
|
||||||
|
if(strncmp(buf, "static char * symbols_xpm", strlen("static char * symbols_xpm"))==0){
|
||||||
|
createPixmap(NULL, block, &pm_sym, &pm_symmask, &w, &h);
|
||||||
|
art_symsize[0]=(w+1)/11-1;
|
||||||
|
art_symsize[1]=h;
|
||||||
|
}
|
||||||
|
if(strncmp(buf, "static char * led_xpm", strlen("static char * led_xpm"))==0){
|
||||||
|
createPixmap(NULL, block, &pm_led, NULL, &w, &h);
|
||||||
|
art_ledsize[0]=(w+1)/strlen(chrset)-1;
|
||||||
|
art_ledsize[1]=h;
|
||||||
|
}
|
||||||
|
if(strncmp(buf, "static char * ledsym_xpm", strlen("static char * ledsym_xpm"))==0){
|
||||||
|
createPixmap(NULL, block, &pm_sled, NULL, &w, &h);
|
||||||
|
art_ledsize[2]=(w+1)/6-1;
|
||||||
|
art_ledsize[3]=h;
|
||||||
|
}
|
||||||
|
if(strncmp(buf, "static char * ledtsel_xpm", strlen("static char * ledtsel_xpm"))==0){
|
||||||
|
createPixmap(NULL, block, &pm_tled, NULL, &w, &h);
|
||||||
|
art_ledsize[4]=(w+1)/5-1;
|
||||||
|
art_ledsize[5]=h;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
free(block);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fclose(artfile);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
char *readBlock(FILE *dfile){
|
||||||
|
char buf[256];
|
||||||
|
long bytes=0;
|
||||||
|
char *block=NULL;
|
||||||
|
do{
|
||||||
|
fgets(buf, 250, dfile);
|
||||||
|
int buflen=strlen(buf);
|
||||||
|
block=(char *)realloc(block, sizeof(char)*(bytes+buflen+1));
|
||||||
|
strcpy(block+bytes, buf);
|
||||||
|
bytes+=buflen;
|
||||||
|
} while(strstr(buf, "}")==NULL);
|
||||||
|
return block;
|
||||||
|
}
|
||||||
|
|
||||||
|
int arrayItems(char *buf){
|
||||||
|
int items=1;
|
||||||
|
char *bufptr=buf;
|
||||||
|
while((bufptr=strstr(bufptr, ","))!=NULL){
|
||||||
|
bufptr++;
|
||||||
|
items++;
|
||||||
|
};
|
||||||
|
return items;
|
||||||
|
}
|
||||||
|
|
||||||
|
void readArrayInt(char *buf, int *array, int n){
|
||||||
|
char *bufptr;
|
||||||
|
bufptr=strtok(buf, "{,}");
|
||||||
|
for(int i=0;i<n;i++){
|
||||||
|
bufptr=strtok(NULL, "{,}");
|
||||||
|
sscanf(bufptr, "%d", &array[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void readArrayBool(char *buf, bool *array, int n){
|
||||||
|
char *bufptr;
|
||||||
|
bufptr=strtok(buf, "{,}");
|
||||||
|
for(int i=0;i<n;i++){
|
||||||
|
bufptr=strtok(NULL, "{,}");
|
||||||
|
array[i]=(strstr(bufptr, "true")!=NULL);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void createPixmap(char **data, char *buf, Pixmap *image, Pixmap *mask, int *width, int *height){
|
||||||
|
XpmAttributes xpmattr;
|
||||||
|
XpmColorSymbol xpmcsym[4]={{"back_color", NULL, color[0]},
|
||||||
|
{"led_color_high", NULL, color[1]},
|
||||||
|
{"led_color_med", NULL, color[2]},
|
||||||
|
{"led_color_low", NULL, color[3]}};
|
||||||
|
xpmattr.numsymbols=4;
|
||||||
|
xpmattr.colorsymbols=xpmcsym;
|
||||||
|
xpmattr.exactColors=false;
|
||||||
|
xpmattr.closeness=40000;
|
||||||
|
xpmattr.valuemask=XpmColorSymbols | XpmExactColors | XpmCloseness | XpmSize;
|
||||||
|
if(data!=NULL)
|
||||||
|
XpmCreatePixmapFromData(d_display, w_root, data, image, mask, &xpmattr);
|
||||||
|
else
|
||||||
|
XpmCreatePixmapFromBuffer(d_display, w_root, buf, image, mask, &xpmattr);
|
||||||
|
if(width!=NULL)
|
||||||
|
*width=xpmattr.width;
|
||||||
|
if(height!=NULL)
|
||||||
|
*height=xpmattr.height;
|
||||||
|
}
|
||||||
|
|
||||||
|
void setBtnList(int *bset){
|
||||||
|
// Create a list of pointers to button data.
|
||||||
|
// So, for example, data for button 2 can be accessed as art_btnlist[2];
|
||||||
|
// Also, the y co-ordinate of its symbol would be art_btnlist[2][1]
|
||||||
|
|
||||||
|
art_btnlist=(int **)malloc(art_nbtns*sizeof(int *));
|
||||||
|
int curpos=0;
|
||||||
|
for(int i=0;i<art_nbtns;i++){
|
||||||
|
art_btnlist[i]=&bset[0+curpos];
|
||||||
|
curpos+=2*art_btnlist[i][2]+3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool inPolygon(int *points, int px, int py){
|
||||||
|
int lx=points[1];
|
||||||
|
int ly=points[2];
|
||||||
|
int x,y;
|
||||||
|
for(int i=1;i<=points[0];i++){
|
||||||
|
if(i==points[0]){
|
||||||
|
x=points[1];
|
||||||
|
y=points[2];
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
x=points[i*2+1];
|
||||||
|
y=points[i*2+2];
|
||||||
|
}
|
||||||
|
int a=ly-y;
|
||||||
|
int b=x-lx;
|
||||||
|
int c=-a*x-b*y;
|
||||||
|
if(a*px+b*py+c<0)
|
||||||
|
return false;
|
||||||
|
lx=x;
|
||||||
|
ly=y;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
Loading…
Reference in a new issue