Checked in terminatorX pre-3.65 - finally ;) - Alex
authorterminatorX <>
Thu, 31 Aug 2000 09:00:07 +0000 (09:00 +0000)
committerterminatorX <>
Thu, 31 Aug 2000 09:00:07 +0000 (09:00 +0000)
155 files changed:
terminatorX/AUTHORS [new file with mode: 0644]
terminatorX/COPYING [new file with mode: 0644]
terminatorX/ChangeLog [new file with mode: 0644]
terminatorX/INSTALL [new file with mode: 0644]
terminatorX/Makefile.am [new file with mode: 0644]
terminatorX/NEWS [new file with mode: 0644]
terminatorX/README [new file with mode: 0644]
terminatorX/README.GNOME [new file with mode: 0644]
terminatorX/README.PERFORMANCE [new file with mode: 0644]
terminatorX/THANKS [new file with mode: 0644]
terminatorX/TODO [new file with mode: 0644]
terminatorX/acconfig.h [new file with mode: 0644]
terminatorX/autogen.sh [new file with mode: 0755]
terminatorX/configure.in [new file with mode: 0644]
terminatorX/gnome-support/Makefile.am [new file with mode: 0644]
terminatorX/gnome-support/Makefile.in [new file with mode: 0644]
terminatorX/gnome-support/README.GNOME [new file with mode: 0644]
terminatorX/gnome-support/terminatorX-app.xpm [new file with mode: 0644]
terminatorX/gnome-support/terminatorX-mime.xpm [new file with mode: 0644]
terminatorX/gnome-support/terminatorX.keys [new file with mode: 0644]
terminatorX/gnome-support/terminatorX.mime [new file with mode: 0644]
terminatorX/gnome-support/tx-gnome-install [new file with mode: 0755]
terminatorX/gnome-support/tx-gnome-uninstall [new file with mode: 0755]
terminatorX/src/3dnow.h [new file with mode: 0644]
terminatorX/src/Makefile.am [new file with mode: 0644]
terminatorX/src/README.MMX [new file with mode: 0644]
terminatorX/src/gui_icons/Makefile.am [new file with mode: 0644]
terminatorX/src/gui_icons/Makefile.in [new file with mode: 0644]
terminatorX/src/gui_icons/tX_fx_close.xpm [new file with mode: 0644]
terminatorX/src/gui_icons/tX_fx_down.xpm [new file with mode: 0644]
terminatorX/src/gui_icons/tX_fx_up.xpm [new file with mode: 0644]
terminatorX/src/gui_icons/tx_audioengine.xpm [new file with mode: 0644]
terminatorX/src/gui_icons/tx_grab.xpm [new file with mode: 0644]
terminatorX/src/gui_icons/tx_minimize.xpm [new file with mode: 0644]
terminatorX/src/gui_icons/tx_play.xpm [new file with mode: 0644]
terminatorX/src/gui_icons/tx_power.xpm [new file with mode: 0644]
terminatorX/src/gui_icons/tx_record.xpm [new file with mode: 0644]
terminatorX/src/gui_icons/tx_reload.xpm [new file with mode: 0644]
terminatorX/src/gui_icons/tx_sequencer.xpm [new file with mode: 0644]
terminatorX/src/gui_icons/tx_smaller_logo.xpm [new file with mode: 0644]
terminatorX/src/gui_icons/tx_stop.xpm [new file with mode: 0644]
terminatorX/src/gui_icons/tx_wave.xpm [new file with mode: 0644]
terminatorX/src/licmak.awk [new file with mode: 0644]
terminatorX/src/main.cc [new file with mode: 0644]
terminatorX/src/mmx.h [new file with mode: 0644]
terminatorX/src/smallknob/Makefile.am [new file with mode: 0644]
terminatorX/src/smallknob/Makefile.in [new file with mode: 0644]
terminatorX/src/smallknob/knob0.xpm [new file with mode: 0644]
terminatorX/src/smallknob/knob1.xpm [new file with mode: 0644]
terminatorX/src/smallknob/knob10.xpm [new file with mode: 0644]
terminatorX/src/smallknob/knob11.xpm [new file with mode: 0644]
terminatorX/src/smallknob/knob12.xpm [new file with mode: 0644]
terminatorX/src/smallknob/knob13.xpm [new file with mode: 0644]
terminatorX/src/smallknob/knob14.xpm [new file with mode: 0644]
terminatorX/src/smallknob/knob15.xpm [new file with mode: 0644]
terminatorX/src/smallknob/knob16.xpm [new file with mode: 0644]
terminatorX/src/smallknob/knob17.xpm [new file with mode: 0644]
terminatorX/src/smallknob/knob18.xpm [new file with mode: 0644]
terminatorX/src/smallknob/knob19.xpm [new file with mode: 0644]
terminatorX/src/smallknob/knob2.xpm [new file with mode: 0644]
terminatorX/src/smallknob/knob20.xpm [new file with mode: 0644]
terminatorX/src/smallknob/knob21.xpm [new file with mode: 0644]
terminatorX/src/smallknob/knob22.xpm [new file with mode: 0644]
terminatorX/src/smallknob/knob23.xpm [new file with mode: 0644]
terminatorX/src/smallknob/knob24.xpm [new file with mode: 0644]
terminatorX/src/smallknob/knob25.xpm [new file with mode: 0644]
terminatorX/src/smallknob/knob26.xpm [new file with mode: 0644]
terminatorX/src/smallknob/knob27.xpm [new file with mode: 0644]
terminatorX/src/smallknob/knob28.xpm [new file with mode: 0644]
terminatorX/src/smallknob/knob29.xpm [new file with mode: 0644]
terminatorX/src/smallknob/knob3.xpm [new file with mode: 0644]
terminatorX/src/smallknob/knob30.xpm [new file with mode: 0644]
terminatorX/src/smallknob/knob31.xpm [new file with mode: 0644]
terminatorX/src/smallknob/knob32.xpm [new file with mode: 0644]
terminatorX/src/smallknob/knob33.xpm [new file with mode: 0644]
terminatorX/src/smallknob/knob34.xpm [new file with mode: 0644]
terminatorX/src/smallknob/knob35.xpm [new file with mode: 0644]
terminatorX/src/smallknob/knob36.xpm [new file with mode: 0644]
terminatorX/src/smallknob/knob37.xpm [new file with mode: 0644]
terminatorX/src/smallknob/knob38.xpm [new file with mode: 0644]
terminatorX/src/smallknob/knob39.xpm [new file with mode: 0644]
terminatorX/src/smallknob/knob4.xpm [new file with mode: 0644]
terminatorX/src/smallknob/knob40.xpm [new file with mode: 0644]
terminatorX/src/smallknob/knob41.xpm [new file with mode: 0644]
terminatorX/src/smallknob/knob42.xpm [new file with mode: 0644]
terminatorX/src/smallknob/knob43.xpm [new file with mode: 0644]
terminatorX/src/smallknob/knob44.xpm [new file with mode: 0644]
terminatorX/src/smallknob/knob45.xpm [new file with mode: 0644]
terminatorX/src/smallknob/knob46.xpm [new file with mode: 0644]
terminatorX/src/smallknob/knob47.xpm [new file with mode: 0644]
terminatorX/src/smallknob/knob48.xpm [new file with mode: 0644]
terminatorX/src/smallknob/knob49.xpm [new file with mode: 0644]
terminatorX/src/smallknob/knob5.xpm [new file with mode: 0644]
terminatorX/src/smallknob/knob6.xpm [new file with mode: 0644]
terminatorX/src/smallknob/knob7.xpm [new file with mode: 0644]
terminatorX/src/smallknob/knob8.xpm [new file with mode: 0644]
terminatorX/src/smallknob/knob9.xpm [new file with mode: 0644]
terminatorX/src/tX_audiodevice.cc [new file with mode: 0644]
terminatorX/src/tX_audiodevice.h [new file with mode: 0644]
terminatorX/src/tX_audiofile.cc [new file with mode: 0644]
terminatorX/src/tX_audiofile.h [new file with mode: 0644]
terminatorX/src/tX_dial.c [new file with mode: 0644]
terminatorX/src/tX_dial.h [new file with mode: 0644]
terminatorX/src/tX_dialog.cc [new file with mode: 0644]
terminatorX/src/tX_dialog.h [new file with mode: 0644]
terminatorX/src/tX_endian.c [new file with mode: 0644]
terminatorX/src/tX_endian.h [new file with mode: 0644]
terminatorX/src/tX_engine.cc [new file with mode: 0644]
terminatorX/src/tX_engine.h [new file with mode: 0644]
terminatorX/src/tX_event.cc [new file with mode: 0644]
terminatorX/src/tX_event.h [new file with mode: 0644]
terminatorX/src/tX_extdial.cc [new file with mode: 0644]
terminatorX/src/tX_extdial.h [new file with mode: 0644]
terminatorX/src/tX_flash.c [new file with mode: 0644]
terminatorX/src/tX_flash.h [new file with mode: 0644]
terminatorX/src/tX_global.c [new file with mode: 0644]
terminatorX/src/tX_global.h [new file with mode: 0644]
terminatorX/src/tX_icon.c [new file with mode: 0644]
terminatorX/src/tX_icon.h [new file with mode: 0644]
terminatorX/src/tX_knobloader.c [new file with mode: 0644]
terminatorX/src/tX_knobloader.h [new file with mode: 0644]
terminatorX/src/tX_ladspa.cc [new file with mode: 0644]
terminatorX/src/tX_ladspa.h [new file with mode: 0644]
terminatorX/src/tX_loaddlg.cc [new file with mode: 0644]
terminatorX/src/tX_loaddlg.h [new file with mode: 0644]
terminatorX/src/tX_logo.c [new file with mode: 0644]
terminatorX/src/tX_mastergui.cc [new file with mode: 0644]
terminatorX/src/tX_mastergui.h [new file with mode: 0644]
terminatorX/src/tX_mouse.cc [new file with mode: 0644]
terminatorX/src/tX_mouse.h [new file with mode: 0644]
terminatorX/src/tX_panel.cc [new file with mode: 0644]
terminatorX/src/tX_panel.h [new file with mode: 0644]
terminatorX/src/tX_pbutton.cc [new file with mode: 0644]
terminatorX/src/tX_pbutton.h [new file with mode: 0644]
terminatorX/src/tX_prelis.cc [new file with mode: 0644]
terminatorX/src/tX_prelis.h [new file with mode: 0644]
terminatorX/src/tX_seqpar.cc [new file with mode: 0644]
terminatorX/src/tX_seqpar.h [new file with mode: 0644]
terminatorX/src/tX_sequencer.cc [new file with mode: 0644]
terminatorX/src/tX_sequencer.h [new file with mode: 0644]
terminatorX/src/tX_tape.cc [new file with mode: 0644]
terminatorX/src/tX_tape.h [new file with mode: 0644]
terminatorX/src/tX_types.h [new file with mode: 0644]
terminatorX/src/tX_vtt.cc [new file with mode: 0644]
terminatorX/src/tX_vtt.h [new file with mode: 0644]
terminatorX/src/tX_vttfx.cc [new file with mode: 0644]
terminatorX/src/tX_vttfx.h [new file with mode: 0644]
terminatorX/src/tX_vttgui.cc [new file with mode: 0644]
terminatorX/src/tX_vttgui.h [new file with mode: 0644]
terminatorX/src/tX_widget.c [new file with mode: 0644]
terminatorX/src/tX_widget.h [new file with mode: 0644]
terminatorX/src/version.h [new file with mode: 0644]
terminatorX/src/wav_file.h [new file with mode: 0644]
terminatorX/src/wav_read.c [new file with mode: 0644]
terminatorX/src/wav_write.c [new file with mode: 0644]

diff --git a/terminatorX/AUTHORS b/terminatorX/AUTHORS
new file mode 100644 (file)
index 0000000..4ed669a
--- /dev/null
@@ -0,0 +1,16 @@
+terminatorX AUTHORS:
+
+Author:                        Alexander König <alkoit00@fht-esslingen.de>
+
+Contributors:
+licmak.awk:            Christian <eleet@altern.org>
+tX_wavfunc.c-patch:    "Andrew C. Bul+hac?k" <acb@zikzak.net>
+MK II icon:            Michael Kahl <m.kahl@student.hu-berlin.de>
+
+Authors of files not written for tX but included in this distribution:
+mmx.h README.MMX:      Hank Dietz <hankd@ecn.purdue.ed> and
+                       Randy Fisher <rfisher@ecn.purdue.edu>
+3dnow.h:               Robert Dale <rob@nb.net>
+
+The lowpass filter is based on:
+reso_lop.txt:          Paul Kellett <paul.kellett@maxim.abel.co.uk>
diff --git a/terminatorX/COPYING b/terminatorX/COPYING
new file mode 100644 (file)
index 0000000..dc63aac
--- /dev/null
@@ -0,0 +1,340 @@
+
+                   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.
+\f
+                   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.)
+\f
+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.
+\f
+  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.
+\f
+  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
+\f
+       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.
diff --git a/terminatorX/ChangeLog b/terminatorX/ChangeLog
new file mode 100644 (file)
index 0000000..bac6e2d
--- /dev/null
@@ -0,0 +1,265 @@
+terminatorX - ChangeLog
+All changes were done by me (Alexander König) if not stated otherwise.
+This is not a GNU-style ChangeLog but you sort of get the idea what was
+changed.
+
+[v3.65]
+- new GUI
+- Plugins
+- setformat
+- mappable parameters
+
+[v3.61] (unreleased)
+- applied a tiny patch from Atsushi Yamagata <yamagata@plathome.co.jp>
+  to set locale on startup.
+
+[v3.60]
+- terminatorX has a sequencer now. Warning: with the current design the
+  sequencer will correctly play back recorded events only when the buffer size
+  (of the audio device) is set to the same size as it was when recording the
+  events. I know this is annoying and I will try to find a solution to this. 
+  Please take a look at the README to find out how the sequencer works.
+- fixed a bug causing the lowpass filter produce a constant signal
+- fixed the load file / drag'n'drop segfault bug
+- fixed the prelisten zombie processes bug
+- fixed the segfault on termination bug (with the audio engine running)
+- hacked the mixer code to use 3DNow! too. This improves 3DNow! performance gain
+  from previously ~6% to more than 20% (depending on compiler optimizations)
+- extended the set-file-format to allow storing of sequencer events. This
+  release allows loading old tX-sets too.
+- some gui icons. Choose Text/Icon / Icon only / Text only display of these
+  icons in the Options dialog. You'll have to restart tX to see the changes
+  though.
+- "soundfile-editor support": Enter the soundfile-editor of your choice in the
+  tX-Options dialog (Still looking for an editor? Checkout Dave's Linux
+  Sound and MIDI Pages: http://www.bright.net/~dlphilp/linuxsound/).
+  Click the edit button in the Main-Panel to start your editor with the
+  turntable's soundfile - edit ;) - save and click the reload button.
+- big endian bug fixes by Scott C. Knight <scknight@indiana.edu>
+- --enable-benchmark will now produce a benchmark binary. This takes a set file
+  as a parameter (that set file should autotrigger all tables, else the
+  benchmark will measure how fast tX can generate zeros ;) WARNING: the
+  benchmark binary is not a usable terminatorX binary.
+- a new dial-widget. I created this for the upcoming GUI-redesign - and decided
+  I let you debug it right now ;) If you don't want it run configure with the
+  --disable-dial switch.
+- some gui redesign. The volume scales are now located near their corresponding
+  "flash"-widget. This release fits into very small windows - so it should be
+  usable on smaller displays as well.
+- Adrian told me configure doesn´t have to check for glib after checking for
+  gtk+ - I guess he´s right so the glib-test has gone.
+- more minor fixes
+  
+[v3.55]
+- implemented "sequenceable parameters" (see tX_seqpar.*). This means the
+  groundwork for the sequencer is done. Although this release does not yet
+  feature a sequencer - there's still a profit: you can now see the GUI (e.g.
+  the lowpass-freq slider) update while you change that value with your mouse in
+  dga grab mode (e.g. up/down with the default X/Y-Control settings).
+- fixed (libmmx) mmx.h to work with gcc 2.95 and above
+- fixed compilation problems for big endian machines. still runtime probs
+  reported though.
+- fixed configure-script as the new bash complains about == in string compares
+- fixed some gui segfaults
+- added an ugly GNOME-mimetype installer. This installs the ".tX"-mime type, an
+  terminatorX-application icon and a ".tX"-icon. I could use some hints on how
+  I could make automake install that instead of an extra script.
+  (see README.GNOME)
+- added Drag'n Drop support. Works with the great gmc. Drop an audio file over 
+  the filename-button or the wavdisplay of a turntable to load it into that
+  table. Drop an audiofile over the "Add Turntable" Button to create a new 
+  turntable and load that file into that turntable. Drop a tX-set file over the
+  "Load Set" button to load the set. 
+
+[v3.51]
+- fixes the load_piped() compilation error if you use neither sox nor mpg123.
+  Note that you have no "pre-listening" without mpg123 for mp3s and no 
+  "pre-listening" for any other file without sox.
+
+[v3.5]
+- Yet another redesign ;) Oh well this project moved from c++/multithreaded
+  to c++/singlethreaded, to c/multithreaded and now, finally, back to
+  c++/multithreaded. This shows quite some foresight, I'd say ;)
+- Due to the redesign I had to change a lot (everything?) again so this document
+  can impossibly hold all changes. but let's see:
+- tX now uses floats instead of doubles for a lot of parameters. Therefore the
+  old .terminatorXrc.bin is now called .terminatorX3rc.bin to allow parallel
+  use of older releases. But you'll have to configure the new release again
+  the first time you run it.
+- tX now supports an unlimited no of turntables. The only limit is your display
+  really.
+- Each of these turntables has their own pitch / volume settings and a 
+  dedicated lowpass and echo effect section.
+- You can now map mouse motion to a function of your choice (scratching/
+  volume/cutoff/echo-feedback and nothing)
+- Recording will now happen straight to disk. You'll have to specify a filename
+  before you start recording.
+- You can sync the turntables to one master turntable.
+- There are two master settings for pitch and volume available to modify all
+  turntables. The turntable pitch is relative to the master pitch.
+- You can save a complete set (of turntables and settings) to a .tX set file.
+  The audiofile data will *not* be saved within that file, but it'll contain
+  the absolut filename to these files. I know this makes the act of exchanging
+  sets over the net more complex so if somebody wants to code set files with
+  integrated audio data... ;)
+- The way audiofiles are loaded has been redesigned too: the builtin wav
+  routines, the sox support and mpg123 are no longer connected. This means
+  you can use mpg123 support without sox support and still have the builtin
+  wav routines enabled. If you have the builtin wav reader and sox enabled, tX
+  will try try to use the builtin routines first, and if they fail sox will be
+  used as a fallback which is of course slower as you know... There's some 
+  support for Benno Senoner's brilliant 3.2-mmap() patch but the patch still
+  needs to be ported.
+- You can now select which parameter to map to a mouse axis.
+- experimental 3DNow! support (works with gcc < 2.95 only)
+- tX-windows now have an icon, thanks Michael!
+
+[v3.2]
+- implemented 2D-Scratching ;) You can now use the other axis of your mouse
+  two modify the cutoff frequency of the lowpass filter (if enabled). The
+  resonance factor can be set via the slider underneath "LP Filter". Seems
+  to eat quite some CPU power though...
+- Updated THANKS, AUTHORS
+- as most people seem to use sox/mpg123 anyway and as I still get "I want mp3"
+  emails I changed the configure script slightly: It now automatically enables
+  the use of sox and mpg123 if these are available. If you still want 'em good
+  old 16Bit/44.1Khz/Mono builtin routines you have to specify --enable-wavonly
+  with your configure cmdline.
+- Prepared the tarball for the Win32 port. You can now compile tX with cygwin
+  and the Makefile.cygwin in the src directory if you have all the required
+  libs (gtk, pthreads etc...). The resulting exe will run BUT is completely
+  unusable for now... Stou Sandalski <tangui@cell2000.net> and I are planning
+  to make it usable in the future.
+- The About-Dialog now contains some info on how the binary was compiled
+
+[v3.1]
+- Optimized audio-rendering code for speed (might run on some machines
+  with smaller buffsize (-> lower latency) than pre-3.1) - Hey, tX now uses
+  less than 10% CPU (says kpm) with mixing enabled on my i586-200MMX machine!!  
+- "fixed" stdout-output. Due to the pipe-buffering realtime schratching can
+  not be considered usable for now :(
+- Added config option --enable-scheduler, which will cause the terminatorX
+  engine-thread to run with FIFO scheduling policy and highest priority. This
+  might enable some machines to use smaller buffsizes. It requries root
+  privileges though - either run terminatorX as root - or make terminatorX
+  suid root WHICH IS A BAD IDEA FOR MULTI-USER SYSTEMS IF OTHER USERS CAN
+  ACCESS THE BINARY ;) You only have to think about this when you experience
+  buffer underruns with your desired latency. And it might not even help...
+- Rehacked the de-clicking (fading) code. The old one tried to be much more
+  intelligent - and failed fading out the signal sometimes. The new code
+  is much simpler (faster) and is much more reliable.
+- added common sense to the warp feature (f-key in scratch mode). The warping
+  speed is still connected to the mouse speed but it's now adjusted to the
+  sample size as well: you can warp through any sample completely with the same
+  mouse distance.
+- added debug configure switch. Enables (very few) debug messages for now. I
+  decided not to enable the old V2.X messages as they are sent to stdout, which
+  would sound pretty strange to people who use the stdout-option.
+    
+[v3.02] (unreleased)
+- Fixed Adrian's name in the THANKS file. Sorry, Adrian.
+- Corrected Makefile.am for license.c that did not build correctly on some 
+  systems - Thanks to Michael Pruett <mikep@ugcs.caltech.edu>
+
+[v3.01]
+- fixed a bug that caused terminatorX to crash without --enable-sox or
+  mpg123input.
+
+[v3.0]
+- Changed everything ;)
+- switched from C++ to C for gtk's sake
+- switched back two multithreading
+- implemented new gtk+ gui and dialogs
+- new mouse-sampling code now uses DGA's DirectMouse
+- implemented "initalizing"-support for XInput devices.
+- new (alpha) "pre-listening" feature in scratch/loop dialogs
+- hacked vtt for click-free audio. Might be problematic with big
+  kernel level buffersizes but scratching with big buffsize is no
+  fun anyway.
+- options are now stored in ~/.terminatorXrc.bin automatically (on exit)
+  as well as windowsize and the last used filenames
+- terminatorX now comes with a configure script - no more Makefile hacking
+  required (nor a good idea ;) )
+- new wavdisplay-widget update frequency is now configureable
+- new position-display is much more visible which allows more precise
+  scratching
+- new mute-feature allows you to silence the scratch-playback completely
+  while the loop keeps playing (press either <m>-key or right mouse-button.
+- support for mouse buttons:
+  o 1. (left) button: same as <SPACE>, do scratch
+  o 2. (right) button: mute scratch
+  o 3. (middle) button: stop
+- wrote support for sox and mpg123. This enables terminatorX to read close
+  to any audiofile. You need to have sox and mp3 and this feature (as it is
+  still alpha) needs to be enabled via configure-switches see INSTALL
+- licmak now is an awk script. Thanks Christian! I was also received two perl
+  scripts (Thanks, guys!) but I now use the awk script as it is the smallest.
+- introduced <F>-key to "warp" through scratch-sample (just check it out)
+- dropped commandline arguments
+- dropped old X-Code + Mouse warping madness
+- bug fixes (less than bug introduces though ;) )
+
+
+[v2.4] (unreleased)
+- implemented a time counter
+- licmak now finally is what it should be: a perl script (licmak.pl)
+  it was contributed by: Adam Sjøgren <asjo@diku.dk>. Thanks!
+
+[v2.3]
+- X-Window background fixed
+- wavfile overreading fixed by Andrew C. Bul+hac?k (acb@zikzak.net)
+- Using portable type definitions now where required. If you don't
+  have a <sys/types.h> on your system and your machines type sizes
+  equal those of an X86-machine you can specify -DUSE_X86_TYPES in
+  Makefile to compile without <sys/types.h>
+- Slight change in audiodevice-handling that fixes improper buffsize
+  settings on some soundcards (e.g. GUS)
+- Implemented "keep device open"-feature. Needs to be enabled via the
+  -DKEEP_DEV_OPEN switch in Makefile
+- Added some comments to the Makefile for easier editing
+- Added Big Endian support. Use -DBIG_ENDIAN_MACHINE for big endian hosts
+  like ultrapenguin suns or linux ppc. There's also -DBIG_ENDIAN_AUDIO
+  for big endian audio hardware (rare?) available, although proabably
+  nobody will need this.
+- Changed mix behaviour: Mix is now automatically turned on on startup if
+  the user has specified a proper loop file. (with the --loop or -l switch)
+- New mixing routine. You can now set the loop to scratch volume ratio with
+  the cursor keys (left/right). If you modify the volumes while recording
+  these action's will not be recorded. Saving happens with the currently
+  set level.
+- Fixed README-Bug said <m> instead of <x>
+  
+[v2.2]
+- first released version
+- added colors. more standard use of X11.
+- added loop support.
+- added statusbar with mode/status display
+- added commandline options and help (on usage and keys)
+- added raw/mixed save scratch feature
+- added licmak to include license into binary
+- new handling of XAutoRepeat, only turned off now when SPACE pressed.
+- modified wave display (faster + nicer + incorrect (who cares anyway))
+- Makefile fixed by Adrian Reber (adreit00@fht-esslingen.de)
+- bug fixes
+
+[prerelease]
+
+[v2.1]
+- added recording, playback of recording functionality
+
+[v2.0]
+- moved from multithreaded to singlethreaded
+- position feedback
+- bug fixes
+
+[v1.0]
+- mouse support
+- no more position display due to pthread/X probs
+- bug fixes
+
+[v0.5]
+- first version
+- no mouse handling
+- accelerating vtt via sinus
+- multithreaded
+- sound aliasing
diff --git a/terminatorX/INSTALL b/terminatorX/INSTALL
new file mode 100644 (file)
index 0000000..6dfb06e
--- /dev/null
@@ -0,0 +1,142 @@
+terminatorX INSTALL:
+Copyright (C) 1999, 2000 by Alexander König <alkoit00@fht-esslingen.de>
+
+Quickstart:
+-----------
+
+       If you want enhanced audio-file support or optimization don't
+       "quickstart" but read the rest of this file.
+
+       If you just cant wait any longer try:
+       > ./configure
+       > make install
+
+Step 1: Configure terminatorX.
+------------------------------
+
+       If you want your compiler to optimize the binary, you need to set your
+       environment variable CFLAGS to your needs BEFORE you run ./configure.
+
+       for example:
+       if use bash: > export CFLAGS="-O2"
+       with tcsh:   > setenv CFLAGS "-O2"
+
+       I use CFLAGS="-O6 -mpentiumpro" btw. You'll need to have a
+       "pentium-aware" compiler to use that though (gcc/pgcc).
+
+       All of the following configure options can be either enabled with
+       --enable-option or disabled with --disable-option.
+
+       The configure Options:
+       
+               Performance Options:
+               --------------------
+               
+               --enable-scheduler
+               
+               NEW: since 3.5 this option is enabled by default, as you can
+               now operate the GUI while sound is playing, which can cause 
+               audio dropouts when the GUI and the sound thread run at the
+               same priority. You still need root privileges though.
+               
+               If you run terminatorX compiled with this option as root, the
+               engine thread will be run with FIFO-scheduling policy at the 
+               highest priority. This is somewhat dangerous I guess, as is
+               running programs as root anyway ;) If you want everybody to
+               run terminatorX as root (THIS IS DANGEROUS AND YOU SHOULD NOT
+               DO IT) cd (as root) into the directory where you installed
+               terminatorX (usually /usr/local/bin) and execute:
+               
+               > chown root terminatorX
+               > chmod u+s terminatorX
+               
+               I WARNED YOU! Anybody who can run this binary can completely
+               erase your hardisk. BE CAREFUL.
+               
+               --disable-flash
+               
+               This turns off the "flash"-widgets that display the current
+               signal of the turntables and the master out. This might help
+               fighting performance probs. Oh, If you have a better name
+               for the widget please tell me ;)                
+               
+               --enable-3dnow
+               
+               This enables EXPERIMENTAL 3DNow! support. It seems as if the
+               current libmmx (which is included) doesn't work with the new
+               gcc 2.95. So if you use that compiler do not enable this option.
+               
+               The built binary will run on CPUs with 3DNow! support only.
+               AFAIK these are the K6II, K6III and the Athlon (K7). INTEL CPUs
+               don't have 3DNow! support!
+               
+               For now this the only thing that might run a little faster is
+               the echo effect. I planned to hack more 3DNow! code but at the
+               moment I simply don't have the time.
+                               
+               File support options:
+               ---------------------
+               
+               All of these are enabled by default. Nevertheless the configure
+               script checks for the availability of the helper application
+               and if it's not found disables support for it. Check the
+               terminatorX homepage for links to those apps if you don't have
+               them - or check your distribution first, AFAIK all bring these
+               tools nowaday.
+               
+               --enable-wav
+               
+               This enables the builtin wav routines. They load 16Bit/44Khz
+               MONO RIFF/WAV files only but they do that significantly faster
+               than using sox. If these routines fail and sox support is
+               enabled, terminatorX will try to load the file with sox as 
+               a fallback. Disable them only if they don't load your files
+               correctly.
+               
+               --enable-sox
+               
+               This enables sox support. As sox can load nearly any audio file
+               it makes sense to use it. You have to have sox installed of 
+               course.
+               
+               --enable-mpg123
+               
+               This enables mpg123 support. If you want to be able to load mp3
+               files keep this option enabled. You have to have mpg123
+               installed of course.
+               
+               Misc options:
+               -------------
+               
+               --disable-dial
+               
+               The resulting binary will not use the new dial-widget, but
+               scales instead.
+
+               --enable-closedev
+               
+               This has no effect at the moment. Sorry. Don't disable it.
+               
+               --enable-debug
+               
+               This will cause terminatorX to display some debug messages on
+               your console. 
+               
+               Just as an example my configure line is (works with bash only):
+               > CFLAGS="-O2 -mpentiumpro" ./configure 
+
+Step 2: Build the binary.
+-------------------------
+
+       This one's easy:
+       > make
+       
+Step 3: Install the binary:
+---------------------------
+
+       Just as easy:
+       > make install
+       
+       You need root privileges though. If you don't have them simply copy
+       the terminatorX-binary (in src/terminatorX) to a directory of your
+       choice and run terminatorX form there.  
diff --git a/terminatorX/Makefile.am b/terminatorX/Makefile.am
new file mode 100644 (file)
index 0000000..74c8553
--- /dev/null
@@ -0,0 +1,3 @@
+AUTOMAKE_OPTIONS = foreign 
+SUBDIRS = src gnome-support
+SOURCES = README.GNOME README.PERFORMANCE
diff --git a/terminatorX/NEWS b/terminatorX/NEWS
new file mode 100644 (file)
index 0000000..f06c989
--- /dev/null
@@ -0,0 +1,4 @@
+terminatorX NEWS:
+
+Sorry folks, I only maintain ChangeLog which from the GNU point of view
+rather is a NEWS then a ChangeLog file.
diff --git a/terminatorX/README b/terminatorX/README
new file mode 100644 (file)
index 0000000..5489f2c
--- /dev/null
@@ -0,0 +1,402 @@
+terminatorX V3.60 README
+------------------------
+
+New:
+     6.4   : Drag And Drop
+     6.5   : The Sequencer
+     
+Updated:
+     6.2.1 : The Main Panel
+     7     : Options
+
+Copyright (C) 1999, 2000 Alexander König
+eMail: alkoit00@fht-esslingen.de
+Homepage: http://www.terminatorX.cx
+
+This is free software see the COPYING file that came with this
+distribution for details.
+
+WARNING: TerminatorX comes with ABSOLUTELY NO WARRANTY. This software is known
+to lockup X11 or cause other problems under rare conditions. Don't use
+it on production servers. You have been warned!
+
+Contens:
+--------
+
+       1.......What it is
+       2.......Quickstart
+       3.......Features
+       4.......Requirements
+       5.......Installation
+       6.......Operation
+       6.1.....The Master GUI
+       6.2.....The Turntable GUI
+       6.2.1...The Main Panel
+       6.2.2...The Trigger Panel
+       6.2.2.1.Syncing Turntables
+       6.2.3...The X- and Y-Control Panels
+       6.2.4...The Lowpass Panel
+       6.2.5...The Echo Panel
+       6.3.....Grab Mode Operation
+       6.4.....Drag And Drop
+       6.5.....The Sequencer
+       7.......Options/Configuration
+       7.......Further notes
+       8.......Contact/Homepage
+
+1. What it is
+-------------
+
+terminatorX is a realtime audio synthesizer that allows you to "scratch"
+on digitally sampled audio data (*.wav, *.au, *.mp3, etc.) the way hiphop-DJs
+scratch on vinyl records. It features multiple turntables, realtime effects and
+an easy-to-use gtk+ GUI.
+This is BETA Software please help me fix bugs. See section Contact/Homepage.
+Please read this README and take a look at the homepage http://www.terminatorX.cx.
+
+2. Quickstart:
+----------------
+
+       o Install terminatorX (see INSTALL)
+       o Run terminatorX
+       o Load an audiofile into the available turntable (you can add
+         more turntables if you want) (Hint: Click on the button that
+         holds "NONE" in the "Main"-panel)
+       o Click on the "Audio Engine"-button to start playback.
+       o Click on the "Mouse-Grab"-button to enter grab mode. The turntable
+         with the red border has the input focus.
+       o Press <SPACE> or left mouse button to scratch
+       o Release <SPACE> or left mouse button to let the scratch-file run at
+         the turntable's default speed
+       o Press <ESC> to quit grab mode.
+       
+3. Features:
+------------
+
+       NOTE: I decided to remove the old ridiculous feature list and replace
+       it by a shorter version.
+       
+       - Scratching ;) 
+       - Multiple turntables
+       - Builtin Sequencer
+       - Pitch / Volume settings for each turntable
+       - Effects (Lowpass/Echo) configurable for each turntable
+       - Syncing tables to one master turntable
+       - Broad audiofile-type support through the use of sox and mpg123
+       - Recording (straight to disk now)
+       - Save turntable sets (.tX - files)
+       - and more 
+       
+4. Requirements:
+----------------
+
+       - Software:
+         ---------
+         required:
+                       o Linux (>= 2.0)
+                       o glibc2 (pthreads)
+                       o XFree86 (with DGA DirectMouse support)
+                       o gtk+ (>= 1.2.0)
+                       o a compiler (gcc)
+         optional:
+                       o XFree86 >= 3.3.3.1 to support other XInput devices
+                       o sox for enhanced audio file support
+                       o mpg123 for mp3 support
+         
+       - Hardware:
+         ---------
+                       o A OSS compatible soundcard.
+                       o A good clean mouse and pad, a good X-Pointer setup. 
+
+NOTE on performance: tX is known to run pretty smooth on "current" PCs
+       (200MHz++). If you experience problems take a look at the config
+       options section in INSTALL.
+       
+5. Installation:
+----------------
+
+For GNU-standards' sake this information is now located in the INSTALL file
+that came with this distribution of terminatorX.
+  
+6. Operation:
+-------------
+
+Since V3.5 terminatorX has separated GUIs for main operation and the turntable
+settings and therefore I'll (try to ;) explain these in different sections.
+
+6.1 The Master GUI
+------------------
+
+The controls of the master gui are located in the top and the right bar of the
+terminatorX main window.
+
+- Audio Engine Power / Mouse Grab
+With the Audio Engine Button you can en- and disable the audio playback
+engine without activating the sequencer. Unlike earlier versions you will
+not automatically enter mouse-grab mode so you can modify volume/pitch/echo
+settings etc. while you actually hear what you do. Some functions are not
+available when the audio engine is on, their controls will be marked insensitive
+when you enable the engine. To actually enter grab mode you'll have to click on
+the "Mouse Grab" button. See the "Grab Mode Operation" section to find out how
+to control the software then.
+
+- Record (Audio Engine)
+To enable recording you have to enable the "Record"-toggle button BEFORE you 
+start the audio engine. You will be prompted for a filename after enabling the
+button. Audio will then be recorded to that file in RIFF/WAV format from the
+moment you turn the audio engine on until you turn it off again. Please be aware
+of the fact that recording audio requires A LOT of harddisk space!
+
+- Sequencer Play / Record / Stop
+Please Read 6.5 to find out more about the sequencer.
+
+- Master Volume / Pitch
+The volume and pitch settings of the individual turntables are relative to these
+master settings. This information will be stored within the .tX set files.
+
+- Add Turntable
+Oh well, it says it all: adds a (new) turntable to the current set.
+
+- Save Set
+With this button you can save your current set and all related settings to a 
+.tX set file. Note that the audiofiles themselves will not be stored within
+these files but only references to them. Therefore on loading the set the 
+audiofiles have to be at the same location in the filesystem as they were when
+putting that set together.
+
+- Load Set
+Loads a previously saved set (see above). The current set will be destroyed!
+
+- Hide Gui
+If you have a lot of turntables you may find all the panels disturbing in
+grab mode. Therefore you can hide these by clicking on "Hide Gui".
+
+- Options
+Displays the options dialog. See section 7 (Options/Configuration)
+
+- About/Legal
+Displays a dialog with some info about the prog and the binary itself plus
+the good old GPL.
+
+- Quit
+No comment.
+
+6.2 The Turntable GUI
+---------------------
+
+The turntable GUI contains multiple controls and the realtime displays for each
+turntable.
+
+6.2.1 The Main Panel
+--------------------
+
+With the text entry widget you can setup a name for the turntable. "Delete" 
+removes the turntable from the current set. The button beneath these two holds
+the name of the currently loaded audiofile. On creation it will hold "NONE". To
+load an audiofile click that button. Volume and Pitch... oh well ;)
+
+"Edit" will run the soundfile editor you configured in the Options-dialog with
+the soundfile loaded into the turntable as parameter. After editing the file you
+can make terminatorX reload the file by clicking the "Reload" button.
+
+6.2.2 The Trigger Panel
+-----------------------
+
+"Trigger!" actually triggers that turntable right now -> it will start playing 
+immediately if the audio engine is turned on. Stop will stop playback (of this
+turntable) of course. Autotrigger will cause the turntable to be triggered
+whenever you turn on the audio engine. Loop en- or disables the looping of that
+turntable.
+
+6.2.2.1 Syncing Turntables
+--------------------------
+
+Let's start off with an example: Say you have two drumloops and one bassline
+loaded in three turntables. Of course you want these samples to be triggered
+at the same time but you don't want to invest time to cut them to the exact 
+length. Therefore you decide which of the drumloops to make the sync master. 
+You'll have to do this before you enable the audio engine (for now). Only one
+turntable can be the sync master. Now you can make the other two sync clients
+which will cause them to be (re-)triggered whenever the master is
+(re-)triggered. The number you can select to the right of the "Sync Client"
+button sets the trigger delay for the button: if it's set to zero the turntable
+will be triggered with every master trigger, if it's set to 1 it'll be triggered
+every 2nd master trigger and so on.
+
+A nice side effect of this feature is: you can now scratch the second (sync
+client) drum loop and no matter whether you're scratching is good or not the
+beat will be triggered correctly again ;)
+
+
+6.2.3 The X- and Y-Control Panels
+---------------------------------
+
+With these panels you can select which mouse axis (X = left to right, Y= up
+and down) controls which realtime parameter. Possible choices are
+o Scratching
+o Volume
+o Cutoff frequency for the lowpass filter
+o Feedback value for the echo
+o Nothing
+
+6.2.4 The Lowpass Panel
+-----------------------
+
+This panel contians the controls for the resonating lowpass filter. The
+"Resonance" and "Frequency" parameters control the actual filter and "Input
+Gain" enables you to preamp the signal in case the filter eats too much
+volume.
+
+6.2.5 The Echo Panel
+--------------------
+
+Here you can en- and disable the echo-effect and set "Duration" and "Feedback"
+parameters. The duration parameter scales to the actual sample length: so if you
+set it to 0.5 you will hear the echo when the red playback cursor is half way 
+through the sample. This is true for samples that are shorter than
+terminatorX' maximum echo buffer size only.
+
+6.3 Grab Mode Operation
+-----------------------
+
+After pressing "Mouse Grab" terminatorX enters "grab mode". This mode actually
+locks the mouse (as this input is now used to control the realtime parameters)
+and therefore you'll have to know some mouse/keyboard shortcuts to control
+the software without the GUI:
+
+Press <ESC> to quit grab mode.
+
+Select the turntable with input focus:
+The first turntable to hold the input focus will be the first turntable. You
+can now use <TAB> or right mouse button to switch to the next turntable. 
+Alternativley you can use <F1> to <F12> to select turtntable 1 to 12.
+
+Now the turntable that has the focus is the one you will manipulate with your
+mouse and keyboard inputs: Note that you can actually map different functions
+to the mouse x/y axis - so what actually happens when you move your mouse
+depends on what you select on the x/y control panels for each turntable.
+
+Keyboard:
+<TAB>          select next turntable
+<F1> to <F12>  select turntable 1 to 12
+<RETURN>       triggers the turntable
+<BACSPACE>     stops the turntable
+<S>            toggles "Sync Client"
+<SPACE>                while pressed turntable speed is mapped to mouse speed
+               (scratching!)
+<ALT>          mute on/off
+<CTRL>         mute on/off (inverted)
+<F>            (> "fast") warp mode (while scratching)
+<W>            same as above but the audio will be muted while warping
+
+Mouse:
+left button    same as <SPACE> -> scratching (triggers the turntable when
+               stopped)
+right button   select next turntable
+middle button  mute on/off
+
+Scratching works as before: press <SPACE> or left mouse button to actually
+scratch -> now your mouse controls the turntables speed -> release <SPACE>
+to let that turntable spin at default speed again.
+
+6.4 Drag And Drop
+-----------------
+
+Since V3.55 terminatorX provides multiple DND-Drop-Targets for use with GNOME/
+gmc (gmc is the GNU Midnight Commander). You can now load an audiofile into
+an existing turntable by dragging an audiofile from a gmc-window and drop it 
+over a. the "file"-button (on the "main"-panel) or b. (the easier target ;)
+over the wavdisplay (the green on black widget that displays the audiodata).
+To add a file set (== to load the file into a *new* turntable) simply drop the
+audiofile over the "New Turntable" Button. To load a complete terminatorX-set
+simply drop the setfile (*.tX) over the "Load Set" button. DND does not work
+with KDE.
+
+6.5 The Sequencer
+-----------------
+
+Release 3.60 introduces the sequencer. It can record and play back events for
+the following parameters:
+
+Master volume & pitch, scratching, (turntable) volume & pitch, triggers,
+loop (on/off), sync client settings, muting and all lowpass and echo paramters.
+
+To record events simply press the Record button of the sequencer, then press
+the Play button. All actions (for sequencable parameters - see above) you now
+take will be recorded into the song list. Press the Stop and Play again to
+see/hear how terminatorX plays back the events recorded before. You can now
+record events again for e.g. another turntable or record other parameters for
+the same turntable - whatever you want to do. Recording events for parameters
+for wich events have been recorded before will result in dubbing: if you touch
+a parameter while recording, events previously recorded will be erased from the
+moment you touch the paramater until you stop recording.
+
+When recording long sequences/songs you can use the sequencer-scale to start
+recording/playback from any song-position you want. To record a single
+paramteter value at a certain position simply move the sequencer-scale to that
+position, press Record, set the parameter and press Stop again.
+
+There is no other the way to edit the sequencer events currently, but future
+releases may feature an event-list editor.
+
+7. Options/Configuration
+------------------------
+
+All configuration business now happens in the Options-dialog. The features
+that are not completely self-explaining do have tooltips. So in this README
+I will discuss the buffer settings and the sense-cycles-option only. 
+
+A word on the settings in general: your settings are stored in the file
+~/.terminatorX3rc.bin so if you think you completely messed up your settings
+you will have to exit terminatorX - delete this file - and then re-run 
+terminatorX with the default settings.
+
+TerminatorX renders audio blockwise. If you want to have near-realtime operation
+you need to have really small blocks. The values of these blocks can be 
+influenced via the "buffer size" option. The setting you select actually results
+in a 2^x blocksize (size-setting == 8 -> true buffer size in bytes is 2^8=256).
+
+The problem is the smaller the value you select is the faster your machine has
+to be. So if you here "clicks", or "drops" in audio output that are not related
+to your sample-material you will have to increase the buffer size. On the 
+other hand if you believe terminatorX does not react fast enought you have to
+decrease this parameter. The default value is 8, but as my machine handles 7
+nicely (with --enhance-scheduler and root privileges) I use 7.
+
+Between rendering and outputing these blocks terminatorX checks for mouse 
+motion. The problem with mice is: they don´t report when they have stopped.
+This is why terminatorX assumes your mouse has stopped if there is no motion
+reported for certain amount of render/output-cycles. This value is configurable
+via the Stop-sense-cycles. If you decrease your buffsize of course you shorten
+the cycle time as well, therefore if you here strange stop/run behaviour of 
+the audio ouput while scratching after you decreased the buffersize you might 
+have to increase the stop-sense value too.
+
+Xinput Device: WARNING: Use this option *only* if you want to use an input 
+device other than your default-mouse for scratching. Selecting your default
+pointer will cause terminatorX to crash. See the "Using a turntable" section
+on the terminatorX homepage for details.
+
+With "Update Idle" / "Update Delay" you can configure GUI resposivness: Higher
+"Update Idle" will cause the wav-display (position display) and flash-widgets
+to update less often. Higher "Update Delay" values will cause the parameter
+widgets to update less often.
+
+You can now enter the soundfile editor of your choice in the "Soundfile editor"
+field. This editor will be started when clicking the "Edit"-button in the 
+main panel of the vtt-gui. If you enter for example "myeditor" terminatorX will
+run "myeditor sample_in_vtt.wav".
+
+8. Further notes:
+-----------------
+
+You can find more on terminatorX operation and especially the mouse
+configuration on the terminatorX homepage: http://www.terminatorX.cx
+
+9. Contact/Homepage:
+--------------------
+
+terminatorX's homepage:        http://www.terminatorX.cx
+
+send comments, bug-reports, patches or scratches (see scratches section on the
+terminatorX homepage) to: alkoit00@fht-esslingen.de
diff --git a/terminatorX/README.GNOME b/terminatorX/README.GNOME
new file mode 100644 (file)
index 0000000..19e4341
--- /dev/null
@@ -0,0 +1,18 @@
+terminatorX - README.GNOME
+--------------------------
+
+Ok, just some words about the gnome-support directory. For GNOME-Drag And Drop 
+support see the main README.
+
+If you want to install the ".tX"-set mimetype and the icons take a look at the
+tx-gnome-install script. The paths should work for RedHat systems, for other
+distributions you might have to adjust the paths (and maybe the mime-files).
+Then run the script as root and open a directory with gmc that contains .tX
+files.
+
+If the installation was successful the tX-set files should have a well known
+turntable as their icon and a double click on that should result in terminatorX
+opening that set. Installation can be undone with tx-gnome-uninstall.
+
+Doubleclicking on tX-set files will work only when terminatorX is installed
+somewhere in your PATH.
diff --git a/terminatorX/README.PERFORMANCE b/terminatorX/README.PERFORMANCE
new file mode 100644 (file)
index 0000000..f37c37d
--- /dev/null
@@ -0,0 +1,42 @@
+There are several things you can do to improve terminatorX performance:
+
+1. Don't use gtk+-pixmap-themes
+2. Compile an optimized binary
+3. Optimize your terminatorX setup
+4. Optimize your kernel
+
+In Detail:
+
+1. Don't use gtk+-pixmap-themes
+-------------------------------
+
+The sequencer brings a lot of additional GUI activity. Now the "selfmade"
+widgets perform pretty good (no matter what theme you use) but for example
+scale widgets are extremly slow with pixmap-themes. The problem is that the
+gtk-pixmap engine has to stretch the images and stretching images is a very
+CPU-intensive task. So it's best to not use those themes at all.
+
+2. Compile an optimized binary
+------------------------------
+
+This issue is covered in the INSTALL file mostly. If your machine can handle
+3DNow! instruction be sure to use 3DNow! (--enable-3dnow) - since V3.6 this 
+brings ~20% more performance increase. And setting good optimization flags is
+a good idea, too (see INSTALL).
+
+3. Optimize your terminatorX setup
+----------------------------------
+
+The default settings for the GUI updates provide good realtime feedback. This
+may cause problems on slower machines or evil gtk+-themes. If the GUI-thread
+causes dropouts in the audio-engine you should increase the Update-Delay value 
+in the options dialog.
+
+4. Optimize your kernel
+-----------------------
+
+The current 2.2.X-kernels show a pretty high latency. This is problematic for
+near-realtime apps and therefore most linux-audio-apps. Ingo Molnar is
+maintaining a patch against the 2.2.x kernels that reduces latency. They are
+called "low-latency-patches" and are available from:
+http://people.redhat.com/mingo/lowlatency-patches/
diff --git a/terminatorX/THANKS b/terminatorX/THANKS
new file mode 100644 (file)
index 0000000..d584807
--- /dev/null
@@ -0,0 +1,41 @@
+terminatorX THANKS:
+
+I'd like to thank:
+
+- All authors of: the GNU tools and libraries, the Linux kernel, XFree86,
+                  sox, mpg123, the wav-tools, gtk+ and TCP/IP. 
+                 It's obvious but: without their work there'd be no tX
+       
+- All contributors (see AUTHORS)
+
+- All users who send feedback
+
+- Andy Lo A Foe <andy@alsa-project.org> for good tips, autoconf inspiration
+  and a really cool program: alsaplayer
+  (checkout: http://www.alsa-project.org/~andy/)
+
+- Adrian Reber <adreit00@fht-esslingen.de> for being the *BEST* Linux 
+  sysadmin ;) and for another cool program: erwin
+  (checkout: http://www-stud.fht-esslingen.de/luges/doc/gpl.html)
+
+- Paul Kellett <paul.kellett@maxim.abel.co.uk> for his lowpass filter published
+  in reso_lop.txt
+  (checkout: http://www.abel.co.uk/~maxim/)
+
+- Benno Senoner <sbenno@gardena.net> for his mmap() patch, all the low
+  latency kernel work and tips
+  (checkout: http://www.gardena.net/benno/linux/audio/) 
+
+- Michael Kahl <m.kahl@student.hu-berlin.de> for the cool MK II icon
+
+- Robert Dale <rob@nb.net> for makeing his already gone 3DNow!-Header
+  temporarily available again
+  
+- Scott C. Knight <scknight@indiana.edu> for helping me to get this thing
+  running on big endian machines again.
+
+- Everybody who contributed scratches...
+
+- The LAD people for all the help and support
+
+- The real Terminator X
diff --git a/terminatorX/TODO b/terminatorX/TODO
new file mode 100644 (file)
index 0000000..6d3ca65
--- /dev/null
@@ -0,0 +1,53 @@
+terminatorX TODO:
+
+These are the things I´d like to implement IF I have the time.
+
+- MIDI interface
+
+- stereo operation
+
+- support for LADSPA plugins
+
+- port Bennos mmap technology into the new code
+
+- more precise syncing
+
+- a click filter for client triggers
+
+- create a fixed gtk+ theme for terminatorX
+
+- code cleanup: I guess this will be on this list until development has stalled.
+
+DONE:
+
+The following stuff has been on the list above and is now ipmlemented:
+
+[V3.6]
+
+- sequencer is here :)
+
+[V3.0]
+
+- Enhance audio quality with -DHANDLE_STOP -> no clicks.
+
+- Accept wavfiles that contain additional information (e.g. loops)
+
+- Support Y-mouse-movement for scratching
+
+[V2.4] Thanks to Adam Sjøgren <asjo@diku.dk> licmak.c is obsolete:
+
+- implement licmak with either perl, awk or sed.
+
+
+[V2.3] (use -DKEEP_DEV_OPEN in Makefile)
+
+- add a "keep device open" option and implement it
+  (this would help if you have problems opening device very often
+  due to memory fragmentation). And it would help me ;) as my card (or better
+  driver) clicks awfully when device is opened!
+
+OBSOLETE:
+
+[V3.0] no cmdline args anymore so...
+
+- correct getopt error handling.
diff --git a/terminatorX/acconfig.h b/terminatorX/acconfig.h
new file mode 100644 (file)
index 0000000..21c25f5
--- /dev/null
@@ -0,0 +1,37 @@
+/* Features */
+
+/* Define if you want keep device open */
+#undef KEEP_DEV_OPEN
+
+/* Define if you want to use sox as input converter */
+#undef USE_SOX_INPUT
+
+/* Define if you want UGLY mp3-input "support" - requires sox as well*/
+#undef USE_MPG123_INPUT
+
+/* Define if you want realtime scheduling when tX is run with root privileges*/
+#undef USE_SCHEDULER
+
+/* Define for debug messages */
+#undef ENABLE_DEBUG_OUTPUT
+
+/* Define for flashes */
+#undef DONT_USE_FLASH
+
+/* Define for 3DNow! Support */
+#undef USE_3DNOW
+
+/* Define for DGA2 Support */
+#undef USE_DGA2
+
+/* Define for Benchmarking reasons */
+#undef CREATE_BENCHMARK
+
+/* Define for Builtin Wavloader */
+#undef USE_BUILTIN_WAV
+
+/* Define for dial knobs instead of scales */
+#undef USE_DIAL
+
+/* Define for big dial knobs */
+#undef USE_BIG_BUTTONS
diff --git a/terminatorX/autogen.sh b/terminatorX/autogen.sh
new file mode 100755 (executable)
index 0000000..61aeea4
--- /dev/null
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+echo Creating files required for building terminatorX...
+aclocal
+autoheader
+automake --add-missing
+autoconf
+echo Now run \"./configure\"
diff --git a/terminatorX/configure.in b/terminatorX/configure.in
new file mode 100644 (file)
index 0000000..9e4db31
--- /dev/null
@@ -0,0 +1,124 @@
+dnl Process this file with autoconf to produce a configure script.
+AC_INIT(src/tX_global.h)
+AM_INIT_AUTOMAKE(terminatorX,3.65)
+AM_CONFIG_HEADER(config.h)
+
+dnl AC_ARG_ENABLE(closedev, [  --enable-closedev       close audio device if not in use. [default=yes] ])
+AC_ARG_ENABLE(sox, [  --enable-sox            use sox as input converter. [default=yes] ])
+AC_ARG_ENABLE(mpg123, [  --enable-mpg123         use mpg123 as input converter. [default=yes] ])
+dnl AC_ARG_ENABLE(wavonly,  [  --enable-wavonly        enable the builtin wav routines. (no sox/mpg123) ])
+AC_ARG_ENABLE(scheduler,[  --enable-scheduler      enable rt-scheduling (req. root-priv). [default=yes] ])
+AC_ARG_ENABLE(debug,    [  --enable-debug          enable debug output. [default=no] ])
+AC_ARG_ENABLE(flash,    [  --enable-flash          enable flashes. [default=yes] ])
+AC_ARG_ENABLE(3dnow,    [  --enable-3dnow          enables 3DNow! support. [default=no] ])
+dnl AC_ARG_ENABLE(benchmark,[  --enable-benchmark      creates a non-functional test version [default=no] ])
+AC_ARG_ENABLE(wav,          [  --enable-wav            enables the builtin wav-loader [default=yes] ])
+AC_ARG_ENABLE(dial,         [  --enable-dial           use dials instead of scales for effects [default=yes] ])
+AC_ARG_ENABLE(bigdial,      [  --enable-bigdial        use BIG dials [default=yes] ])
+dnl AC_ARG_ENABLE(dga2,     [  --enable-dga2           use DGA2 instead of DGA1. (experimental) [default=no] ])
+
+dnl Checks for programs.
+AC_PROG_AWK
+AC_PROG_CC
+AC_PROG_CXX
+AC_PROG_INSTALL
+AC_PROG_LN_S
+AC_PROG_RANLIB
+
+dnl Checks for libraries.
+AC_CHECK_LIB(m, floor,, AC_MSG_ERROR([** math-lib not installed or broken **]))
+AC_CHECK_LIB(pthread, pthread_mutex_lock,, AC_MSG_ERROR([** POSIX threads not installed or broken **]))
+AM_PATH_GTK(1.2.0, , AC_MSG_ERROR([** GTK 1.2.0 not installed or broken **]))
+dnl AM_PATH_GLIB(1.2.0, , AC_MSG_ERROR([** GLIB 1.2.0 not installed or broken **]))
+
+dnl Checks for header files.
+AC_HEADER_STDC
+AC_CHECK_HEADERS(fcntl.h limits.h malloc.h sys/ioctl.h unistd.h)
+AC_CHECK_HEADERS(ladspa.h,, AC_MSG_ERROR([** couldn't find ladspa.h - get it from http://www.ladspa.org **]))
+
+dnl Checks for typedefs, structures, and compiler characteristics.
+AC_C_BIGENDIAN
+AC_TYPE_SIZE_T
+
+dnl Checks for library functions.
+AC_PROG_GCC_TRADITIONAL
+
+dnl Eval args
+if test "$enable_closedev" = "no"; then
+       AC_DEFINE(KEEP_DEV_OPEN)
+fi
+
+
+if test "$enable_sox" != "no"; then
+       AC_CHECK_PROG(SOX_PROG, sox, yes)
+       if test "$SOX_PROG" = "yes"; then
+               AC_DEFINE(USE_SOX_INPUT)
+       fi
+fi
+
+if test "$enable_mpg123" != "no"; then
+       AC_CHECK_PROG(MPG123_PROG, mpg123, yes)
+       if test "$MPG123_PROG" = "yes"; then
+               AC_DEFINE(USE_MPG123_INPUT)
+       fi
+fi
+
+if test "$enable_wav" != "no";
+then
+       AC_DEFINE(USE_BUILTIN_WAV)
+fi
+
+if test "$enable_flash" = "no"; then
+       AC_DEFINE(DONT_USE_FLASH)
+fi 
+
+if test "$enable_3dnow" = "yes"; then
+       AC_DEFINE(USE_3DNOW)
+fi 
+
+if test "$enable_scheduler" != "no"; then
+       AC_DEFINE(USE_SCHEDULER)
+fi
+
+if test "$enable_debug" = yes; then
+       AC_DEFINE(ENABLE_DEBUG_OUTPUT)
+fi
+
+if test "$enable_benchmark" = yes; then
+       AC_DEFINE(CREATE_BENCHMARK)
+fi
+
+AC_MSG_CHECKING(whether to use dials)
+if test "$enable_dial" = no; then
+       AC_MSG_RESULT(no)
+else
+       AC_MSG_RESULT(yes)
+       AC_DEFINE(USE_DIAL)
+fi
+
+if test "$enable_bigdial" = yes; then
+       AC_DEFINE(USE_DIAL)
+       AC_DEFINE(USE_BIG_BUTTONS)
+fi
+
+if test "$enable_dga2" = yes; then
+       AC_DEFINE(USE_DGA2)
+fi
+
+dnl Now Check for Xlibs - I do this here as other tests fail if these run earlier
+AC_PATH_XTRA
+
+AC_SUBST(X_CFLAGS)
+AC_SUBST(X_PRE_LIBS)
+AC_SUBST(X_EXTRA_LIBS)
+AC_SUBST(X_LIBS)
+AC_SUBST(x_libraries)
+
+AC_CHECK_LIB(X11, XOpenDisplay,, AC_MSG_ERROR([** X11-libs not installed or broken **]), $X_LIBS $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS)
+AC_CHECK_LIB(Xext, XShmQueryExtension,, AC_MSG_ERROR([** Xext-libs not installed or broken **]), $X_LIBS $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS)
+AC_CHECK_LIB(Xi, XOpenDevice,, AC_MSG_ERROR([** XInput not installed or broken **]), $X_LIBS $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS)
+AC_CHECK_LIB(Xxf86dga, XF86DGAQueryExtension,, AC_MSG_ERROR([** DGA not installed or broken **]), $X_LIBS $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS)
+if test "$enable_dga2" = yes; then
+       AC_CHECK_LIB(Xxf86dga, XDGASelectInput,, AC_MSG_ERROR([** DGA2 not installed. Try using dga1 instead. **]), $X_LIBS $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS)
+fi
+AC_OUTPUT(Makefile src/Makefile gnome-support/Makefile src/gui_icons/Makefile src/smallknob/Makefile)
diff --git a/terminatorX/gnome-support/Makefile.am b/terminatorX/gnome-support/Makefile.am
new file mode 100644 (file)
index 0000000..3fd55d1
--- /dev/null
@@ -0,0 +1,8 @@
+SOURCES=terminatorX-app.xpm\
+       terminatorX-mime.xpm\
+       terminatorX.keys\
+       terminatorX.mime\
+       tx-gnome-install\
+       tx-gnome-uninstall\
+       README.GNOME
+       
diff --git a/terminatorX/gnome-support/Makefile.in b/terminatorX/gnome-support/Makefile.in
new file mode 100644 (file)
index 0000000..622cdd5
--- /dev/null
@@ -0,0 +1,182 @@
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+AWK = @AWK@
+CC = @CC@
+CXX = @CXX@
+GTK_CFLAGS = @GTK_CFLAGS@
+GTK_CONFIG = @GTK_CONFIG@
+GTK_LIBS = @GTK_LIBS@
+LN_S = @LN_S@
+MAKEINFO = @MAKEINFO@
+MPG123_PROG = @MPG123_PROG@
+PACKAGE = @PACKAGE@
+RANLIB = @RANLIB@
+SOX_PROG = @SOX_PROG@
+VERSION = @VERSION@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+x_libraries = @x_libraries@
+
+SOURCES = terminatorX-app.xpm  terminatorX-mime.xpm    terminatorX.keys        terminatorX.mime        tx-gnome-install        tx-gnome-uninstall      README.GNOME
+
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../config.h
+CONFIG_CLEAN_FILES = 
+DIST_COMMON =  Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = gtar
+GZIP_ENV = --best
+all: all-redirect
+.SUFFIXES:
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+       cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps gnome-support/Makefile
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
+       cd $(top_builddir) \
+         && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+tags: TAGS
+TAGS:
+
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = gnome-support
+
+distdir: $(DISTFILES)
+       @for file in $(DISTFILES); do \
+         d=$(srcdir); \
+         if test -d $$d/$$file; then \
+           cp -pr $$d/$$file $(distdir)/$$file; \
+         else \
+           test -f $(distdir)/$$file \
+           || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+           || cp -p $$d/$$file $(distdir)/$$file || :; \
+         fi; \
+       done
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am:
+install-data: install-data-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am:
+uninstall: uninstall-am
+all-am: Makefile
+all-redirect: all-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -rm -f Makefile $(CONFIG_CLEAN_FILES)
+       -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+mostlyclean-am:  mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am:  clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am:  distclean-generic clean-am
+
+distclean: distclean-am
+
+maintainer-clean-am:  maintainer-clean-generic distclean-am
+       @echo "This command is intended for maintainers to use;"
+       @echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: tags distdir info-am info dvi-am dvi check check-am \
+installcheck-am installcheck install-exec-am install-exec \
+install-data-am install-data install-am install uninstall-am uninstall \
+all-redirect all-am all installdirs mostlyclean-generic \
+distclean-generic clean-generic maintainer-clean-generic clean \
+mostlyclean distclean maintainer-clean
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/terminatorX/gnome-support/README.GNOME b/terminatorX/gnome-support/README.GNOME
new file mode 100644 (file)
index 0000000..19e4341
--- /dev/null
@@ -0,0 +1,18 @@
+terminatorX - README.GNOME
+--------------------------
+
+Ok, just some words about the gnome-support directory. For GNOME-Drag And Drop 
+support see the main README.
+
+If you want to install the ".tX"-set mimetype and the icons take a look at the
+tx-gnome-install script. The paths should work for RedHat systems, for other
+distributions you might have to adjust the paths (and maybe the mime-files).
+Then run the script as root and open a directory with gmc that contains .tX
+files.
+
+If the installation was successful the tX-set files should have a well known
+turntable as their icon and a double click on that should result in terminatorX
+opening that set. Installation can be undone with tx-gnome-uninstall.
+
+Doubleclicking on tX-set files will work only when terminatorX is installed
+somewhere in your PATH.
diff --git a/terminatorX/gnome-support/terminatorX-app.xpm b/terminatorX/gnome-support/terminatorX-app.xpm
new file mode 100644 (file)
index 0000000..582d021
--- /dev/null
@@ -0,0 +1,152 @@
+/* XPM */
+static char * tX_icon_xpm[] = {
+"48 48 101 2",
+"      c None",
+".     c #2A1D26",
+"+     c #848281",
+"@     c #625F5D",
+"#     c #BFBEBD",
+"$     c #544F4D",
+"%     c #AEAEAC",
+"&     c #484447",
+"*     c #A5A3A1",
+"=     c #483C43",
+"-     c #7A7877",
+";     c #908F8D",
+">     c #41343D",
+",     c #E0E1DD",
+"'     c #746060",
+")     c #3A2E39",
+"!     c #9E9183",
+"~     c #705151",
+"{     c #DDDAD5",
+"]     c #756663",
+"^     c #9B8283",
+"/     c #917C73",
+"(     c #322A32",
+"_     c #604E51",
+":     c #DED6CC",
+"<     c #D6BA8A",
+"[     c #614748",
+"}     c #6A6662",
+"|     c #A29786",
+"1     c #D6CCC4",
+"2     c #322632",
+"3     c #BEB29A",
+"4     c #B29B86",
+"5     c #847865",
+"6     c #968471",
+"7     c #7F6967",
+"8     c #BAA282",
+"9     c #62544C",
+"0     c #56363B",
+"a     c #AA9B95",
+"b     c #D1CEC5",
+"c     c #3A2235",
+"d     c #5B3D3D",
+"e     c #58484E",
+"f     c #31222D",
+"g     c #ABAAA6",
+"h     c #9C9693",
+"i     c #BABAB9",
+"j     c #76726E",
+"k     c #D2CAC4",
+"l     c #959694",
+"m     c #A69B92",
+"n     c #49333B",
+"o     c #877B6C",
+"p     c #828682",
+"q     c #80715F",
+"r     c #83615E",
+"s     c #6E605C",
+"t     c #5A5A58",
+"u     c #6A5759",
+"v     c #F6F6F2",
+"w     c #B2A39A",
+"x     c #AC928A",
+"y     c #9C9B98",
+"z     c #503C42",
+"A     c #C5B7A2",
+"B     c #7E7E7C",
+"C     c #B8AEA0",
+"D     c #625A59",
+"E     c #6C6C6B",
+"F     c #362231",
+"G     c #948882",
+"H     c #877C79",
+"I     c #422E37",
+"J     c #9E9191",
+"K     c #6A5F5F",
+"L     c #96908C",
+"M     c #B5B4B1",
+"N     c #CAC2B7",
+"O     c #ABA59D",
+"P     c #7C5656",
+"Q     c #8E8276",
+"R     c #83716D",
+"S     c #715856",
+"T     c #504449",
+"U     c #5A5053",
+"V     c #888888",
+"W     c #C2C2C2",
+"X     c #C2B8B6",
+"Y     c #311E28",
+"Z     c #B7A8A0",
+"`     c #9C8985",
+" .    c #3E2A32",
+"..    c #372632",
+"+.    c #7E605E",
+"@.    c #6A4E50",
+"#.    c #6A4A46",
+"$.    c #786B6A",
+"%.    c #625457",
+"&.    c #A29C98",
+"*.    c #8E8784",
+"                                                                                                ",
+"                                                                                                ",
+"                                                                                                ",
+"                                                                                                ",
+"                                                                                                ",
+"                                                                                                ",
+"                                                                                                ",
+"                                                                                                ",
+"                                                                                                ",
+"                                                              y *                               ",
+"                                                            # Z Z {                             ",
+"                                                            N / | , W y                         ",
+"                                                      p ; V x Z 1 : Z $.y                       ",
+"                                          E - + B j E } K S ` w 8 b m $.$.l                     ",
+"                - - H D > = & = & = > ) ) ) > > = $ u K T u x r / a X | K j                     ",
+"  J G a Z ! ' u 9 =  .2 ( f f f f f f 2 2 2 2 ) e R V %.T > @./ x 6 J J z U +                   ",
+"  ` 7 C b X _ n ..F f f f Y Y Y f f f 2 f K %.*.*.J *.%.....f z z e > j ` K K ;                 ",
+"  w 7 s 7 S 0 F F Y f Y f Y Y f Y f F  .%.G y # - U > 2 F 2 f ..f .  .T J m s } +               ",
+"  k R #.[ [ Y Y Y Y . Y Y . .  .> = s a &.J + = 2 2 2 F Y F F  .c  .[ $ $.O K e E               ",
+"  1 / @.~ d Y Y Y . Y Y Y Y Y ' J * ` V R & c . F F c F c F ..n [ ..e _ H *.%.T e -             ",
+"    Q @.P ~ Y Y . Y . Y c c $.*.H &.@ = 2 f f . f f c F c F ..z +.e > = _ U %.U z $ -           ",
+"    L ~ r R  .Y  .[ / ] w X W *.} ) Y f f f f f f c c F c I U S +.u U u = e %.%.e T s -         ",
+"    6 ' +.r P I q 5 a L g - u F Y f f . f . . f c c c > $.R / ^ 5 7 / 3 U 7 Q H 7 o | ` &.      ",
+"      ' S P P S e ..U j = ..F Y . f . f f . Y . c u ^ ' k l ; V G L ; M a C M h L L ! h *.g     ",
+"      q [ ~ d 0 #.z I ..Y Y Y F Y f . . Y f c I ' ; J ' { V E E } E } ; N # { + j j ; - 9 t     ",
+"      o 9 _ d d I d @.S D _ = ....c c c ..n u ` h V a U a * V V ; + - B % y , y E E ; @ $ T &   ",
+"        S +.! R d 0 #.R / / ` L h J J x * a J a j B h $ P h % M M i M M g G g % y l G 9 & & &   ",
+"        q d 6 7 7 7 u R ^ ^ ^ ^ ` ` J ` ^ Z L l V y J U T $.y M i M i # M *.9 H % % % $ = > =   ",
+"        H [ C N { 1 S $.R H G H 7 7 R 7 ^ &.l V ; l w m 4 u ; i W W W W W &.E 5 &.{ % & = e     ",
+"        G u Z X * H %.D %.%.u e z z z 7 l ; - - - V L l Q > / % W W W # # % o K M v + = $       ",
+"        w ' z z = n n n I ) n > > I ) R h J - - - ; H - j $ K L M # W # # i ! $.*.| 9 u j       ",
+"        * K I  . .n > ) I I ) I I  .n I e l + - - l q $ e K H L M W # # W W % Q t t t %.        ",
+"          [ > I  . .I ) I I I I n z u s $.y l l ; y q t       4 * W W W W W i ! s               ",
+"          $.n I n I z 0 _ 7 V H           y % M g * q $         h i W W W W W % 5               ",
+"          L 0 n 0 0 %.                    * i i M % 5 $         ! * W W W W # i *.              ",
+"            [ [ e e _                     * # i # % q $       A   # % % % % * g &.$.            ",
+"            K Y . (                       * W # i % H $     o Z k , * V ; ; V ; y |             ",
+"                                          * M % M % 6 $     Q % b b M E } E E j - M *           ",
+"                                          &.% g g * 5 $   < l p { y | p V ; B B j V N           ",
+"                                          &.* % g g 5 $   A p p L Q 6 p j } E @ } E W +         ",
+"                                          * M # i g ; $ 8 h @ E E ! q | } t t t @ t ; O         ",
+"                                          y % M i &.m $ m p E E j ; ! O - E E } @ @ B { O       ",
+"                                          m *.B B H 6 t | O g O g 3 M ] ; * O g g O O N y       ",
+"                                                            @ @ @ @ t                           ",
+"                                                                                                ",
+"                                                                                                ",
+"                                                                                                ",
+"                                                                                                "};
diff --git a/terminatorX/gnome-support/terminatorX-mime.xpm b/terminatorX/gnome-support/terminatorX-mime.xpm
new file mode 100644 (file)
index 0000000..b1aa226
--- /dev/null
@@ -0,0 +1,817 @@
+/* XPM */
+static char * technics_xpm[] = {
+"48 48 766 2",
+"      c None",
+".     c #AFA3A1",
+"+     c #9D9894",
+"@     c #99938E",
+"#     c #A38D94",
+"$     c #A9A099",
+"%     c #8A756F",
+"&     c #B7A29E",
+"*     c #BFACA2",
+"=     c #DBD4BF",
+"-     c #9D9790",
+";     c #625E5D",
+">     c #6F6865",
+",     c #565856",
+"'     c #525351",
+")     c #646463",
+"!     c #656160",
+"~     c #706A67",
+"{     c #746864",
+"]     c #9A7A78",
+"^     c #BFAA9E",
+"/     c #C8B3AB",
+"(     c #DFD5CD",
+"_     c #AD9F8F",
+":     c #736768",
+"<     c #746E6D",
+"[     c #504E53",
+"}     c #3F3741",
+"|     c #3B313E",
+"1     c #3A303E",
+"2     c #3B2E40",
+"3     c #3E3440",
+"4     c #453B46",
+"5     c #50454D",
+"6     c #5D5456",
+"7     c #665F60",
+"8     c #6A5F63",
+"9     c #6B6263",
+"0     c #574D51",
+"a     c #5F4D57",
+"b     c #9F898B",
+"c     c #977C75",
+"d     c #A78F80",
+"e     c #B1A5A0",
+"f     c #ADA4A0",
+"g     c #83726E",
+"h     c #716464",
+"i     c #777775",
+"j     c #625957",
+"k     c #6B615F",
+"l     c #7E7473",
+"m     c #6B625F",
+"n     c #7D7068",
+"o     c #71605B",
+"p     c #5C4D4F",
+"q     c #4C3D42",
+"r     c #372C34",
+"s     c #362A31",
+"t     c #332831",
+"u     c #332432",
+"v     c #332430",
+"w     c #322732",
+"x     c #342733",
+"y     c #332534",
+"z     c #332736",
+"A     c #332837",
+"B     c #312535",
+"C     c #352836",
+"D     c #352935",
+"E     c #382B3A",
+"F     c #584A56",
+"G     c #6E666B",
+"H     c #534951",
+"I     c #58464D",
+"J     c #53424C",
+"K     c #937669",
+"L     c #97776D",
+"M     c #A2867D",
+"N     c #9D8880",
+"O     c #D4CBC0",
+"P     c #A69892",
+"Q     c #4C3942",
+"R     c #5D5254",
+"S     c #706F6F",
+"T     c #C2ADAA",
+"U     c #72605E",
+"V     c #D3CABB",
+"W     c #EAE9DA",
+"X     c #E2E5CC",
+"Y     c #736260",
+"Z     c #5A4347",
+"`     c #422F34",
+" .    c #34252C",
+"..    c #32242B",
+"+.    c #31232B",
+"@.    c #311F2C",
+"#.    c #2F202C",
+"$.    c #2E1D2B",
+"%.    c #31212D",
+"&.    c #33242F",
+"*.    c #31232F",
+"=.    c #322534",
+"-.    c #342732",
+";.    c #392B36",
+">.    c #342834",
+",.    c #615159",
+"'.    c #7D7179",
+").    c #B3ABAB",
+"!.    c #B7B1B1",
+"~.    c #82787D",
+"{.    c #3C2E39",
+"].    c #352834",
+"^.    c #29202D",
+"/.    c #746561",
+"(.    c #75615F",
+"_.    c #816D66",
+":.    c #4D3E42",
+"<.    c #B1ACA3",
+"[.    c #756065",
+"}.    c #594E51",
+"|.    c #6C605E",
+"1.    c #CFC1C3",
+"2.    c #71585B",
+"3.    c #78635F",
+"4.    c #9A8E8D",
+"5.    c #786263",
+"6.    c #56383C",
+"7.    c #351F26",
+"8.    c #342027",
+"9.    c #331E28",
+"0.    c #322029",
+"a.    c #311E26",
+"b.    c #342229",
+"c.    c #321E28",
+"d.    c #311D29",
+"e.    c #332029",
+"f.    c #2F1F29",
+"g.    c #30212A",
+"h.    c #32202D",
+"i.    c #35232D",
+"j.    c #3A2631",
+"k.    c #9E9798",
+"l.    c #A49A9B",
+"m.    c #C7C2C2",
+"n.    c #928A8C",
+"o.    c #7F767D",
+"p.    c #3B3540",
+"q.    c #322331",
+"r.    c #352533",
+"s.    c #342433",
+"t.    c #342330",
+"u.    c #322330",
+"v.    c #281D2B",
+"w.    c #2C1E2B",
+"x.    c #2A1C2A",
+"y.    c #433439",
+"z.    c #BBB4AE",
+"A.    c #8F7F7C",
+"B.    c #685F5D",
+"C.    c #716C6B",
+"D.    c #B4B0AF",
+"E.    c #6C5558",
+"F.    c #644B52",
+"G.    c #654950",
+"H.    c #674643",
+"I.    c #3D272C",
+"J.    c #321E26",
+"K.    c #322027",
+"L.    c #2F1E25",
+"M.    c #311E27",
+"N.    c #2F1D22",
+"O.    c #301D24",
+"P.    c #2F1B24",
+"Q.    c #2F1D26",
+"R.    c #2E1E26",
+"S.    c #33202C",
+"T.    c #33222B",
+"U.    c #46363C",
+"V.    c #8E8084",
+"W.    c #A19798",
+"X.    c #B4ACAE",
+"Y.    c #8E8B8D",
+"Z.    c #868284",
+"`.    c #3C313B",
+" +    c #342735",
+".+    c #342634",
+"++    c #322231",
+"@+    c #312131",
+"#+    c #322134",
+"$+    c #452A35",
+"%+    c #2E1D27",
+"&+    c #301D25",
+"*+    c #5B4646",
+"=+    c #554950",
+"-+    c #695F63",
+";+    c #C8C0BB",
+">+    c #665D5D",
+",+    c #5F545B",
+"'+    c #7A7477",
+")+    c #7E6F6B",
+"!+    c #694E54",
+"~+    c #6F494B",
+"{+    c #634542",
+"]+    c #331D26",
+"^+    c #311B21",
+"/+    c #301C22",
+"(+    c #2D1920",
+"_+    c #311E25",
+":+    c #2F1D27",
+"<+    c #342029",
+"[+    c #311B28",
+"}+    c #331E27",
+"|+    c #59494E",
+"1+    c #8F8283",
+"2+    c #837578",
+"3+    c #99918F",
+"4+    c #908989",
+"5+    c #B5B0B0",
+"6+    c #6A6165",
+"7+    c #362A35",
+"8+    c #30212F",
+"9+    c #332533",
+"0+    c #342534",
+"a+    c #372338",
+"b+    c #362234",
+"c+    c #352437",
+"d+    c #342133",
+"e+    c #322237",
+"f+    c #49333A",
+"g+    c #533239",
+"h+    c #37272E",
+"i+    c #645757",
+"j+    c #615258",
+"k+    c #918588",
+"l+    c #A7A091",
+"m+    c #5B4C50",
+"n+    c #4E4149",
+"o+    c #5E5459",
+"p+    c #797878",
+"q+    c #8F827E",
+"r+    c #644B50",
+"s+    c #7F595B",
+"t+    c #5F4548",
+"u+    c #331F25",
+"v+    c #321D23",
+"w+    c #2E1A23",
+"x+    c #311B24",
+"y+    c #301B22",
+"z+    c #2F1C27",
+"A+    c #32212B",
+"B+    c #331C2A",
+"C+    c #503A43",
+"D+    c #877B7F",
+"E+    c #91878B",
+"F+    c #CDC4C4",
+"G+    c #827C7D",
+"H+    c #645F61",
+"I+    c #312633",
+"J+    c #2F242F",
+"K+    c #2C1E2D",
+"L+    c #2F212F",
+"M+    c #312032",
+"N+    c #311F35",
+"O+    c #372336",
+"P+    c #362236",
+"Q+    c #372239",
+"R+    c #352136",
+"S+    c #362538",
+"T+    c #544347",
+"U+    c #7E6060",
+"V+    c #453237",
+"W+    c #3C3037",
+"X+    c #564752",
+"Y+    c #665C64",
+"Z+    c #675B5E",
+"`+    c #615455",
+" @    c #574A50",
+".@    c #4C4148",
+"+@    c #60585B",
+"@@    c #6F736F",
+"#@    c #9C958C",
+"$@    c #674A4D",
+"%@    c #876663",
+"&@    c #7F6867",
+"*@    c #38232C",
+"=@    c #331D24",
+"-@    c #331F26",
+";@    c #362127",
+">@    c #533F44",
+",@    c #5B4B4F",
+"'@    c #6E5E63",
+")@    c #93868C",
+"!@    c #C7C0BF",
+"~@    c #B1ACAB",
+"{@    c #888082",
+"]@    c #4E474F",
+"^@    c #322530",
+"/@    c #2E222C",
+"(@    c #2E1F2C",
+"_@    c #2C202B",
+":@    c #2F222E",
+"<@    c #301F2F",
+"[@    c #322232",
+"}@    c #352035",
+"|@    c #382137",
+"1@    c #382238",
+"2@    c #3B243B",
+"3@    c #443349",
+"4@    c #624E4D",
+"5@    c #7A5C59",
+"6@    c #6A5C5E",
+"7@    c #4C3B42",
+"8@    c #4A3948",
+"9@    c #443645",
+"0@    c #5A4C54",
+"a@    c #5C5050",
+"b@    c #4F4147",
+"c@    c #4D454E",
+"d@    c #685B61",
+"e@    c #8A7E75",
+"f@    c #634F51",
+"g@    c #8B6A60",
+"h@    c #8B6867",
+"i@    c #5F5150",
+"j@    c #352027",
+"k@    c #715B5F",
+"l@    c #9E9395",
+"m@    c #D2CFCB",
+"n@    c #716364",
+"o@    c #C8C9C8",
+"p@    c #BBB5B5",
+"q@    c #8F8989",
+"r@    c #372931",
+"s@    c #2F222C",
+"t@    c #2F212B",
+"u@    c #2E212C",
+"v@    c #2E1F2A",
+"w@    c #301F2C",
+"x@    c #362132",
+"y@    c #3A243B",
+"z@    c #392337",
+"A@    c #372137",
+"B@    c #3B2439",
+"C@    c #5A4A5F",
+"D@    c #645761",
+"E@    c #8D7271",
+"F@    c #7F5F5E",
+"G@    c #5F4F51",
+"H@    c #5C4E51",
+"I@    c #ADA6A4",
+"J@    c #584950",
+"K@    c #594E54",
+"L@    c #756866",
+"M@    c #6A5C5F",
+"N@    c #5C5154",
+"O@    c #5C4F52",
+"P@    c #7C6F6A",
+"Q@    c #716D6E",
+"R@    c #76635B",
+"S@    c #775F5A",
+"T@    c #7E5853",
+"U@    c #81645E",
+"V@    c #5B4747",
+"W@    c #685E60",
+"X@    c #3D2B30",
+"Y@    c #695E62",
+"Z@    c #C4C2C1",
+"`@    c #665C60",
+" #    c #35262E",
+".#    c #31212A",
+"+#    c #301F2A",
+"@#    c #30212C",
+"##    c #2E1D28",
+"$#    c #2F1F2A",
+"%#    c #30212D",
+"&#    c #2E1C28",
+"*#    c #2C1B29",
+"=#    c #2F1F2C",
+"-#    c #372033",
+";#    c #3B2239",
+">#    c #392239",
+",#    c #41263B",
+"'#    c #5E4A56",
+")#    c #66545C",
+"!#    c #8B756B",
+"~#    c #7A5A5F",
+"{#    c #796356",
+"]#    c #5B4D53",
+"^#    c #5E5257",
+"/#    c #B3B0AC",
+"(#    c #4A3B3D",
+"_#    c #514349",
+":#    c #756B6C",
+"<#    c #7B6D6A",
+"[#    c #5D4F4F",
+"}#    c #958A8C",
+"|#    c #C8BBB6",
+"1#    c #675658",
+"2#    c #6D6A6E",
+"3#    c #796662",
+"4#    c #624847",
+"5#    c #765750",
+"6#    c #644340",
+"7#    c #644342",
+"8#    c #65504A",
+"9#    c #3D292D",
+"0#    c #33212A",
+"a#    c #33242B",
+"b#    c #30202A",
+"c#    c #321F2A",
+"d#    c #312029",
+"e#    c #301F29",
+"f#    c #2E1E28",
+"g#    c #302229",
+"h#    c #2E1A25",
+"i#    c #301D28",
+"j#    c #2E1E2B",
+"k#    c #331F2F",
+"l#    c #392035",
+"m#    c #462D40",
+"n#    c #5C485A",
+"o#    c #5D4E5C",
+"p#    c #70575D",
+"q#    c #A68A87",
+"r#    c #704E56",
+"s#    c #775C5C",
+"t#    c #5D4C55",
+"u#    c #5B4C51",
+"v#    c #564C4F",
+"w#    c #594B4C",
+"x#    c #31262D",
+"y#    c #544647",
+"z#    c #584C4B",
+"A#    c #584C4E",
+"B#    c #5C4C4E",
+"C#    c #655555",
+"D#    c #6D5F60",
+"E#    c #705B5E",
+"F#    c #615158",
+"G#    c #606263",
+"H#    c #8E847D",
+"I#    c #624841",
+"J#    c #604649",
+"K#    c #593F3D",
+"L#    c #553937",
+"M#    c #4A2D2F",
+"N#    c #604643",
+"O#    c #6F5756",
+"P#    c #574745",
+"Q#    c #311E29",
+"R#    c #32222A",
+"S#    c #33202B",
+"T#    c #34202B",
+"U#    c #2F1D2A",
+"V#    c #301F2B",
+"W#    c #35242F",
+"X#    c #59444D",
+"Y#    c #5D4851",
+"Z#    c #634F56",
+"`#    c #7C6866",
+" $    c #6D5D5A",
+".$    c #61474C",
+"+$    c #5C3E44",
+"@$    c #C6B7A9",
+"#$    c #63494C",
+"$$    c #5D4B53",
+"%$    c #574853",
+"&$    c #55484D",
+"*$    c #574B4C",
+"=$    c #3F3234",
+"-$    c #221825",
+";$    c #564D48",
+">$    c #504545",
+",$    c #78635B",
+"'$    c #745F56",
+")$    c #78625D",
+"!$    c #85786C",
+"~$    c #847971",
+"{$    c #5A4B4B",
+"]$    c #584B4F",
+"^$    c #8A847D",
+"/$    c #644F47",
+"($    c #795F5D",
+"_$    c #7B6C68",
+":$    c #7F6761",
+"<$    c #5B3B37",
+"[$    c #532C30",
+"}$    c #674544",
+"|$    c #846B65",
+"1$    c #A2918F",
+"2$    c #9B8D8A",
+"3$    c #91807F",
+"4$    c #857678",
+"5$    c #7E6E6F",
+"6$    c #776467",
+"7$    c #745F66",
+"8$    c #7A656A",
+"9$    c #837472",
+"0$    c #968288",
+"a$    c #9F9695",
+"b$    c #AA999B",
+"c$    c #B5A39F",
+"d$    c #877273",
+"e$    c #5D3F40",
+"f$    c #56323C",
+"g$    c #5F3E47",
+"h$    c #BDACA3",
+"i$    c #887175",
+"j$    c #5E4E55",
+"k$    c #645655",
+"l$    c #71635E",
+"m$    c #685850",
+"n$    c #2E2028",
+"o$    c #362B30",
+"p$    c #504544",
+"q$    c #4D4141",
+"r$    c #4D3F41",
+"s$    c #504143",
+"t$    c #534747",
+"u$    c #534848",
+"v$    c #56494A",
+"w$    c #594C4F",
+"x$    c #5B484C",
+"y$    c #2C2B2C",
+"z$    c #766662",
+"A$    c #664B4A",
+"B$    c #907B70",
+"C$    c #84756D",
+"D$    c #674A48",
+"E$    c #5E4743",
+"F$    c #6F594F",
+"G$    c #8F8080",
+"H$    c #A38F8F",
+"I$    c #95787E",
+"J$    c #95787C",
+"K$    c #947F83",
+"L$    c #9F9490",
+"M$    c #A59596",
+"N$    c #A69499",
+"O$    c #AB9695",
+"P$    c #A69392",
+"Q$    c #A18C89",
+"R$    c #9A8887",
+"S$    c #9A8384",
+"T$    c #A59798",
+"U$    c #978585",
+"V$    c #674C51",
+"W$    c #573F48",
+"X$    c #58444E",
+"Y$    c #7B696B",
+"Z$    c #837676",
+"`$    c #5A4B4F",
+" %    c #554B50",
+".%    c #574748",
+"+%    c #504244",
+"@%    c #4E3D43",
+"#%    c #4F4041",
+"$%    c #504046",
+"%%    c #534547",
+"&%    c #504140",
+"*%    c #4C3F40",
+"=%    c #493C3D",
+"-%    c #473C3D",
+";%    c #453940",
+">%    c #44383F",
+",%    c #453642",
+"'%    c #2A2928",
+")%    c #8A7D76",
+"!%    c #553E3F",
+"~%    c #988678",
+"{%    c #AB978F",
+"]%    c #CCC0BC",
+"^%    c #C0B5B0",
+"/%    c #584544",
+"(%    c #5E4946",
+"_%    c #645658",
+":%    c #877374",
+"<%    c #9E8A84",
+"[%    c #9B8D8B",
+"}%    c #8D7B7E",
+"|%    c #8F7C7E",
+"1%    c #918487",
+"2%    c #938282",
+"3%    c #948080",
+"4%    c #8D8280",
+"5%    c #897A7C",
+"6%    c #7D6F71",
+"7%    c #5F5158",
+"8%    c #52444D",
+"9%    c #513F4C",
+"0%    c #4B3C47",
+"a%    c #483946",
+"b%    c #483745",
+"c%    c #493A45",
+"d%    c #4D3C3F",
+"e%    c #4B3E40",
+"f%    c #44373B",
+"g%    c #40343B",
+"h%    c #3E3337",
+"i%    c #3E3137",
+"j%    c #3B2D33",
+"k%    c #382B34",
+"l%    c #372D34",
+"m%    c #382D36",
+"n%    c #3D303E",
+"o%    c #40313F",
+"p%    c #4A3844",
+"q%    c #A7A59C",
+"r%    c #5E4444",
+"s%    c #DDD5CC",
+"t%    c #EDEFE0",
+"u%    c #E8E8E0",
+"v%    c #D4D2CD",
+"w%    c #604D4A",
+"x%    c #8F8481",
+"y%    c #8F7F7D",
+"z%    c #796C68",
+"A%    c #7C6E6E",
+"B%    c #665657",
+"C%    c #5B4C4C",
+"D%    c #58494B",
+"E%    c #56444C",
+"F%    c #564548",
+"G%    c #4F3F47",
+"H%    c #4A3B40",
+"I%    c #463742",
+"J%    c #41333C",
+"K%    c #453141",
+"L%    c #41333E",
+"M%    c #3F313C",
+"N%    c #3F313D",
+"O%    c #41333D",
+"P%    c #3E303C",
+"Q%    c #3D2F3B",
+"R%    c #3E3138",
+"S%    c #3C2F37",
+"T%    c #3C2E35",
+"U%    c #3D3138",
+"V%    c #3D2F37",
+"W%    c #3C2F33",
+"X%    c #3B2F36",
+"Y%    c #3A2E37",
+"Z%    c #3C2F36",
+"`%    c #3D313A",
+" &    c #3C303A",
+".&    c #3D2F3C",
+"+&    c #41363C",
+"@&    c #5E5156",
+"#&    c #7C7772",
+"$&    c #9A978D",
+"%&    c #6B5858",
+"&&    c #654D4D",
+"*&    c #604C4C",
+"=&    c #4E3E3F",
+"-&    c #4A373A",
+";&    c #4D393B",
+">&    c #4C3A3E",
+",&    c #49373C",
+"'&    c #47363E",
+")&    c #44323D",
+"!&    c #47343C",
+"~&    c #45313E",
+"{&    c #43313A",
+"]&    c #40313C",
+"^&    c #413139",
+"/&    c #40323A",
+"(&    c #3F303A",
+"_&    c #3E2F39",
+":&    c #403039",
+"<&    c #3E2E39",
+"[&    c #3E2D3A",
+"}&    c #413140",
+"|&    c #42323F",
+"1&    c #3D303C",
+"2&    c #3E313C",
+"3&    c #41333A",
+"4&    c #4C3C44",
+"5&    c #64585D",
+"6&    c #7A7572",
+"7&    c #706A69",
+"8&    c #6B6662",
+"9&    c #79746E",
+"0&    c #3D2D34",
+"a&    c #605354",
+"b&    c #5D4E47",
+"c&    c #645156",
+"d&    c #908C87",
+"e&    c #706563",
+"f&    c #402F2F",
+"g&    c #3A2B2F",
+"h&    c #3A2A30",
+"i&    c #423038",
+"j&    c #3E2E33",
+"k&    c #402F36",
+"l&    c #402F37",
+"m&    c #423035",
+"n&    c #412E37",
+"o&    c #402E35",
+"p&    c #422E35",
+"q&    c #412D3A",
+"r&    c #43303B",
+"s&    c #413038",
+"t&    c #413138",
+"u&    c #412F3B",
+"v&    c #3E303A",
+"w&    c #40333D",
+"x&    c #453541",
+"y&    c #4E3F4B",
+"z&    c #695D65",
+"A&    c #7E7775",
+"B&    c #88837E",
+"C&    c #73716C",
+"D&    c #6C6C67",
+"E&    c #5F5759",
+"F&    c #413443",
+"G&    c #493D41",
+"H&    c #52434C",
+"I&    c #6C5C5C",
+"J&    c #462F34",
+"K&    c #402C2F",
+"L&    c #3F2B31",
+"M&    c #3F2B32",
+"N&    c #412D33",
+"O&    c #412C36",
+"P&    c #3F2D35",
+"Q&    c #402C37",
+"R&    c #3E2A36",
+"S&    c #412E3D",
+"T&    c #453238",
+"U&    c #46323E",
+"V&    c #55444C",
+"W&    c #6C5D61",
+"X&    c #817777",
+"Y&    c #7E7672",
+"Z&    c #6D6966",
+"`&    c #6D6C66",
+" *    c #817976",
+".*    c #4A3137",
+"+*    c #452F33",
+"@*    c #422D33",
+"#*    c #422D36",
+"$*    c #46313B",
+"%*    c #46303A",
+"&*    c #4A363B",
+"**    c #59444B",
+"=*    c #6F5F62",
+"-*    c #837777",
+";*    c #8B8582",
+">*    c #807C76",
+",*    c #716F68",
+"'*    c #7B7B73",
+")*    c #55333D",
+"!*    c #4F3139",
+"~*    c #4F313A",
+"{*    c #513339",
+"]*    c #604B51",
+"^*    c #63625E",
+"/*    c #767971",
+"(*    c #71585D",
+"_*    c #5F464B",
+":*    c #624751",
+"<*    c #705C5F",
+"[*    c #6E5960",
+"}*    c #31272A",
+"|*    c #2F2226",
+"1*    c #2A1D23",
+"                                                                                                ",
+"                                                                                                ",
+"                                                                                                ",
+"                                                                                                ",
+"                                                                                                ",
+"                                                                                                ",
+"                                                                                                ",
+"                                                                                                ",
+"                                                                                                ",
+"                                                                                                ",
+"                                                              . +                               ",
+"                                                            @ # $                               ",
+"                                                            % & * = - ;                         ",
+"                                          > > , ' ) ! ~ > { ] ^ / ( _ : <                       ",
+"                          ) ) [ [ } | 1 2 3 4 5 6 7 8 9 0 a b c d e f g h i                     ",
+"      j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S                   ",
+"  T U V W X Y Z `  . ...+.@.#.$.%.&.*.=.-.;.>.,.'.).!.~.{.].^./.(._.:.<.[.}.|.                  ",
+"  1.2.3.4.5.6.7.8.9.0.a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z.A.B.C.                ",
+"  D.E.F.G.H.I.J.K.L.M.N.O.P.Q.R.S.T.U.V.W.X.Y.Z.`. +.+++@+#+y $+%+&+*+=+-+;+>+,+'+              ",
+"    )+!+~+{+]+^+/+(+_+:+<+[+}+|+1+2+3+4+5+6+7+8+9+0+a+b+c+d+e+f+g+h+i+j+k+l+m+n+o+p+            ",
+"    q+r+s+t+u+v+w+x+y+z+A+B+C+D+E+F+G+H+I+J+K+L+M+N+O+P+Q+R+S+T+U+V+W+X+Y+Z+`+ @.@+@@@          ",
+"    #@$@%@&@*@=@-@;@>@,@'@)@!@~@{@]@^@/@(@_@:@<@[@}@|@|@1@2@3@4@5@6@7@8@9@0@a@j b@c@d@          ",
+"    e@f@g@h@i@j@k@l@m@n@o@p@q@r@s@t@%.#.u@v@#.w@x@y@z@A@B@C@D@E@F@G@H@I@J@K@L@M@N@O@P@Q@        ",
+"      R@S@T@U@V@W@X@Y@Z@`@ #.#+#@#+###$#%#&#*#=#-#;#>#,#'#)#!#~#{#]#^#/#(#_#:#<#[#}#|#1#2#      ",
+"      3#4#5#6#7#8#9#0#a#b#c#d#e#f#g#h#i#c#j#w@k#l#m#n#o#p#q#r#s#t#u#v#w#x#y#z#A#B#C#D#E#F#G#    ",
+"      H#I#J#K#L#M#N#O#P#0#Q#d#R#S#T#U#b#V#W#X#Y#Z#`# $.$+$@$#$$$%$&$*$=$-$;$>$,$'$)$!$~${$]$    ",
+"      ^$/$($_$:$<$[$}$|$1$2$3$4$5$6$7$8$9$0$a$b$c$d$e$f$g$h$i$j$k$l$m$n$o$p$q$r$s$t$u$v$w$x$y$  ",
+"        z$A$B$C$D$E$F$G$H$I$J$K$L$M$N$O$P$Q$R$S$T$U$V$W$X$Y$Z$`$ %.%+%@%#%$%%%&%*%=%-%;%>%,%'%  ",
+"        )%!%~%{%]%^%/%(%_%:%<%[%}%|%1%2%3%4%5%6%7%8%9%0%a%b%c%d%e%=%f%g%h%i%j%k%l%m%n%g%o%p%    ",
+"        q%r%s%t%u%v%w%x%y%z%A%B%C%D%E%F%G%H%I%J%K%L%M%N%O%P%Q%R%S%T%U%V%W%X%Y%Z%`% &.&+&@&#&    ",
+"        $&%&&&*&=&-&;&(#>&,&'&y.)&!&~&{&]&^&/&(&_&:&<&[&M%}&|&1&2&3&4&5&6&7&8&9&0&a&b&c&d&      ",
+"          e&f&g&h&i&i&j&k&l&m&n&k&o&p&q&r&s&t&u&v&w&x&y&z&A&B&C&D&              E&F&G&H&        ",
+"          I&J&K&L&M&N&O&P&Q&R&p&S&T&)&U&V&W&X&Y&Z&`&                                            ",
+"           *.*+*@*#*$*%*&***=*-*;*>*,*                                                          ",
+"          '*)*!*~*{*]*^*                                                                        ",
+"          /*(*_*:*<*[*                                                                          ",
+"            Z&}*|*1*Z&                                                                          ",
+"                                                                                                ",
+"                                                                                                ",
+"                                                                                                ",
+"                                                                                                ",
+"                                                                                                ",
+"                                                                                                ",
+"                                                                                                ",
+"                                                                                                ",
+"                                                                                                ",
+"                                                                                                ",
+"                                                                                                "};
diff --git a/terminatorX/gnome-support/terminatorX.keys b/terminatorX/gnome-support/terminatorX.keys
new file mode 100644 (file)
index 0000000..ed13827
--- /dev/null
@@ -0,0 +1,5 @@
+application/x-terminatorX:
+       open=terminatorX %f
+       view=terminatorX %f
+       edit=terminatorX %f
+       icon-filename=/usr/share/pixmaps/terminatorX-mime.xpm
diff --git a/terminatorX/gnome-support/terminatorX.mime b/terminatorX/gnome-support/terminatorX.mime
new file mode 100644 (file)
index 0000000..3eb8375
--- /dev/null
@@ -0,0 +1,2 @@
+application/x-terminatorX
+       ext: tX tx
diff --git a/terminatorX/gnome-support/tx-gnome-install b/terminatorX/gnome-support/tx-gnome-install
new file mode 100755 (executable)
index 0000000..3eb35df
--- /dev/null
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+# Correct the following paths if necessary (should work for redhat)
+MIMEDIR=/usr/share/mime-info
+ICONDIR=/usr/share/pixmaps
+
+# You shouldn't have to edit these...
+ICONS="terminatorX-app.xpm terminatorX-mime.xpm"
+MIMEFILES="terminatorX.keys terminatorX.mime"
+
+echo -n "Installing icons in [$ICONDIR] ... "
+cp $ICONS $ICONDIR
+echo Done.
+
+echo -n "Installing mimetype in [$MIMEDIR] ... "
+cp $MIMEFILES $MIMEDIR
+echo Done.
+
diff --git a/terminatorX/gnome-support/tx-gnome-uninstall b/terminatorX/gnome-support/tx-gnome-uninstall
new file mode 100755 (executable)
index 0000000..cd37bf7
--- /dev/null
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+# Correct the following paths if necessary (should work for redhat)
+MIMEDIR=/usr/share/mime-info
+ICONDIR=/usr/share/pixmaps
+
+# You shouldn't have to edit these...
+ICONS="terminatorX-app.xpm terminatorX-mime.xpm"
+MIMEFILES="terminatorX.keys terminatorX.mime"
+
+echo -n "Removing icons from [$ICONDIR] ... "
+pushd . > /dev/null
+cd $ICONDIR
+rm -f $ICONS
+echo Done.
+
+echo -n "Removing mimetype from [$MIMEDIR] ... "
+cd $MIMEDIR
+rm -f $MIMEFILES
+popd > /dev/null
+echo Done.
+
diff --git a/terminatorX/src/3dnow.h b/terminatorX/src/3dnow.h
new file mode 100644 (file)
index 0000000..58db1ab
--- /dev/null
@@ -0,0 +1,95 @@
+/*  3DNow! interface library
+ *  Copyright (C) 1998 Robert Dale
+ *  
+ *  This depends on mmx.h which should have been included.
+ *
+ */ 
+
+#include "mmx.h"
+
+/* 3DNow! instructions */
+
+#define femms() \
+        __asm__ __volatile__ ("femms")
+
+#define pf2id_m2r(var, reg)    mmx_m2r(pf2id, var, reg)
+#define pf2id_r2r(regs, regd)  mmx_r2r(pf2id, regs, regd)
+#define pf2id(vars, vard)      mmx_m2m(pf2id, vars, vard)
+
+#define pfacc_m2r(var, reg)    mmx_m2r(pfacc, var, reg)
+#define pfacc_r2r(regs, regd)  mmx_r2r(pfacc, regs, regd)
+#define pfacc(vars, vard)      mmx_m2m(pfacc, vars, vard)
+
+#define pfadd_i2r(imm, reg)    mmx_i2r(pfadd, imm, reg)
+#define pfadd_m2r(var, reg)    mmx_m2r(pfadd, var, reg)
+#define pfadd_r2r(regs, regd)  mmx_r2r(pfadd, regs, regd)
+#define pfadd(vars, vard)      mmx_m2m(pfadd, vars, vard)
+
+#define pfcmpeq_m2r(var, reg)  mmx_m2r(pfcmpeq, var, reg)
+#define pfcmpeq_r2r(regs, regd) mmx_r2r(pfcmpeq, regs, regd)
+#define pfcmpeq(vars, vard)     mmx_m2m(pfcmpeq, vars, vard)
+
+#define pfcmpge_m2r(var, reg)   mmx_m2r(pfcmpge, var, reg)
+#define pfcmpge_r2r(regs, regd) mmx_r2r(pfcmpge, regs, regd)
+#define pfcmpge(vars, vard)     mmx_m2m(pfcmpge, vars, vard)
+
+#define pfcmpgt_m2r(var, reg)   mmx_m2r(pfcmpgt, var, reg)
+#define pfcmpgt_r2r(regs, regd) mmx_r2r(pfcmpgt, regs, regd)
+#define pfcmpgt(vars, vard)     mmx_m2m(pfcmpgt, vars, vard)
+
+#define pfmax_m2r(var, reg)     mmx_m2r(pfmax, var, reg)
+#define pfmax_r2r(regs, regd)   mmx_r2r(pfmax, regs, regd)
+#define pfmax(vars, vard)       mmx_m2m(pfmax, vars, vard)
+
+#define pfmin_m2r(var, reg)     mmx_m2r(pfmin, var, reg)
+#define pfmin_r2r(regs, regd)   mmx_r2r(pfmin, regs, regd)
+#define pfmin(vars, vard)       mmx_m2m(pfmin, vars, vard)
+
+#define pfmul_i2r(imm, reg)     mmx_i2r(pfmul, imm, reg)
+#define pfmul_m2r(var, reg)     mmx_m2r(pfmul, var, reg)
+#define pfmul_r2r(regs, regd)   mmx_r2r(pfmul, regs, regd)
+#define pfmul(vars, vard)       mmx_m2m(pfmul, vars, vard)
+
+#define pfrcp_m2r(var, reg)     mmx_m2r(pfrcp, var, reg)
+#define pfrcp_r2r(regs, regd)   mmx_r2r(pfrcp, regs, regd)
+#define pfrcp(vars, vard)       mmx_m2m(pfrcp, vars, vard)
+
+#define pfrcpit1_m2r(var, reg)  mmx_m2r(pfrcpit1, var, reg)
+#define pfrcpit1_r2r(regs, regd) mmx_r2r(pfrcpit1, regs, regd)
+#define pfrcpit1(vars, vard)    mmx_m2m(pfrcpit1, vars, vard)
+
+#define pfrcpit2_m2r(var, reg)  mmx_m2r(pfrcpit2, var, reg)
+#define pfrcpit2_r2r(regs, regd) mmx_r2r(pfrcpit2, regs, regd)
+#define pfrcpit2(vars, vard)    mmx_m2m(pfrcpit2, vars, vard)
+
+#define pfrsqrt_m2r(var, reg)   mmx_m2r(pfrsqrt, var, reg)
+#define pfrsqrt_r2r(regs, regd) mmx_r2r(pfrsqrt, regs, regd)
+#define pfrsqrt(vars, vard)     mmx_m2m(pfrsqrt, vars, vard)
+
+#define pfrsqit1_m2r(var, reg)   mmx_m2r(pfrsqit1, var, reg)
+#define pfrsqit1_r2r(regs, regd) mmx_r2r(pfrsqit1, regs, regd)
+#define pfrsqit1(vars, vard)     mmx_m2m(pfrsqit1, vars, vard)
+
+#define pfsub_m2r(var, reg)     mmx_m2r(pfsub, var, reg)
+#define pfsub_r2r(regs, regd)   mmx_r2r(pfsub, regs, regd)
+#define pfsub(vars, vard)       mmx_m2m(pfsub, vars, vard)
+
+#define pfsubr_m2r(var, reg)    mmx_m2r(pfsubr, var, reg)
+#define pfsubr_r2r(regs, regd)  mmx_r2r(pfsubr, regs, regd)
+#define pfsubr(vars, vard)      mmx_m2m(pfsubr, vars, vard)
+
+#define pi2fd_m2r(var, reg)     mmx_m2r(pi2fd, var, reg)
+#define pi2fd_r2r(regs, regd)   mmx_r2r(pi2fd, regs, regd)
+#define pi2fd(vars, vard)       mmx_m2m(pi2fd, vars, vard)
+
+#define pavgusb_m2r(var, reg)   mmx_m2r(pavgusb, var, reg)
+#define pavgusb_r2r(regs, regd) mmx_r2r(pavgusb, regs, regd)
+#define pavgusb(vars, vard)     mmx_m2m(pavgusb, vars, vard)
+
+#define pmulhrw_m2r(var, reg)   mmx_m2r(pmulhrw, var, reg)
+#define pmulhrw_r2r(regs, regd) mmx_r2r(pmulhrw, regs, regd)
+#define pmulhrw(vars, vard)     mmx_m2m(pmulhrw, vars, vard)
+
+#define prefetch()           __asm__ __volatile__ ("prefetch") 
+
+#define prefetchw()          __asm__ __volatile__ ("prefetchw") 
diff --git a/terminatorX/src/Makefile.am b/terminatorX/src/Makefile.am
new file mode 100644 (file)
index 0000000..daf38ef
--- /dev/null
@@ -0,0 +1,32 @@
+LIBS=@GTK_LIBS@ -lXi -lXxf86dga -lpthread
+
+SUBDIRS = gui_icons smallknob
+
+CFLAGS=@CFLAGS@ @GTK_CFLAGS@ -D_REENTRANT
+CXXFLAGS=@CFLAGS@ @GTK_CFLAGS@ -D_REENTRANT
+
+license.c: $(top_srcdir)/COPYING
+       @AWK@ -f $(srcdir)/licmak.awk < $(top_srcdir)/COPYING > $(srcdir)/license.c
+
+BUILT_SOURCES = license.c
+
+bin_PROGRAMS = terminatorX
+
+terminatorX_DEPENDENCIES = license.c
+
+terminatorX_SOURCES =  tX_endian.c tX_dialog.cc tX_widget.c wav_write.c \
+                       tX_engine.cc tX_logo.c tX_mouse.cc tX_mouse.h \
+                       main.cc tX_global.c wav_read.c licmak.awk \
+                       tX_endian.h tX_engine.h tX_types.h tX_flash.c tX_flash.h \
+                       tX_global.h version.h tX_tape.h tX_tape.cc \
+                       tX_dialog.h tX_mastergui.h tX_widget.h wav_file.h \
+                       tX_vtt.cc tX_vtt.h tX_vttgui.h tX_vttgui.cc \
+                       tX_audiodevice.cc tX_audiodevice.h tX_mastergui.cc \
+                       3dnow.h mmx.h tX_audiofile.cc \
+                       tX_audiofile.h tX_loaddlg.cc tX_loaddlg.h tX_icon.c \
+                       tX_icon.h README.MMX tX_prelis.cc tX_prelis.h \
+                       tX_seqpar.h tX_seqpar.cc tX_pbutton.cc tX_pbutton.h \
+                       tX_event.h tX_event.cc tX_sequencer.h tX_sequencer.cc \
+                       tX_knobloader.h tX_knobloader.c tX_dial.c tX_dial.h \
+                       tX_extdial.h tX_extdial.cc tX_panel.h tX_panel.cc \
+                       tX_ladspa.h tX_ladspa.cc tX_vttfx.h tX_vttfx.cc
diff --git a/terminatorX/src/README.MMX b/terminatorX/src/README.MMX
new file mode 100644 (file)
index 0000000..eb7c4ab
--- /dev/null
@@ -0,0 +1,195 @@
+*** NOTE: This is the README for libmmx by Hank Dietz and Randy Fisher.
+Although libmmx seems to be completely Public Domain I didn't want to use the
+code without the info. BTW If you want to use mmx.h for some other project
+PLEASE get the original distribution as I had to modify the included mmx.h
+slightly.
+
+Now follow "README" and "acknowledgments" from libmmx.
+*** NOTE END
+README for libmmx.
+
+General Information:
+       The home site for libmmx is off the SWAR homepage at Purdue University:
+               http://shay.ecn.purdue.edu/~swar
+
+       libmmx was written by Hank Dietz and Randy Fisher, who can currently be
+       contacted at:
+               hankd@ecn.purdue.edu
+               rfisher@ecn.purdue.edu
+
+       Please include "libmmx" in the subject line of any correspondence
+       pertaining to the library.
+
+       Please see the file "bug-reports" for information on reporting
+       problems with the library.
+
+       Please read the file INSTALL for information on making and istalling
+       the library, or the file UPGRADE for information on upgrading from an
+       earlier version of libmmx.
+
+Introduction:
+
+       Intel's MMX family of multimedia extensions to the x86 instruction
+       set contains CPU instructions which allow a single operation to be
+       applied to multiple data items simultaneously.  This data is stored
+       in a "partitioned" floating-point (FP) register, meaning that the
+       register is logically divided into multiple independent sections
+       called "fields", each of which can hold a single datum.  For
+       example, a 64-bit register may be partitioned into two 32-bit
+       fields, with the first consisting of bits 0 through 31 and the
+       second consisting of bits 32-63.
+
+       Throughout this document, and all SWAR literature, the notation AxB
+       will be used to indicate a register partitioning of A fields of B
+       bits each.  "AxB" is read as "A by B".  For example, a 64-bit
+       register can be partitioned as 4 fields of 16-bits each (4 by 16).
+       The notation "AxBu" indicates A fields of B bits each, containing
+       unsigned integer data, and the notation "AxBf" indicates A fields of
+       B bits each, containing floating point data.
+
+       Once the data has been stored in the partitioned register, MMX
+       instructions can be used to operate simultaneously on all the fields
+       of the register.  Most of these instructions are "non-interfering",
+       meaning that their application to one field is independent of their
+       application to any other field of the same register.  In this manner,
+       a single operation can be applied to multiple data streams
+       concurrently.  Thus, the MMX instructions treat the fields of a
+       partitioned register as though they were equivalent registers on
+       separate nodes of a SIMD parallel computer.  We refer to this type of
+       processing as SWAR (SIMD Within A Register).
+
+       This library is intended to provide C function level support for the
+       MMX instruction set.  It does so by providing a data type for
+       partitioned registers, and functions which allow operands of this
+       type to be passed to an MMX instruction and returned from it, loaded
+       in MMX registers, and stored from MMX registers to memory.  All of
+       the original MMX instructions are supported by the library.
+
+       The libmmx functions access MMX instructions via inline assembly and
+       use the MMX support provided by the GNU assembler (gas) versions
+       2.8.1 and later.  It is possible to modify the library sources to use
+       earlier versions of gas, however, we suggest that you upgrade to a
+       newer version of gas if possible.
+
+
+The mmx_t data type union:
+       
+       The data is either signed or unsigned, integer, and may be 8, 16, 32,
+       or 64 bits long.  libmmx stores the contents of each register as an
+       unsigned 64-bit entity which may take one of several forms.  This
+       first-class type union is defined to be "mmx_t" in the header file
+       "mmx.h":
+
+       typedef union {
+               long long               q;      /* Quadword */
+               unsigned long long      uq;     /* Unsigned Quadword */
+               int                     d[2];   /* 2 Doublewords */
+               unsigned int            ud[2];  /* 2 Unsigned Doublewords */
+               short                   w[4];   /* 4 Words */
+               unsigned short          uw[4];  /* 4 Unsigned Words */
+               char                    b[8];   /* 8 Bytes */
+               unsigned char           ub[8];  /* 8 Unsigned Bytes */
+       } mmx_t;
+
+       Within an application, variables of type mmx_t are declared as
+       normal, and can be initialized by initializing the "elements" of the
+       chosen partitioning as would be done for an array:
+                       mmx_t a,
+                       mmx_t b.d = {456L, 98L};
+                       mmx_t c.q = 0xF1F2F3F4F5F6F7F8LL;
+
+       Values may be set within the application by setting the elements of
+       the chosen partitioning:
+                       a.q = 0xF1F2F3F4F5F6F7F8LL;
+                       b.d[1] = 456L; b.d[0] = 98L;
+                       c.uw[3] = 3; c.uw[2] = 2; c.uw[1] = 1; c.uw[0] = 0;
+
+       Because the data is stored as a single mmx_t, there is no inherent
+       partitioning due to the storage type.  The partitioning of the
+       register is dependent only upon the operation applied, and is not
+       enforced by the library between operations.  Thus, data may be
+       stored in an mmx_t variable with an 2x32 partitioning, then a 4x16
+       addition can be applied to the mmx_t variable, immediately followed
+       by an 8x8 addition.  It is left to the programmer to use the proper
+       version of each instruction to maintain the desired partitioning
+       throughout an application.
+
+       Note that the data may be accessed with various partitionings.  Thus,
+       the following sequence is legal:
+                       a.q = 0x0123456789abcdefLL;
+                       a.d[1] = a.d[0];
+                       a.w[3] = a.d[2];
+                       a.w[1] = a.d[0];
+                       a.ub[7] = a.b[6];
+                       a.ub[5] = a.b[4];
+                       a.ub[3] = a.b[2];
+                       a.ub[1] = a.b[0];
+
+       Immediate data can be used where a value of type mmx_t is required by
+       casting it to be a value of one of the types within the mmx_t union,
+       then casting it to be an mmx_t value:
+                       mmx_t a;
+                       a = (mmx_t) (long long) 0x0123456789abcdefLL;
+       Notice we did not say "a.q" here.
+
+
+Using libmmx in an application:
+
+       To use libmmx in an application, the header file "mmx.h" must be
+       #included in the application before any variables of type mmx are
+       declared, and before the first occurrence of a libmmx function.
+
+       The processor's floating point registers must usable in MMX mode
+       for any MMX instruction to be used, and must be put back into FP mode
+       once MMX operations have concluded.  mmx_ok() checks to see if the
+       processor supports MMX.  If so, mmx_ok() returns 1, otherwise, it
+       returns 0.  This return value may be checked by a program, and allows
+       MMX code to be skipped or alternative code to be used if MMX is not
+       supported by the CPU.  mm_support() can be used to see which multimedia
+       extensions are supported by the processor including MMX, Extended MMX,
+       and 3DNow!, although the library currently only supports standard MMX.
+
+       If MMX is supported, any of the other libmmx functions may be called.
+
+       When these are completed, emms() must be called to place the CPU back
+       into FP mode, and must be called before any FP instructions are used
+       which follow an MMX instruction.
+
+       See the document "functions" for complete descriptions of the libmmx
+       functions.
+
+
+Using MMX_TRACE:
+       Defining MMX_TRACE before the inclusion of mmx.h, either in the
+       source or on the compiler command line, enables the printing of
+       trace information onto stderr.  This information should be useful
+       for debugging and optimizing your code.
+
+Acknowledgments:
+Jussi Laako for pointing out the errors ultimately found to be connected to the
+failure to notify the optimizer of clobbered values.
+
+Roger Hardiman for reminding us that CPUID isn't everywhere, and that someone
+may actually try to use this on a machine without CPUID.  Also for suggesting
+code for checking this.
+
+Robert Dale for pointing out the AMD recognition bug.
+
+Jimmy Mayfield and Carl Witty for pointing out the Intel recognition bug.
+
+Serge Krier for pointing out missing i2r versions of shifts (on same weekend I
+realized it was missing, but thanks for the note).
+
+Carl Witty for pointing out the psllq_i2r test bug.
+
+Franco Bez for pointing out and testing the Cyrix recognition problem.
+
+Valient Gough for alignment suggestion and indicating, and suggesting a fix
+for, the _i2r tracing bug.
+
+Franco Bez for help with the egcs i2r bugs.
+
+Hugh Holbrook for catching the latest %% bug, for suggesting the use of
+"gcc -E" as a replacement for cpp which may not be easy to find, and for
+noting the ecgs warnings about __volatile__ with __asm__.
+
diff --git a/terminatorX/src/gui_icons/Makefile.am b/terminatorX/src/gui_icons/Makefile.am
new file mode 100644 (file)
index 0000000..3b01749
--- /dev/null
@@ -0,0 +1,14 @@
+SOURCES =      tx_audioengine.xpm\
+               tx_power.xpm\
+               tx_smaller_logo.xpm\
+               tx_grab.xpm\
+               tx_record.xpm\
+               tx_stop.xpm\
+               tx_play.xpm\
+               tx_sequencer.xpm\
+               tx_wave.xpm\
+               tx_reload.xpm\
+               tx_minimize.xpm\
+               tX_fx_up.xpm\
+               tX_fx_down.xpm\
+               tX_fx_close.xpm
diff --git a/terminatorX/src/gui_icons/Makefile.in b/terminatorX/src/gui_icons/Makefile.in
new file mode 100644 (file)
index 0000000..1fa10f9
--- /dev/null
@@ -0,0 +1,182 @@
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ../..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+AWK = @AWK@
+CC = @CC@
+CXX = @CXX@
+GTK_CFLAGS = @GTK_CFLAGS@
+GTK_CONFIG = @GTK_CONFIG@
+GTK_LIBS = @GTK_LIBS@
+LN_S = @LN_S@
+MAKEINFO = @MAKEINFO@
+MPG123_PROG = @MPG123_PROG@
+PACKAGE = @PACKAGE@
+RANLIB = @RANLIB@
+SOX_PROG = @SOX_PROG@
+VERSION = @VERSION@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+x_libraries = @x_libraries@
+
+SOURCES = tx_audioengine.xpm           tx_power.xpm            tx_smaller_logo.xpm             tx_grab.xpm             tx_record.xpm           tx_stop.xpm             tx_play.xpm             tx_sequencer.xpm                tx_wave.xpm             tx_reload.xpm           tx_minimize.xpm                 tX_fx_up.xpm            tX_fx_down.xpm          tX_fx_close.xpm
+
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../../config.h
+CONFIG_CLEAN_FILES = 
+DIST_COMMON =  Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = gtar
+GZIP_ENV = --best
+all: all-redirect
+.SUFFIXES:
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+       cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps src/gui_icons/Makefile
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
+       cd $(top_builddir) \
+         && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+tags: TAGS
+TAGS:
+
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = src/gui_icons
+
+distdir: $(DISTFILES)
+       @for file in $(DISTFILES); do \
+         d=$(srcdir); \
+         if test -d $$d/$$file; then \
+           cp -pr $$d/$$file $(distdir)/$$file; \
+         else \
+           test -f $(distdir)/$$file \
+           || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+           || cp -p $$d/$$file $(distdir)/$$file || :; \
+         fi; \
+       done
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am:
+install-data: install-data-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am:
+uninstall: uninstall-am
+all-am: Makefile
+all-redirect: all-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -rm -f Makefile $(CONFIG_CLEAN_FILES)
+       -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+mostlyclean-am:  mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am:  clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am:  distclean-generic clean-am
+
+distclean: distclean-am
+
+maintainer-clean-am:  maintainer-clean-generic distclean-am
+       @echo "This command is intended for maintainers to use;"
+       @echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: tags distdir info-am info dvi-am dvi check check-am \
+installcheck-am installcheck install-exec-am install-exec \
+install-data-am install-data install-am install uninstall-am uninstall \
+all-redirect all-am all installdirs mostlyclean-generic \
+distclean-generic clean-generic maintainer-clean-generic clean \
+mostlyclean distclean maintainer-clean
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/terminatorX/src/gui_icons/tX_fx_close.xpm b/terminatorX/src/gui_icons/tX_fx_close.xpm
new file mode 100644 (file)
index 0000000..5325f33
--- /dev/null
@@ -0,0 +1,49 @@
+/* XPM */
+static char * tX_fx_close_xpm[] = {
+"10 10 36 1",
+"      c None",
+".     c #4444E1",
+"+     c #4D4DB8",
+"@     c #514FB0",
+"#     c #4545DC",
+"$     c #5858F9",
+"%     c #6464CF",
+"&     c #585697",
+"*     c #4747D4",
+"=     c #4343E0",
+"-     c #5959F2",
+";     c #6C6CAF",
+">     c #5B5A89",
+",     c #5351A8",
+"'     c #6868BF",
+")     c #6363D0",
+"!     c #4848CF",
+"~     c #757575",
+"{     c #5B5A61",
+"]     c #5553A0",
+"^     c #5B5A87",
+"/     c #6F6F9F",
+"(     c #5D5DE8",
+"_     c #5B5A73",
+":     c #4848C9",
+"<     c #4B4BC2",
+"[     c #5F5FE2",
+"}     c #6C6CAB",
+"|     c #5C5A63",
+"1     c #5B5A75",
+"2     c #6D6DA4",
+"3     c #5D5DEA",
+"4     c #737388",
+"5     c #5C5B6E",
+"6     c #75757A",
+"7     c #5C5B7C",
+"..+@ ..+@ ",
+"#$%&*=-;> ",
+",');!$)~{ ",
+"]^/)()~{_ ",
+" :<[)}|1  ",
+".=$)2);&@ ",
+"#3)~{/)4> ",
+",/~{5^6~{ ",
+"]7{_ ]7{_ ",
+"          "};
diff --git a/terminatorX/src/gui_icons/tX_fx_down.xpm b/terminatorX/src/gui_icons/tX_fx_down.xpm
new file mode 100644 (file)
index 0000000..e131b1d
--- /dev/null
@@ -0,0 +1,44 @@
+/* XPM */
+static char * tX_fx_down_xpm[] = {
+"10 10 31 1",
+"      c None",
+".     c #4444E1",
+"+     c #4D4DB8",
+"@     c #514FB0",
+"#     c #4545DC",
+"$     c #5858F9",
+"%     c #6C6CAF",
+"&     c #5B5A89",
+"*     c #4B4BC2",
+"=     c #6262D7",
+"-     c #757576",
+";     c #5C5A63",
+">     c #6464CF",
+",     c #5959F4",
+"'     c #6E6EA1",
+")     c #5959F2",
+"!     c #5351A8",
+"~     c #6868BF",
+"{     c #6363D0",
+"]     c #5D5DE8",
+"^     c #6868C3",
+"/     c #757575",
+"(     c #5B5A61",
+"_     c #5553A0",
+":     c #5B5A87",
+"<     c #6F6F9F",
+"[     c #6969B8",
+"}     c #737388",
+"|     c #5B5A73",
+"1     c #75757A",
+"2     c #5C5B7C",
+"   ..+@   ",
+"   #$%&   ",
+"   *=-;   ",
+"..+#=-&.+@",
+"#$>.,'+)%&",
+"!~{]$^]{/(",
+"_:<[{{}/(|",
+" _:<[}/(| ",
+"  _:1/(|  ",
+"   _2(|   "};
diff --git a/terminatorX/src/gui_icons/tX_fx_up.xpm b/terminatorX/src/gui_icons/tX_fx_up.xpm
new file mode 100644 (file)
index 0000000..8fbbd0b
--- /dev/null
@@ -0,0 +1,44 @@
+/* XPM */
+static char * tX_fx_up_xpm[] = {
+"10 10 31 1",
+"      c None",
+".     c #4444E1",
+"+     c #4D4DB8",
+"@     c #514FB0",
+"#     c #4343E0",
+"$     c #5959F2",
+"%     c #6464CF",
+"&     c #585697",
+"*     c #5858F9",
+"=     c #6868C3",
+"-     c #6C6CAF",
+";     c #6363D0",
+">     c #4545DC",
+",     c #5D5DEA",
+"'     c #6D6DA4",
+")     c #6969B8",
+"!     c #737388",
+"~     c #5B5A89",
+"{     c #5351A8",
+"]     c #6F6F9F",
+"^     c #757575",
+"/     c #5C5B7C",
+"(     c #6868BF",
+"_     c #5B5A61",
+":     c #75757A",
+"<     c #5553A0",
+"[     c #6262D7",
+"}     c #757576",
+"|     c #5B5A73",
+"1     c #4B4BC2",
+"2     c #5C5A63",
+"   ..+@   ",
+"  .#$%&@  ",
+" .#**=-&@ ",
+".#**;;=-&@",
+">,;')!';!~",
+"{]^/(^_:^_",
+"</_{[}_/_|",
+"   1[}2   ",
+"   {]^_   ",
+"   </_|   "};
diff --git a/terminatorX/src/gui_icons/tx_audioengine.xpm b/terminatorX/src/gui_icons/tx_audioengine.xpm
new file mode 100644 (file)
index 0000000..cfa954e
--- /dev/null
@@ -0,0 +1,202 @@
+/* XPM */
+static char * tx_audioengine_xpm[] = {
+"21 18 181 2",
+"      c None",
+".     c #FFFFFF",
+"+     c #E0DEDE",
+"@     c #CDCCCC",
+"#     c #C2C2C2",
+"$     c #9F9E9E",
+"%     c #989797",
+"&     c #EDEDED",
+"*     c #CECCCC",
+"=     c #E2E2E2",
+"-     c #DAD9D9",
+";     c #A4A3A3",
+">     c #747373",
+",     c #898888",
+"'     c #D8D8D8",
+")     c #3A3939",
+"!     c #0C0C0C",
+"~     c #303030",
+"{     c #555454",
+"]     c #949393",
+"^     c #737373",
+"/     c #626262",
+"(     c #858484",
+"_     c #C7C6C6",
+":     c #252525",
+"<     c #222222",
+"[     c #999898",
+"}     c #6D6C6C",
+"|     c #454545",
+"1     c #878686",
+"2     c #383737",
+"3     c #535353",
+"4     c #C9C8C8",
+"5     c #2B2B2B",
+"6     c #AFAEAE",
+"7     c #E0DFDF",
+"8     c #A2A1A1",
+"9     c #6B6B6B",
+"0     c #818080",
+"a     c #686767",
+"b     c #727070",
+"c     c #E7E5E5",
+"d     c #3E3E3E",
+"e     c #191818",
+"f     c #828181",
+"g     c #E4E2E2",
+"h     c #E5E3E3",
+"i     c #C0BFBF",
+"j     c #8C8B8B",
+"k     c #999797",
+"l     c #A8A7A7",
+"m     c #1F1E1E",
+"n     c #434242",
+"o     c #F5F3F3",
+"p     c #232323",
+"q     c #2E2E2E",
+"r     c #BAB9B9",
+"s     c #D8D7D7",
+"t     c #D8D6D6",
+"u     c #B8B7B7",
+"v     c #807F7F",
+"w     c #666565",
+"x     c #919090",
+"y     c #9C9B9B",
+"z     c #131313",
+"A     c #EAEAEA",
+"B     c #262626",
+"C     c #4D4D4D",
+"D     c #C5C3C3",
+"E     c #C4C3C3",
+"F     c #C1C0C0",
+"G     c #A5A4A4",
+"H     c #767575",
+"I     c #484848",
+"J     c #5C5B5B",
+"K     c #949292",
+"L     c #373737",
+"M     c #050505",
+"N     c #D9D9D9",
+"O     c #BDBCBC",
+"P     c #B5B4B4",
+"Q     c #343434",
+"R     c #BFBEBE",
+"S     c #B6B5B5",
+"T     c #B2B0B0",
+"U     c #646262",
+"V     c #2C2C2C",
+"W     c #8C8989",
+"X     c #424242",
+"Y     c #010101",
+"Z     c #F5F5F5",
+"`     c #FEFCFC",
+" .    c #B0B0B0",
+"..    c #838282",
+"+.    c #3E3D3D",
+"@.    c #595959",
+"#.    c #ACABAB",
+"$.    c #A7A5A5",
+"%.    c #A3A2A2",
+"&.    c #4A4949",
+"*.    c #1A1A1A",
+"=.    c #444343",
+"-.    c #D7D7D7",
+";.    c #BEBDBD",
+">.    c #B5B5B5",
+",.    c #B1B0B0",
+"'.    c #ADACAC",
+").    c #929191",
+"!.    c #434343",
+"~.    c #939292",
+"{.    c #979696",
+"].    c #908F8F",
+"^.    c #757373",
+"/.    c #595858",
+"(.    c #9E9D9D",
+"_.    c #6A6A6A",
+":.    c #6A6969",
+"<.    c #A7A6A6",
+"[.    c #9A9999",
+"}.    c #383838",
+"|.    c #888787",
+"1.    c #747272",
+"2.    c #464646",
+"3.    c #141414",
+"4.    c #171616",
+"5.    c #817F7F",
+"6.    c #807D7D",
+"7.    c #242323",
+"8.    c #020202",
+"9.    c #575656",
+"0.    c #313030",
+"a.    c #5E5D5D",
+"b.    c #9B9A9A",
+"c.    c #424141",
+"d.    c #6E6D6D",
+"e.    c #5C5A5A",
+"f.    c #2A2A2A",
+"g.    c #444444",
+"h.    c #8E8D8D",
+"i.    c #080808",
+"j.    c #969595",
+"k.    c #333232",
+"l.    c #282828",
+"m.    c #3C3C3C",
+"n.    c #676666",
+"o.    c #5C5C5C",
+"p.    c #5F5F5F",
+"q.    c #848282",
+"r.    c #6B6A6A",
+"s.    c #484747",
+"t.    c #525151",
+"u.    c #8F8D8D",
+"v.    c #8D8B8B",
+"w.    c #000000",
+"x.    c #535252",
+"y.    c #2F2F2F",
+"z.    c #4C4B4B",
+"A.    c #7B7A7A",
+"B.    c #717070",
+"C.    c #7A7979",
+"D.    c #848383",
+"E.    c #8F8C8C",
+"F.    c #939090",
+"G.    c #636161",
+"H.    c #6F6E6E",
+"I.    c #2B2A2A",
+"J.    c #313131",
+"K.    c #696767",
+"L.    c #8B8A8A",
+"M.    c #8A8888",
+"N.    c #5A5858",
+"O.    c #222121",
+"P.    c #908E8E",
+"Q.    c #151515",
+"R.    c #181818",
+"S.    c #1D1D1D",
+"T.    c #0E0E0E",
+"U.    c #1B1A1A",
+"V.    c #4B4B4B",
+"W.    c #030303",
+"X.    c #262525",
+"                  . . . + @ # $ %         ",
+"                . . . & * = - ; > ,       ",
+"            . . . . ' ) ! ~ { ] ^ / (     ",
+"          . . . . _ : < ^ [ } | 1 2 3 (   ",
+"        . . . . 4 : 5 6 7 * 8 9 0 a : b   ",
+"    . . . . . c d e f g h i j 0 k l m n   ",
+"  . . . . . o j p q r s t u v w x y : z   ",
+". . . . . A i ^ B C D E F G H I J K L M   ",
+". . . . N O P H Q / R S T ] U V 2 W X Y   ",
+". Z ` ' O S  ...+.@.#.$.%., &.*.L ( =.Y   ",
+"-.;.u >.S ,.'.).X !.~.{.].^.q z /...) Y   ",
+"  (._.:.x <.<.[.C }.0 |.1.2.3.4.5.6.7.8.  ",
+"    9.0.L a.|.b.:.c.d.( e.f.z g.h.b M i.  ",
+"    j.@.k.l.m.n.1 o.p.q.r.s.t.u.v.m.w.7.  ",
+"          x.Q y.z.A.B.C.D.E.j.F.G.w.w.    ",
+"            H.n I.J.K.L.q.M.j N.w.w.O.    ",
+"              P.t.I.*.Q.R.S.T.w.w.U.      ",
+"                  r.V.l.W.w.w.Y X.        "};
diff --git a/terminatorX/src/gui_icons/tx_grab.xpm b/terminatorX/src/gui_icons/tx_grab.xpm
new file mode 100644 (file)
index 0000000..ff2c09d
--- /dev/null
@@ -0,0 +1,177 @@
+/* XPM */
+static char * tx_grab_xpm[] = {
+"21 18 156 2",
+"      c None",
+".     c #C8C6C6",
+"+     c #DBD9D9",
+"@     c #C9C6C6",
+"#     c #B5B2B2",
+"$     c #B1AFAF",
+"%     c #ACAAAA",
+"&     c #8A8787",
+"*     c #7A7777",
+"=     c #D5D3D3",
+"-     c #D6D3D3",
+";     c #C6C3C3",
+">     c #AEABAB",
+",     c #A9A6A6",
+"'     c #898686",
+")     c #646262",
+"!     c #787575",
+"~     c #9C9B9B",
+"{     c #6A6969",
+"]     c #201F1F",
+"^     c #000000",
+"/     c #323131",
+"(     c #827F7F",
+"_     c #636161",
+":     c #575555",
+"<     c #676464",
+"[     c #7F7E7E",
+"}     c #474646",
+"|     c #070707",
+"1     c #111010",
+"2     c #484747",
+"3     c #535151",
+"4     c #4B4848",
+"5     c #6A6666",
+"6     c #6D6B6B",
+"7     c #757272",
+"8     c #736F6F",
+"9     c #6D6A6A",
+"0     c #3E3C3C",
+"a     c #BAB7B7",
+"b     c #B9B4B4",
+"c     c #9C9999",
+"d     c #B1ACAC",
+"e     c #908C8C",
+"f     c #474545",
+"g     c #4B4949",
+"h     c #4D4A4A",
+"i     c #858080",
+"j     c #696565",
+"k     c #5C5858",
+"l     c #BAB6B6",
+"m     c #ADA8A8",
+"n     c #999494",
+"o     c #ACA7A7",
+"p     c #4D4B4B",
+"q     c #464343",
+"r     c #868181",
+"s     c #6D6868",
+"t     c #827D7D",
+"u     c #686464",
+"v     c #444242",
+"w     c #575252",
+"x     c #B4B0B0",
+"y     c #A5A1A1",
+"z     c #AEAAAA",
+"A     c #7C7878",
+"B     c #797575",
+"C     c #080808",
+"D     c #736E6E",
+"E     c #7B7777",
+"F     c #6C6868",
+"G     c #696464",
+"H     c #5A5656",
+"I     c #1A1919",
+"J     c #333030",
+"K     c #918D8D",
+"L     c #8D8A8A",
+"M     c #7C7979",
+"N     c #767272",
+"O     c #706C6C",
+"P     c #787474",
+"Q     c #666262",
+"R     c #635E5E",
+"S     c #060606",
+"T     c #8A8686",
+"U     c #767373",
+"V     c #080707",
+"W     c #6D6969",
+"X     c #757070",
+"Y     c #676262",
+"Z     c #635F5F",
+"`     c #605B5B",
+" .    c #878383",
+"..    c #6A6565",
+"+.    c #726D6D",
+"@.    c #645F5F",
+"#.    c #5D5858",
+"$.    c #060505",
+"%.    c #696666",
+"&.    c #413F3F",
+"*.    c #181717",
+"=.    c #373434",
+"-.    c #040303",
+";.    c #8B8787",
+">.    c #888383",
+",.    c #706D6D",
+"'.    c #6E6969",
+").    c #5B5757",
+"!.    c #7B7575",
+"~.    c #857E7E",
+"{.    c #5F5A5A",
+"].    c #5A5555",
+"^.    c #565151",
+"/.    c #191818",
+"(.    c #191717",
+"_.    c #9D9898",
+":.    c #9E9898",
+"<.    c #847F7F",
+"[.    c #817C7C",
+"}.    c #7D7777",
+"|.    c #797373",
+"1.    c #767070",
+"2.    c #726C6C",
+"3.    c #6F6868",
+"4.    c #6A6464",
+"5.    c #665F5F",
+"6.    c #373333",
+"7.    c #2A2727",
+"8.    c #7E7A7A",
+"9.    c #7B7676",
+"0.    c #6B6767",
+"a.    c #686363",
+"b.    c #646060",
+"c.    c #625D5D",
+"d.    c #5E5959",
+"e.    c #5B5656",
+"f.    c #585353",
+"g.    c #554F4F",
+"h.    c #514C4C",
+"i.    c #050505",
+"j.    c #656161",
+"k.    c #4C4949",
+"l.    c #151414",
+"m.    c #141313",
+"n.    c #131212",
+"o.    c #0C0B0B",
+"p.    c #0B0A0A",
+"q.    c #0F0E0E",
+"r.    c #121010",
+"s.    c #121111",
+"t.    c #100F0F",
+"u.    c #040404",
+"v.    c #575454",
+"w.    c #312F2F",
+"x.    c #010101",
+"y.    c #100E0E",
+"                                          ",
+"  . + @ # $ % & *                         ",
+"  = - ; $ > , ' ) !                       ",
+"  ~ { ] ^ ^ / ( _ : <                     ",
+"  [ } | ^ ^ 1 2 ( 3 4 5                   ",
+"            6 7 8 9 ] 0                   ",
+"        a b c d e f g h i j k             ",
+"      a l m n o p q r s t u v w           ",
+"      x y z A B C D E F G H I J           ",
+"      K L M B N C O P G Q R S S           ",
+"      L T B U 8 V W X Y Z ` S S           ",
+"      T  .U 8 O | ..+.@.` #.S $.          ",
+"      %.&.^ ^ ^ ^ *.=.^ ^ ^ ^ -.          ",
+"      ;.>.,.'.5 ).!.~.{.].^./.(.          ",
+"      _.:.<.[.}.|.1.2.3.4.5.6.7.          ",
+"      8.9.0.a.b.c.d.e.f.g.h.i.i.          ",
+"      j.k.l.m.n.o.p.q.r.s.t.^ u.          ",
+"      v.w.x.^ ^ ^ ^ ^ ^ ^ ^ ^ y.          "};
diff --git a/terminatorX/src/gui_icons/tx_minimize.xpm b/terminatorX/src/gui_icons/tx_minimize.xpm
new file mode 100644 (file)
index 0000000..e2dd653
--- /dev/null
@@ -0,0 +1,74 @@
+/* XPM */
+static char * tx_minimize_xpm[] = {
+"12 12 59 1",
+"      c None",
+".     c #DFB200",
+"+     c #BE9800",
+"@     c #F5C400",
+"#     c #F9C700",
+"$     c #B38F00",
+"%     c #896D00",
+"&     c #EBBC00",
+"*     c #FCC900",
+"=     c #A18000",
+"-     c #564400",
+";     c #F7C500",
+">     c #FDCA00",
+",     c #9E7E00",
+"'     c #3A2E00",
+")     c #655000",
+"!     c #F0C000",
+"~     c #F6C400",
+"{     c #A88600",
+"]     c #4A3B00",
+"^     c #3D3000",
+"/     c #FAC800",
+"(     c #D1A700",
+"_     c #AF8C00",
+":     c #775F00",
+"<     c #392D00",
+"[     c #5F4C00",
+"}     c #F3C200",
+"|     c #EABB00",
+"1     c #BA9400",
+"2     c #524100",
+"3     c #F1C000",
+"4     c #C9A000",
+"5     c #B08C00",
+"6     c #7C6300",
+"7     c #342900",
+"8     c #534200",
+"9     c #E5B700",
+"0     c #E6B800",
+"a     c #D2A800",
+"b     c #9A7B00",
+"c     c #997A00",
+"d     c #846900",
+"e     c #362B00",
+"f     c #2A2100",
+"g     c #C69E00",
+"h     c #AB8800",
+"i     c #755D00",
+"j     c #2F2500",
+"k     c #1A1400",
+"l     c #151000",
+"m     c #020100",
+"n     c #060400",
+"o     c #AE8B00",
+"p     c #826800",
+"q     c #403300",
+"r     c #100C00",
+"s     c #070500",
+"t     c #1D1700",
+"     .+     ",
+"    @#$%    ",
+"   &**=-    ",
+"   #;>,')   ",
+"  !~~!{]^   ",
+"  /@#(_:<[  ",
+" }@;|1$=2<  ",
+" ;3~4$$5678 ",
+"9|0a,bbcdef ",
+"ghijkkkklmn ",
+"opqrsssssst ",
+"            "};
diff --git a/terminatorX/src/gui_icons/tx_play.xpm b/terminatorX/src/gui_icons/tx_play.xpm
new file mode 100644 (file)
index 0000000..d2b297b
--- /dev/null
@@ -0,0 +1,230 @@
+/* XPM */
+static char * tx_play_xpm[] = {
+"21 18 209 2",
+"      c None",
+".     c #39C40A",
+"+     c #43E40C",
+"@     c #48F60D",
+"#     c #49F80E",
+"$     c #46E610",
+"%     c #41D011",
+"&     c #38AF11",
+"*     c #3DD10B",
+"=     c #46F00D",
+"-     c #49F211",
+";     c #48E613",
+">     c #48E016",
+",     c #4BE019",
+"'     c #47CD1A",
+")     c #3FB019",
+"!     c #268407",
+"~     c #2A8F07",
+"{     c #3CC70D",
+"]     c #42D511",
+"^     c #46DB14",
+"/     c #49DE18",
+"(     c #4CDE1B",
+"_     c #4EDB1E",
+":     c #50D921",
+"<     c #4ECD22",
+"[     c #47B621",
+"}     c #6FB757",
+"|     c #1F6B06",
+"1     c #32A40C",
+"2     c #37AB0F",
+"3     c #38AA11",
+"4     c #41BD16",
+"5     c #49D11C",
+"6     c #4FD921",
+"7     c #50D524",
+"8     c #52D126",
+"9     c #54D02A",
+"0     c #54C92C",
+"a     c #50B82B",
+"b     c #469D28",
+"c     c #237807",
+"d     c #1D6007",
+"e     c #2E930D",
+"f     c #37A811",
+"g     c #36A012",
+"h     c #379E15",
+"i     c #389C17",
+"j     c #3FA91B",
+"k     c #4BBF22",
+"l     c #52CD28",
+"m     c #56CF2C",
+"n     c #55C72E",
+"o     c #57C430",
+"p     c #58C133",
+"q     c #56B634",
+"r     c #4D9E30",
+"s     c #267E09",
+"t     c #1F6308",
+"u     c #30950E",
+"v     c #37A512",
+"w     c #153D07",
+"x     c #040C01",
+"y     c #020600",
+"z     c #1C490C",
+"A     c #36891A",
+"B     c #3E981F",
+"C     c #48A826",
+"D     c #52BA2E",
+"E     c #5ABE36",
+"F     c #5BBC39",
+"G     c #5DB83C",
+"H     c #5AAD3C",
+"I     c #539A39",
+"J     c #29840A",
+"K     c #216609",
+"L     c #339811",
+"M     c #38A415",
+"N     c #123207",
+"O     c #000000",
+"P     c #091504",
+"Q     c #285B16",
+"R     c #3F8B24",
+"S     c #499D2C",
+"T     c #55B034",
+"U     c #5CB83B",
+"V     c #5EB53E",
+"W     c #549D39",
+"X     c #529539",
+"Y     c #4F8938",
+"Z     c #29810C",
+"`     c #21640A",
+" .    c #339512",
+"..    c #39A216",
+"+.    c #1E520C",
+"@.    c #1C4B0C",
+"#.    c #183E0B",
+"$.    c #020401",
+"%.    c #1D4011",
+"&.    c #3D8025",
+"*.    c #458B2B",
+"=.    c #498D30",
+"-.    c #55A03A",
+";.    c #3B6B29",
+">.    c #3C6A2B",
+",.    c #4E8539",
+"'.    c #297D0D",
+").    c #21620B",
+"!.    c #339113",
+"~.    c #3AA017",
+"{.    c #1E510D",
+"].    c #1F500E",
+"^.    c #3E991F",
+"/.    c #43A123",
+"(.    c #449E25",
+"_.    c #3C8822",
+":.    c #3D8524",
+"<.    c #418928",
+"[.    c #45882D",
+"}.    c #478630",
+"|.    c #42792E",
+"1.    c #26431B",
+"2.    c #233D1A",
+"3.    c #457334",
+"4.    c #2A7E0E",
+"5.    c #22610D",
+"6.    c #349115",
+"7.    c #3C9F1A",
+"8.    c #225510",
+"9.    c #4DBA27",
+"0.    c #54C42D",
+"a.    c #57C531",
+"b.    c #59C334",
+"c.    c #59BD36",
+"d.    c #57B136",
+"e.    c #4B9430",
+"f.    c #427F2C",
+"g.    c #2A4E1D",
+"h.    c #080E05",
+"i.    c #020402",
+"j.    c #121E0D",
+"k.    c #416932",
+"l.    c #2B7D10",
+"m.    c #22600D",
+"n.    c #369016",
+"o.    c #3C9D1B",
+"p.    c #337F18",
+"q.    c #45A722",
+"r.    c #57CD2E",
+"s.    c #56C630",
+"t.    c #58C132",
+"u.    c #56B934",
+"v.    c #4D9F30",
+"w.    c #42832A",
+"x.    c #294F1B",
+"y.    c #203418",
+"z.    c #487138",
+"A.    c #2B7810",
+"B.    c #215C0E",
+"C.    c #338617",
+"D.    c #3D9C1D",
+"E.    c #47AD24",
+"F.    c #54C72C",
+"G.    c #58CA31",
+"H.    c #56BF31",
+"I.    c #4FA92F",
+"J.    c #428A29",
+"K.    c #2A541B",
+"L.    c #091105",
+"M.    c #111C0C",
+"N.    c #375929",
+"O.    c #2A7411",
+"P.    c #20540E",
+"Q.    c #2E7616",
+"R.    c #47A925",
+"S.    c #4BAC28",
+"T.    c #4BA82B",
+"U.    c #439027",
+"V.    c #2F641D",
+"W.    c #0E1C08",
+"X.    c #101D0B",
+"Y.    c #365B27",
+"Z.    c #2D7713",
+"`.    c #193F0C",
+" +    c #2A6814",
+".+    c #3F9620",
+"++    c #3F9422",
+"@+    c #265417",
+"#+    c #081205",
+"$+    c #0E1B0A",
+"%+    c #355D25",
+"&+    c #2F7B16",
+"*+    c #183A0C",
+"=+    c #1A3D0E",
+"-+    c #0B1A06",
+";+    c #091106",
+">+    c #2C511E",
+",+    c #457C31",
+"'+    c #348218",
+")+    c #112A08",
+"!+    c #0E1D09",
+"~+    c #305D20",
+"{+    c #729F63",
+"]+    c #265B14",
+"^+    c #0D1F07",
+"/+    c #010200",
+"(+    c #0B1907",
+"_+    c #275018",
+":+    c #3F7F28",
+"                                          ",
+"  . + @ # $ % &                           ",
+"  * * = - ; > , ' )                       ",
+"  ! ~ { ] ^ / ( _ : < [ }                 ",
+"  ! | 1 2 3 4 5 6 7 8 9 0 a b             ",
+"  c d e f g h i j k l m n o p q r         ",
+"  s t u v w x y z A B C D p E F G H I     ",
+"  J K L M N O O O O P Q R S T U V W X Y   ",
+"  Z `  ...+.@.#.O O O $.%.&.*.=.-.;.>.,.  ",
+"  '.).!.~.{.].^./.(._.:.<.*.[.}.|.1.2.3.  ",
+"  4.5.6.7.].8.9.0.a.b.c.d.e.f.g.h.i.j.k.  ",
+"  l.m.n.o.p.q.r.s.t.u.v.w.x.h.O O O y.z.  ",
+"  A.B.C.D.E.F.G.H.I.J.K.L.O O O M.N.      ",
+"  O.P.Q.^.R.S.T.U.V.W.O O O X.Y.          ",
+"  Z.`. +.+++_.@+#+O O O $+%+              ",
+"  &+`.*+=+-+O O O O ;+>+,+                ",
+"  '+)+O O O O O !+~+{+                    ",
+"    ]+^+/+(+_+:+                          "};
diff --git a/terminatorX/src/gui_icons/tx_power.xpm b/terminatorX/src/gui_icons/tx_power.xpm
new file mode 100644 (file)
index 0000000..6f929e9
--- /dev/null
@@ -0,0 +1,166 @@
+/* XPM */
+static char * tx_power_xpm[] = {
+"21 18 145 2",
+"      c None",
+".     c #CA0505",
+"+     c #C80505",
+"@     c #A80505",
+"#     c #840404",
+"$     c #760303",
+"%     c #C20505",
+"&     c #C30505",
+"*     c #A30505",
+"=     c #570202",
+"-     c #430202",
+";     c #D12222",
+">     c #B10505",
+",     c #BF0505",
+"'     c #980404",
+")     c #8E0404",
+"!     c #0F0000",
+"~     c #470202",
+"{     c #970505",
+"]     c #7D2020",
+"^     c #CC0505",
+"/     c #880404",
+"(     c #C10505",
+"_     c #940404",
+":     c #850404",
+"<     c #070000",
+"[     c #6B0303",
+"}     c #AA0505",
+"|     c #4F0202",
+"1     c #670303",
+"2     c #C50505",
+"3     c #920404",
+"4     c #830404",
+"5     c #010000",
+"6     c #6F0303",
+"7     c #A40505",
+"8     c #4E0202",
+"9     c #4C0202",
+"0     c #630303",
+"a     c #D22222",
+"b     c #C90505",
+"c     c #C60505",
+"d     c #030000",
+"e     c #860404",
+"f     c #800404",
+"g     c #020000",
+"h     c #760404",
+"i     c #820404",
+"j     c #650303",
+"k     c #4A0202",
+"l     c #480303",
+"m     c #702121",
+"n     c #C40505",
+"o     c #B30505",
+"p     c #4B0202",
+"q     c #000000",
+"r     c #8C0404",
+"s     c #7E0404",
+"t     c #5A0303",
+"u     c #790404",
+"v     c #6E0404",
+"w     c #610404",
+"x     c #180101",
+"y     c #350202",
+"z     c #9C0404",
+"A     c #990404",
+"B     c #0E0000",
+"C     c #890404",
+"D     c #7B0404",
+"E     c #2D0101",
+"F     c #6C0404",
+"G     c #670404",
+"H     c #6D0404",
+"I     c #9B2121",
+"J     c #960404",
+"K     c #620303",
+"L     c #500202",
+"M     c #3E0202",
+"N     c #130000",
+"O     c #6F0404",
+"P     c #710505",
+"Q     c #6B0404",
+"R     c #742121",
+"S     c #8D0404",
+"T     c #970404",
+"U     c #0A0000",
+"V     c #150000",
+"W     c #3F0202",
+"X     c #790505",
+"Y     c #7C0505",
+"Z     c #680404",
+"`     c #600404",
+" .    c #972121",
+"..    c #910404",
+"+.    c #6D0303",
+"@.    c #240101",
+"#.    c #230101",
+"$.    c #700303",
+"%.    c #730404",
+"&.    c #7C0404",
+"*.    c #920606",
+"=.    c #830606",
+"-.    c #870606",
+";.    c #660404",
+">.    c #6F2121",
+",.    c #7A0404",
+"'.    c #520202",
+").    c #5E0303",
+"!.    c #770404",
+"~.    c #980606",
+"{.    c #960606",
+"].    c #8F0606",
+"^.    c #880606",
+"/.    c #630404",
+"(.    c #6E0303",
+"_.    c #6C0303",
+":.    c #640303",
+"<.    c #5F0303",
+"[.    c #6A0303",
+"}.    c #7D0404",
+"|.    c #860606",
+"1.    c #8D0606",
+"2.    c #750505",
+"3.    c #742020",
+"4.    c #400202",
+"5.    c #600303",
+"6.    c #740404",
+"7.    c #720404",
+"8.    c #7D0505",
+"9.    c #900606",
+"0.    c #8C0606",
+"a.    c #760505",
+"b.    c #311E1E",
+"c.    c #3C0202",
+"d.    c #580303",
+"e.    c #690404",
+"f.    c #640404",
+"g.    c #160101",
+"h.    c #3B0202",
+"i.    c #0B0000",
+"j.    c #692020",
+"k.    c #290101",
+"l.    c #752121",
+"m.    c #620404",
+"n.    c #722121",
+"              . + @ # $                   ",
+"              % & * = -                   ",
+"          ; > , ' ) ! ~ { ]               ",
+"        ^ + / ( _ : < [ } | 1             ",
+"      ^ + 2 ~ ) 3 4 5 6 7 8 9 0           ",
+"    a b c % d e ) f g h i j k l m         ",
+"    n o , p q $ r s g t u v w x y         ",
+"    z A 6 B q 6 C D g E F G H g g         ",
+"  I A J K q q L M q q N O P Q g g R       ",
+"  S T _ K U V t E q q W X Y Z g g `       ",
+"   ._ ..+.@.#.$.h %.&.*.=.-.;.g g >.      ",
+"    ..) ,.'.W ).!.: ~.{.].^./.g g         ",
+"    (._.:.%.<.[.}.|.1.*.].2.x q q         ",
+"    3.4.W 5.6.7.8.-.9.0.a.x q q b.        ",
+"      ).M c.d.O F e.G f.x q q g.          ",
+"        t h.i.q q q q q q q g.            ",
+"          j.k.q q q q q q b.              ",
+"                l.m.n.                    "};
diff --git a/terminatorX/src/gui_icons/tx_record.xpm b/terminatorX/src/gui_icons/tx_record.xpm
new file mode 100644 (file)
index 0000000..666880a
--- /dev/null
@@ -0,0 +1,208 @@
+/* XPM */
+static char * tx_record_xpm[] = {
+"21 18 187 2",
+"      c None",
+".     c #B23535",
+"+     c #A21515",
+"@     c #990909",
+"#     c #9A1818",
+"$     c #A53A3A",
+"%     c #E51313",
+"&     c #E40707",
+"*     c #C50808",
+"=     c #C10B0B",
+"-     c #BC0D0D",
+";     c #B70F0F",
+">     c #B31010",
+",     c #910F0F",
+"'     c #851C1C",
+")     c #C45353",
+"!     c #E60505",
+"~     c #E10707",
+"{     c #D80909",
+"]     c #C20A0A",
+"^     c #BD0C0C",
+"/     c #B90E0E",
+"(     c #B40F0F",
+"_     c #AF1111",
+":     c #901111",
+"<     c #620D0D",
+"[     c #781111",
+"}     c #A55F5F",
+"|     c #E70404",
+"1     c #E30606",
+"2     c #DD0808",
+"3     c #D70A0A",
+"4     c #980909",
+"5     c #940B0B",
+"6     c #910C0C",
+"7     c #8D0E0E",
+"8     c #890F0F",
+"9     c #7C0F0F",
+"0     c #600D0D",
+"a     c #5D0E0E",
+"b     c #711313",
+"c     c #E91212",
+"d     c #E40606",
+"e     c #DF0808",
+"f     c #580505",
+"g     c #150101",
+"h     c #000000",
+"i     c #230303",
+"j     c #590B0B",
+"k     c #7A1111",
+"l     c #761212",
+"m     c #5B0F0F",
+"n     c #581010",
+"o     c #732222",
+"p     c #DB0505",
+"q     c #C30606",
+"r     c #4F0404",
+"s     c #040000",
+"t     c #290505",
+"u     c #540C0C",
+"v     c #741313",
+"w     c #6F1414",
+"x     c #250707",
+"y     c #410E0E",
+"z     c #B73434",
+"A     c #A70505",
+"B     c #A30707",
+"C     c #7F0606",
+"D     c #140101",
+"E     c #060000",
+"F     c #4E0707",
+"G     c #720D0D",
+"H     c #5D0C0C",
+"I     c #460A0A",
+"J     c #530D0D",
+"K     c #691313",
+"L     c #751616",
+"M     c #0B0202",
+"N     c #854545",
+"O     c #A91212",
+"P     c #A40606",
+"Q     c #A00707",
+"R     c #720606",
+"S     c #080000",
+"T     c #570808",
+"U     c #8A0F0F",
+"V     c #851010",
+"W     c #7E1111",
+"X     c #711111",
+"Y     c #6A1212",
+"Z     c #711515",
+"`     c #721717",
+" .    c #0A0202",
+"..    c #6F2828",
+"+.    c #A10606",
+"@.    c #A10707",
+"#.    c #9D0909",
+"$.    c #730808",
+"%.    c #210303",
+"&.    c #800D0D",
+"*.    c #861010",
+"=.    c #831212",
+"-.    c #811414",
+";.    c #8C1717",
+">.    c #7A1616",
+",.    c #7E1919",
+"'.    c #6F1818",
+").    c #641C1C",
+"!.    c #A41515",
+"~.    c #9E0808",
+"{.    c #9A0A0A",
+"].    c #800A0A",
+"^.    c #350404",
+"/.    c #330505",
+"(.    c #830F0F",
+"_.    c #831111",
+":.    c #801313",
+"<.    c #891515",
+"[.    c #9C1B1B",
+"}.    c #871A1A",
+"|.    c #8C1E1E",
+"1.    c #6C1919",
+"2.    c #692A2A",
+"3.    c #AE3737",
+"4.    c #9B0A0A",
+"5.    c #970B0B",
+"6.    c #8E0C0C",
+"7.    c #680A0A",
+"8.    c #540909",
+"9.    c #730E0E",
+"0.    c #891414",
+"a.    c #941717",
+"b.    c #A61D1D",
+"c.    c #A21F1F",
+"d.    c #971F1F",
+"e.    c #912121",
+"f.    c #691A1A",
+"g.    c #0A0303",
+"h.    c #7C4949",
+"i.    c #720808",
+"j.    c #6E0909",
+"k.    c #690A0A",
+"l.    c #880F0F",
+"m.    c #750E0E",
+"n.    c #811212",
+"o.    c #931616",
+"p.    c #9A1919",
+"q.    c #9F1D1D",
+"r.    c #A02020",
+"s.    c #992323",
+"t.    c #7D1F1F",
+"u.    c #1A0707",
+"v.    c #030101",
+"w.    c #701616",
+"x.    c #3C0505",
+"y.    c #3A0606",
+"z.    c #640C0C",
+"A.    c #871212",
+"B.    c #921818",
+"C.    c #9A1C1C",
+"D.    c #982121",
+"E.    c #7E1E1E",
+"F.    c #241616",
+"G.    c #630A0A",
+"H.    c #390606",
+"I.    c #380707",
+"J.    c #5B0D0D",
+"K.    c #7C1414",
+"L.    c #781515",
+"M.    c #741616",
+"N.    c #701717",
+"O.    c #1B0707",
+"P.    c #170808",
+"Q.    c #AD5B5B",
+"R.    c #5E0C0C",
+"S.    c #360707",
+"T.    c #020000",
+"U.    c #180808",
+"V.    c #8E6767",
+"W.    c #621B1B",
+"X.    c #250606",
+"Y.    c #251616",
+"Z.    c #8D4343",
+"`.    c #772525",
+" +    c #6B1919",
+".+    c #702828",
+"++    c #814747",
+"                                          ",
+"              . + @ # $                   ",
+"          % & * = - ; > , '               ",
+"      ) ! ~ { ] ^ / ( _ : < [ }           ",
+"      | 1 2 3 4 5 6 7 8 9 0 a b           ",
+"    c d e 3 f g h h i j k l m n o         ",
+"    p q { r h h h h s t u v w x y         ",
+"  z A B C D h E F G H I J K L M M N       ",
+"  O P Q R S S T U V W X Y Z ` M  ...      ",
+"  +.@.#.$.g %.&.*.=.-.;.>.,.'.M  .).      ",
+"  !.~.{.].^./.(._.:.<.[.}.|.1. . .2.      ",
+"  3.4.5.6.7.8.9.0.a.b.c.d.e.f. .g.h.      ",
+"    i.j.k.l.m.n.o.p.q.r.s.t.u.h v.        ",
+"    w.x.y.z.A.<.B.C.r.D.E.u.h h F.        ",
+"      G.H.I.J.K.L.M.N.1.O.h h P.          ",
+"      Q.R.S.T.h h h h h h h U.V.          ",
+"          W.X.h h h h h h Y.              ",
+"              Z.`. +.+++                  "};
diff --git a/terminatorX/src/gui_icons/tx_reload.xpm b/terminatorX/src/gui_icons/tx_reload.xpm
new file mode 100644 (file)
index 0000000..ecd1f3f
--- /dev/null
@@ -0,0 +1,112 @@
+/* XPM */
+static char * tx_reload_xpm[] = {
+"15 12 97 2",
+"      c None",
+".     c #19E01C",
+"+     c #0DEA11",
+"@     c #08F10D",
+"#     c #08EF0C",
+"$     c #08ED0B",
+"%     c #08E70B",
+"&     c #06CB09",
+"*     c #0CB60F",
+"=     c #2ABA2D",
+"-     c #2DF331",
+";     c #09EE0D",
+">     c #09FF0E",
+",     c #09FB0E",
+"'     c #08EC0B",
+")     c #07E00A",
+"!     c #06C209",
+"~     c #049A07",
+"{     c #07A70A",
+"]     c #2EB030",
+"^     c #09FE0E",
+"/     c #059907",
+"(     c #024A03",
+"_     c #024403",
+":     c #036E05",
+"<     c #05A008",
+"[     c #049807",
+"}     c #049106",
+"|     c #0A9E0D",
+"1     c #06CC0A",
+"2     c #08F60D",
+"3     c #048C07",
+"4     c #000700",
+"5     c #011401",
+"6     c #012C02",
+"7     c #012502",
+"8     c #012D02",
+"9     c #023703",
+"0     c #024103",
+"a     c #048B06",
+"b     c #1A9D1C",
+"c     c #06D00A",
+"d     c #06CE0A",
+"e     c #047A06",
+"f     c #023D03",
+"g     c #047C06",
+"h     c #059F07",
+"i     c #05A208",
+"j     c #06BB09",
+"k     c #06BD09",
+"l     c #06B709",
+"m     c #05A307",
+"n     c #047305",
+"o     c #048306",
+"p     c #048006",
+"q     c #024F04",
+"r     c #048706",
+"s     c #05A908",
+"t     c #059407",
+"u     c #036305",
+"v     c #026405",
+"w     c #048C06",
+"x     c #025E04",
+"y     c #001701",
+"z     c #012602",
+"A     c #035A04",
+"B     c #024603",
+"C     c #06C60A",
+"D     c #05B809",
+"E     c #05A308",
+"F     c #047F06",
+"G     c #025304",
+"H     c #001601",
+"I     c #07A80A",
+"J     c #06C10A",
+"K     c #07C309",
+"L     c #07D00A",
+"M     c #06D20A",
+"N     c #06BC0A",
+"O     c #035704",
+"P     c #012401",
+"Q     c #012802",
+"R     c #031304",
+"S     c #0B5B0C",
+"T     c #048806",
+"U     c #05AB08",
+"V     c #05A708",
+"W     c #025804",
+"X     c #000A00",
+"Y     c #0D1F0D",
+"Z     c #252C25",
+"`     c #0A580B",
+" .    c #000F00",
+"..    c #000000",
+"+.    c #000200",
+"@.    c #012501",
+"#.    c #0D740F",
+"                              ",
+"    . + @ # $ % & * =         ",
+"  - ; > , ' % ) ! ~ { ]       ",
+"  ; ^ > / ( _ : < [ } |       ",
+"  1 2 3 4 5 6 7 8 9 0 a b     ",
+"  c d e f g h i j k l m n     ",
+"  3 o p q r s t u v w x y     ",
+"  z A : B o j C D E F G H     ",
+"    I k J K L M N O P Q R     ",
+"    S B T U U V W 4 X Y Z     ",
+"      `  .......+.@.#.        ",
+"                              "};
diff --git a/terminatorX/src/gui_icons/tx_sequencer.xpm b/terminatorX/src/gui_icons/tx_sequencer.xpm
new file mode 100644 (file)
index 0000000..4392eb9
--- /dev/null
@@ -0,0 +1,169 @@
+/* XPM */
+static char * tx_sequencer_xpm[] = {
+"21 18 148 2",
+"      c None",
+".     c #FFFFFF",
+"+     c #D7D7D7",
+"@     c #D1D0D0",
+"#     c #C7C7C7",
+"$     c #F8F8F8",
+"%     c #F2F1F1",
+"&     c #B9B9B9",
+"*     c #C8C8C8",
+"=     c #C5C5C5",
+"-     c #BFBFBF",
+";     c #B6B5B5",
+">     c #F2F2F2",
+",     c #EBEBEB",
+"'     c #323232",
+")     c #000000",
+"!     c #6C6C6C",
+"~     c #ECEBEB",
+"{     c #B3B3B3",
+"]     c #ADACAC",
+"^     c #A5A4A4",
+"/     c #ECECEC",
+"(     c #E6E5E5",
+"_     c #121212",
+":     c #111111",
+"<     c #626262",
+"[     c #D4D4D4",
+"}     c #A2A1A1",
+"|     c #9C9B9B",
+"1     c #929191",
+"2     c #7F7E7E",
+"3     c #E6E6E6",
+"4     c #DFDEDE",
+"5     c #030303",
+"6     c #8F8E8E",
+"7     c #434242",
+"8     c #101010",
+"9     c #0F0F0F",
+"0     c #585858",
+"a     c #BEBDBD",
+"b     c #5F5F5F",
+"c     c #454444",
+"d     c #E1DFDF",
+"e     c #D9D9D9",
+"f     c #B4B4B4",
+"g     c #AEADAD",
+"h     c #818080",
+"i     c #3C3B3B",
+"j     c #4E4E4E",
+"k     c #7D7B7B",
+"l     c #020202",
+"m     c #F4F4F4",
+"n     c #AFAEAE",
+"o     c #A8A7A7",
+"p     c #A3A1A1",
+"q     c #EEEDED",
+"r     c #A9A8A8",
+"s     c #A3A2A2",
+"t     c #969595",
+"u     c #9D9C9C",
+"v     c #969494",
+"w     c #C3C3C3",
+"x     c #BDBCBC",
+"y     c #B7B6B6",
+"z     c #A3A3A3",
+"A     c #979696",
+"B     c #908F8F",
+"C     c #908E8E",
+"D     c #010101",
+"E     c #C4C3C3",
+"F     c #B7B7B7",
+"G     c #B1B0B0",
+"H     c #9E9D9D",
+"I     c #989696",
+"J     c #919090",
+"K     c #8B8A8A",
+"L     c #8A8888",
+"M     c #020101",
+"N     c #E4E4E4",
+"O     c #DDDDDD",
+"P     c #C5C4C4",
+"Q     c #BEBEBE",
+"R     c #B8B7B7",
+"S     c #B2B1B1",
+"T     c #ABAAAA",
+"U     c #989797",
+"V     c #CBCACA",
+"W     c #C3C0C0",
+"X     c #B0AFAF",
+"Y     c #A4A1A1",
+"Z     c #A6A6A6",
+"`     c #929292",
+" .    c #B9B8B8",
+"..    c #B2B2B2",
+"+.    c #ACABAB",
+"@.    c #383838",
+"#.    c #CDCBCB",
+"$.    c #C2C1C1",
+"%.    c #A9A7A7",
+"&.    c #A09E9E",
+"*.    c #989898",
+"=.    c #616060",
+"-.    c #5E5D5D",
+";.    c #898888",
+">.    c #272727",
+",.    c #8C8B8B",
+"'.    c #C4C2C2",
+").    c #BBB9B9",
+"!.    c #7A7979",
+"~.    c #747272",
+"{.    c #6D6C6C",
+"].    c #8F8F8F",
+"^.    c #5B5A5A",
+"/.    c #1C1B1B",
+"(.    c #BFBEBE",
+"_.    c #B4B2B2",
+":.    c #7B7979",
+"<.    c #747373",
+"[.    c #6E6D6D",
+"}.    c #686666",
+"|.    c #858585",
+"1.    c #3E3E3E",
+"2.    c #232323",
+"3.    c #8F8D8D",
+"4.    c #949393",
+"5.    c #8E8D8D",
+"6.    c #7C7A7A",
+"7.    c #757474",
+"8.    c #6F6D6D",
+"9.    c #686767",
+"0.    c #626060",
+"a.    c #6E6C6C",
+"b.    c #696868",
+"c.    c #5B5959",
+"d.    c #706E6E",
+"e.    c #636161",
+"f.    c #161515",
+"g.    c #838282",
+"h.    c #605F5F",
+"i.    c #393838",
+"j.    c #515050",
+"k.    c #646262",
+"l.    c #161616",
+"m.    c #676666",
+"n.    c #575656",
+"o.    c #363535",
+"p.    c #090909",
+"q.    c #121111",
+"          . . + @ #                       ",
+"          $ % & * = - ;                   ",
+"          > , ' ) ! ~ { ] ^               ",
+"          / ( ) ) _ : < [ } | 1 2         ",
+"          3 4 5 5 6 7 8 9 0 a b c         ",
+"          d e 5 5 f g h i j k l l         ",
+"    . . m . . 5 5 n o } | p | l l         ",
+"  . . . q . . 5 l r s | t u v l l         ",
+". . . . w x y l l z u A B A C l D         ",
+". . . E a F G l l H I J K B L M D         ",
+"N O P Q R S T l l U V W H X Y D D         ",
+"T Z `  ...+.@.) ) #.$.G I %.&.D D         ",
+"*.=.-.;.] >.) ) ,.'.).S !.~.{.D D         ",
+"  ].^.8 ) ) ) /.(.r _.:.<.[.}.D D         ",
+"    |.1.) ) 2.3.4.5.6.7.8.9.0.D D         ",
+"              ;.a.b.c.d.b.e.f.) )         ",
+"              g.h.i i.j.k.l.) ) :         ",
+"                m.n.o.p.) ) ) q.          "};
diff --git a/terminatorX/src/gui_icons/tx_smaller_logo.xpm b/terminatorX/src/gui_icons/tx_smaller_logo.xpm
new file mode 100644 (file)
index 0000000..a2147f8
--- /dev/null
@@ -0,0 +1,459 @@
+/* XPM */
+static char * tx_smaller_logo_xpm[] = {
+"30 200 256 2",
+"      c None",
+".     c #020202",
+"+     c #8E8262",
+"@     c #262626",
+"#     c #4A4A4A",
+"$     c #E4E2E0",
+"%     c #817257",
+"&     c #CAB682",
+"*     c #9C9275",
+"=     c #726848",
+"-     c #59360B",
+";     c #1F1E1D",
+">     c #78502D",
+",     c #434242",
+"'     c #5E5E5E",
+")     c #AEA28A",
+"!     c #1A1A19",
+"~     c #6D4C2D",
+"{     c #332E1E",
+"]     c #171615",
+"^     c #997543",
+"/     c #D9D7D1",
+"(     c #5A543C",
+"_     c #8A663C",
+":     c #16120A",
+"<     c #422E17",
+"[     c #8E8368",
+"}     c #664B25",
+"|     c #866636",
+"1     c #7A725E",
+"2     c #3E2912",
+"3     c #B49969",
+"4     c #CAB286",
+"5     c #DAC276",
+"6     c #363635",
+"7     c #624B2A",
+"8     c #0F0E09",
+"9     c #828282",
+"0     c #BEA47C",
+"a     c #6E6652",
+"b     c #38220E",
+"c     c #8C7E63",
+"d     c #CDCAC3",
+"e     c #525252",
+"f     c #A3977B",
+"g     c #827E6E",
+"h     c #F1F1ED",
+"i     c #8F8672",
+"j     c #BAAE92",
+"k     c #6A3A0E",
+"l     c #5E4C2A",
+"m     c #776654",
+"n     c #645645",
+"o     c #3A2815",
+"p     c #523F21",
+"q     c #D2C19C",
+"r     c #4E3E1E",
+"s     c #5A5A5A",
+"t     c #79562D",
+"u     c #726044",
+"v     c #301F10",
+"w     c #969696",
+"x     c #706A52",
+"y     c #100903",
+"z     c #8A622E",
+"A     c #5A4D3B",
+"B     c #C6C5C3",
+"C     c #7E7763",
+"D     c #BAA672",
+"E     c #3E3E3E",
+"F     c #623E16",
+"G     c #9A9A86",
+"H     c #3E2E19",
+"I     c #433A34",
+"J     c #6E542F",
+"K     c #54463A",
+"L     c #8E8E8E",
+"M     c #291607",
+"N     c #929292",
+"O     c #6E5E3E",
+"P     c #B0A68C",
+"Q     c #78624A",
+"R     c #2B1A0A",
+"S     c #433A26",
+"T     c #0A0602",
+"U     c #362818",
+"V     c #B48A4E",
+"W     c #564D47",
+"X     c #D6BEA6",
+"Y     c #4E422E",
+"Z     c #C2B69A",
+"`     c #F7F6F4",
+" .    c #5C5344",
+"..    c #9A9A9A",
+"+.    c #261A0E",
+"@.    c #7B766A",
+"#.    c #775A39",
+"$.    c #AE6E26",
+"%.    c #626262",
+"&.    c #2A2012",
+"*.    c #565656",
+"=.    c #A6A6A6",
+"-.    c #3A2F20",
+";.    c #865A26",
+">.    c #524C40",
+",.    c #473318",
+"'.    c #C8BEA8",
+").    c #868685",
+"!.    c #6F6E6D",
+"~.    c #A18E6B",
+"{.    c #564127",
+"].    c #8F754C",
+"^.    c #BEB29A",
+"/.    c #4E4E4E",
+"(.    c #22160B",
+"_.    c #6D5236",
+":.    c #726658",
+"<.    c #4A4644",
+"[.    c #AA9E8A",
+"}.    c #322718",
+"|.    c #3A3A3A",
+"1.    c #B3A792",
+"2.    c #1E1209",
+"3.    c #060603",
+"4.    c #AC783A",
+"5.    c #968272",
+"6.    c #DEAE5E",
+"7.    c #DBCAAD",
+"8.    c #AAAAAA",
+"9.    c #EADBBE",
+"0.    c #A58556",
+"a.    c #7A7A7A",
+"b.    c #4E351D",
+"c.    c #938976",
+"d.    c #A27A3A",
+"e.    c #C0BEB8",
+"f.    c #D9D2C3",
+"g.    c #624E40",
+"h.    c #B29E86",
+"i.    c #464646",
+"j.    c #8A8A8A",
+"k.    c #AA927A",
+"l.    c #6E6A5E",
+"m.    c #1C0E04",
+"n.    c #323232",
+"o.    c #2D2A1A",
+"p.    c #968A6C",
+"q.    c #222221",
+"r.    c #1E160D",
+"s.    c #55391B",
+"t.    c #060202",
+"u.    c #AEAEAE",
+"v.    c #3E322C",
+"w.    c #AA9272",
+"x.    c #7A7262",
+"y.    c #5B534A",
+"z.    c #1A120B",
+"A.    c #8E8273",
+"B.    c #FAFAEE",
+"C.    c #C49C60",
+"D.    c #3E362B",
+"E.    c #7C5F34",
+"F.    c #5B3F1D",
+"G.    c #826D55",
+"H.    c #9E8E7A",
+"I.    c #443323",
+"J.    c #877757",
+"K.    c #6E5936",
+"L.    c #F6EACA",
+"M.    c #442A11",
+"N.    c #463E26",
+"O.    c #5E4228",
+"P.    c #7B6846",
+"Q.    c #BAAE9E",
+"R.    c #57462D",
+"S.    c #CEC4B2",
+"T.    c #B6B6B6",
+"U.    c #66522A",
+"V.    c #E0DED7",
+"W.    c #665E57",
+"X.    c #623A1A",
+"Y.    c #B2B2B2",
+"Z.    c #664D31",
+"`.    c #A26222",
+" +    c #9E9E8E",
+".+    c #5E4C3A",
+"++    c #665A3A",
+"@+    c #160E06",
+"#+    c #666665",
+"$+    c #2E2E2E",
+"%+    c #9A6E3A",
+"&+    c #2A2A2A",
+"*+    c #99835D",
+"=+    c #776B61",
+"-+    c #7E4622",
+";+    c #6D5841",
+">+    c #625A52",
+",+    c #767675",
+"'+    c #3A322F",
+")+    c #7E7E7E",
+"!+    c #EAD29E",
+"~+    c #9B7D4F",
+"{+    c #726A62",
+"]+    c #65533A",
+"^+    c #4D3A22",
+"/+    c #E9E8E3",
+"(+    c #7A6B55",
+"_+    c #0A0A05",
+":+    c #845626",
+"<+    c #634528",
+"[+    c #A2A2A2",
+"}+    c #846037",
+"|+    c #94866A",
+"1+    c #121212",
+"2+    c #AD9B77",
+"3+    c #5A5652",
+"4+    c #917B58",
+"5+    c #4E3E33",
+"6+    c #A99E84",
+"7+    c #6E6662",
+"8+    c #4E4A48",
+"9+    c #6E441E",
+"0+    c #624C36",
+"a+    c #727271",
+"b+    c #7A603F",
+"c+    c #553A25",
+"d+    c #A67236",
+"e+    c #E2D8CC",
+"f+    c #927E62",
+"g+    c #554131",
+"h+    c #482E16",
+"i+    c #4E443C",
+"j+    c #8C6C47",
+"k+    c #6D604F",
+"l+    c #9A8A56",
+"m+    c #4A341F",
+"n+    c #6A6A69",
+"o+    c #867C70",
+"p+    c #827A6C",
+"q+    c #5E4622",
+"r+    c #887250",
+"s+    c #846A46",
+"t+    c #9A8E7E",
+"u+    c #BEB2A2",
+"v+    c #524D4B",
+"w+    c #EEE9DD",
+"x+    c #D1D0C8",
+"y+    c #FDFCFA",
+"z+    c #625E5A",
+"A+    c #565250",
+"B+    c #9E9E9E",
+"C+    c #42220A",
+"D+    c #A28E62",
+"E+    c #463E37",
+"F+    c #BEAE82",
+"G+    c #66625E",
+"                                                            ",
+"                                                            ",
+"                                                            ",
+"                                                            ",
+"                                                            ",
+"        .                                                   ",
+"    d+q+T . .                                       ,+D..   ",
+"    4+i+&.v y . .                               S e.h 6+.   ",
+"    ]+!.s E &.b.&.] 8 3.                  |.C P f j.,+[ .   ",
+"    R.*.|.# G+G+f./ T.s 3.            r.J.w+Y.a+6 ] |.|+t.  ",
+"    .+*.@ ; |.a.a.Y.` d E.        }.,.r+@.3+@ ! ] 8 6 c..   ",
+"    R.*.q.; |.j.N a+).|+3   8 ,.{.i+#+!.# ; $+] ! 1+6 p.3.  ",
+"    .+*.@ $+#+!.<.;+J   &.b.]+v+a+L )+*., ; 6 ! ! 1+|.p..   ",
+"    .+a.)+Y.d j+> y o < >.z+a.B+[+..#+/.E ; , ] ! 1+n.p.3.  ",
+"    g.e.h /+[+&.H {.i+z+)+[+[+B+B+B+a+/.n.@ /.] ] ] 6 p.3.  ",
+"    ^ 0 j.S J A i.a+j.N ..B+B+[+[+B+)+e $+@ *.! 1+] 6 k.    ",
+"      6+Q.=.g a.L B+B+w ..B+B+B+B+B+)+e $+@ ' &+] @ , g.    ",
+"    3 e.a+i.#+....[+..w ..[+B+[+[+[+9 /.$+q.e 6 # (+s+      ",
+"    G.e q.@ n+....[+B+....[+B+B+B+B+)+# E |.<.]+z   D.o..   ",
+"     .# ! @ ,+..w B+B+..B+B+[+B+[+B+j.).T.1.;.  +.} 1.'.:   ",
+"    ]+/.! $+).L w [+[+w ..B+[+..).%.B+B.S.A.y.<+b+3+v+* ]   ",
+"    ]+/.! 6 N ).N [+B+....w a.z+W J     c.y+x+e &+! |.* :   ",
+"    n # ! |.N 9 L [+B+,+#+<.u ^       [. +[+i.# @ ! 6 * 1+  ",
+"    ;+# ! 6 N a.9 a.s K ~           _ ^+*.*.$+/.@ 1+|.* ]   ",
+"    ++# ! |.9 *.<.]+E.                  M.g.l.# n.] 6 t+]   ",
+"    ;+' e ,+g.J                             6.0 ' ' i.~.    ",
+"    {+T./+9.                                      _.=+ .    ",
+"    9.L.                3.3.. .                       >     ",
+"                      <+;+P._.y .                           ",
+"                    m %.n+' n+j+T                           ",
+"                  G.w [+B+w ,+7+b..                         ",
+"                  n L B+B+w L s <+                          ",
+"                  e.N [+..L )+a++                           ",
+"                  B.T.N ..N )+@.^                           ",
+"                    Z *.a+a.G+l+! 3.. . . 3.3.. . . . .     ",
+"                    d.P.% 3 t 2 {.A.I.R.r {+(+v 2 s.b.}..   ",
+"                  J.s a+a+e /.A+!.B+' n+7+L N *.z+!.!.% t.  ",
+"                  #.)+L N j.a.)+N w s n+[+)+&+|.q.o.|.i 3.  ",
+"                  s+a.).).)+#+n+w ..|.j.u.#+; 6 ! 6 |.c .   ",
+"                  r+)+).a.,+' #+w L $+..B+n.$+i.! 6 |.+ 3.  ",
+"                  + )+L )+!.' #+N 9 $+[+)+; /.*.! 6 |.+ t.  ",
+"                  ].a.w L 9 a.)+w 9 n.w s @ n+n+; &+|.f     ",
+"                  > v+3+A+v+v+y.*.v+a+#+!.*.v+v+#+a+%.0+    ",
+"                                  9+0.l+*+F F.9+            ",
+"                                  . t.t.. . . .             ",
+"                            +.H Z.F.|+) l R m.t.. .         ",
+"                        G 1.;+>.*.' s e %.# Y c+&.3..       ",
+"                        S.B ).a.L |.=.j.; # %.e D.t y .     ",
+"                      |+N [+w ).a+e Y.j.; &+, !.#+l.#.t.    ",
+"                    3 N ....).L |.w T.[+n.; , s q./.k+m+.   ",
+"                  C.!.L B+..L #+s T.T.Y.*.] |.e ; q.#+7 .   ",
+"                  e+j.L [+N N 6 B+Y.T.T.n+] n.# @ ; i.m &.  ",
+"                  ;+n+!.%.' a+i.n+a+a+n+/.*.#+n+%.# /.@.    ",
+"                  F b.q+J.]+n c ;+0+g.P.i g+o.}.v.s+r+c+    ",
+"                      T T y T t.T T t.T T y 8 8 8 y 8 y .   ",
+"                  D+g.Q ;+>+i Q ;+Z.;+Q c.k+i+i+5+G.u u &.  ",
+"                  n ,+a.z+s 9 ).j.).j.j.n+|.|.E i.|./.c ,.  ",
+"                  <+a+j.n.N T.u.8.8.8.Y.=.6 ] 1+] ; E u     ",
+"                  `.*.,+6 u.Y.u.8.=.=.Y.u.s &+] ] ! , z     ",
+"                    s+' *.Y.u.u.8.8.8.u.T.L /.! 1+! *+      ",
+"                      >.#+[+u.u.8.8.=.u.T.=.!.; &+}.        ",
+"                      }+V.9 ,+w u.8.8.u.Y.8.#+i.=+          ",
+"                      _+7+D 4+G+*.%.!.!.' # i+J             ",
+"                    t ]+_+      4.%+}+> >                   ",
+"                  *+#+f+M                                   ",
+"          _+_+_+1+#.# G.M T T T T T T T T T ] ! _+_+T . .   ",
+"      s+Q o I.c+K A.@ !.Q 7 q+q+q+q+q+7 7 _.2+'.I.-.m+Z..   ",
+"      _ s !.a+,+a.!.&+,+)+)+9 )+9 )+)+)+)+9 ).%.s a+n+J.t.  ",
+"        v *.)+N B+!.# Y.u.=.=.[+=.=.=.=.8.8.Y.L @ ' s + .   ",
+"          b *.j...,+*.T.8.=.=.=.=.=.=.=.=.8.T...@ ' %.J.3.  ",
+"            '.B ).,+n+T.8.[+[+[+[+[+=.=.=.8.Y.B+&+s #+% t.  ",
+"            / B.B+j.)+/ e.u.=.=.=.=.=.=.8.8.Y.=.@ ' G+J.    ",
+"                ` V.B B.V.u.j.9 9 )+)+9 9 9 )+n+i.!.#+c     ",
+"                /+B.` y+y+h.Q ~ <+~ ~ ~ t E.P.6+c 5+;+s+    ",
+"                  f.y+y+h                                   ",
+"                    $ y+/+6 1+. . . . . . . . . . . . .     ",
+"                      / c.R.M.2 2 M.,.^+p l A ( o v R +..   ",
+"                      '.|+A+3+y.3+*.*.A+*.*.*.s %.*.e E+.   ",
+"                    y+y+d u.8.8.u.u.T.Y.Y.u.8.j.&+n+a+ .t.  ",
+"                    Q.$ T.[+[+=.=.8.Y.Y.Y.T.Y.B+@ /.n+u 3.  ",
+"                  C.j.u.=.=.[+=.8.u.Y.T.Y.T.T.[+&+&+*.J..   ",
+"                  ;+j.=.=.[+=.=.8.u.T.Y.T.T.Y.8.n.] E |+T   ",
+"                  O.j.=.=.....B+B+........N L 9 6 &+|.p.    ",
+"                  ~ a.a+K W .+;+k+@.j.[+g L 8...c m i {.    ",
+"                  :+x.~+,.^+U r.2.R   ( b ,.n 2 $+{ -.y .   ",
+"                    X 3 g.>.O j+M &.s+r+B d x+T.P.Q P.O T   ",
+"                    B.B B+N 9 *.4+b.W.7+n+!.!.3+A+e s H.b   ",
+"                    Q.B =.[+=.j.W <+,+i.n+)+a.,+&+E E+g M.  ",
+"                  9+a+8.[+B+=.u./.#.#+s %.!./.# @ E E u &.  ",
+"                  $.3+B+[+[+u.x+=.~.m s s ' ! ! ! 6 , R.    ",
+"                    ~+' N u.d B.` f.G.' e # ] q.1+@ v+}+    ",
+"                      ~+z+*.a+/+h     D.*.E q.n.$+E -.      ",
+"                          :+}+        2 j+)+n+#+9 b+        ",
+"                            . 3.3.3.. . q.++} <+{.@+. .     ",
+"                        < b h+s.p s.Z.g U.J R.b b h+p N..   ",
+"                    /+7.s v+3+*.3+3+' G+%.n+#+%.%.%.#+p+3.  ",
+"                  / y+` B T.u.Y.T.Y.Y.8., 1+1+; ; @ E p+3.  ",
+"                  !+/+$ T.8.Y.T.Y.T.u.Y.s ] 1+] 1+# # =+T   ",
+"                  ].[+e.=.8.Y.u.a.[+Y.Y.,+; ; ! ] *.*.a 3.  ",
+"                  g+N =.8.u.Y.[+$+e Y.u...q.&+; ] /.' W.T   ",
+"                  5+).=.=.8.8.9 |.E )+=.[+6 # # 6 E #+n     ",
+"                  }+G+' z+%.%.,+*.v+!.G+s g e # /.@.G+P.    ",
+"                      h+< h+< p 2 v Y ,.2 {.U +.b Y ,.}.    ",
+"                    E.U.++J.= ++U.2 K.J F.O K.2 2 O = m+.   ",
+"                  J.s *.s #+' s %.%.n+s *.s #+%.z+7+#+1 T   ",
+"                  } ).[+' n.,+8.e ] q.L Y.8., ! q.$+*.++3.  ",
+"                  ~ !.,+n.@ )+u.*.1+! g T.Y.e 1+1+n.s ]+3.  ",
+"                  > # n.] ; ,+ +E 8 8 %.T.Y.e 1+! $+s .+T   ",
+"                  b+n.] 8 ! %.a.$+1+1+/.Y.8.|.1+; @ *.A T   ",
+"                  f E @ @ @ 6 E q.q.@ E N a.$+6 # n./..+    ",
+"                  h l./.e 8+s 7+z+s A+!.8.w ' i., A+l.J.    ",
+"                      - - M.h+O.F.X.- } p+a s.C+U b.{.N.    ",
+"        (.q.t.. .     8 8 8 8 1+8 8 8 8 8 : 8 8 8 1+T t..   ",
+"      4+G.} o 2.. J u I D.'+S 5+E+N.E+S D.'+D.'+D.D.% *+y   ",
+"    3 %.e *.*.g+2.#.s s ' e # /.%.%./., *.#+!.#+G+%.s w.m.  ",
+"    n+/.E $+n+A+I.O.s i.i.@ ] &+e e &+1+] , ' e i.*.' j &.  ",
+"  ~ a+*./.e j.z+;+0+' n+%.q.! , n+' n.1+8 ; , # # n+,+x+8+  ",
+"  X.#+' e *.L ).f.m n+j.)+&+q./.,+#+6 ] 8 1+; 6 e !.a+a !   ",
+"    W !.e *.L B+7.3+a+..j.$+@ s a.n+E ! 8 8 1+; , z+a+Z.    ",
+"    -+e n+%.!.|   ~ ' %.n+#+#+!.!.!.n+%.s *.*.' !.a+n+J.    ",
+"      9+v.n ~+      *+F+_.D.-.I.c+v.U { 5+E.s+#.g+-.]+V     ",
+"                                . . . . . . . . . . t..     ",
+"                        y ; +.8 8 : : 8 : z.(.(.r.z.] : .   ",
+"                      ^.* f+>.i+i+i.i+, E+, # 8+<., i+v..   ",
+"                    ;.,+<.|.E n+3+E E *.s 3+8+<.<.E ' W t.  ",
+"                  X [+n.!.z+; *.|.q.&+n.E , |.6 n.&+s  .3.  ",
+"                  b+!.6 ..!.q.' z+z+<.|.i.# i.# , n.' W .   ",
+"                  r+e # N s q.n+N ..a+E E /./.*.# |.%.>.3.  ",
+"                  r+, # ' 6 &+,+..N ).# , /.*.' e E %. .    ",
+"                  <+n+' ' %.#+s *.*.s ' %.%.' ' %.#+' c     ",
+"                    ~+u 7 } &.b q+:.F.&.+.+.&.&.+.; I.p     ",
+"                      o U U &.8 m.&.M @+: ] @+8 @+2.r.@+.   ",
+"                  }+a+a {+p+y.i+y.,+l.<.i+i.i+<., <.<.v..   ",
+"                  b+E @ n.n.i.,+)+j.L ).*., # %.' , s >+t.  ",
+"                  r+n.! $+q.E #+n+N w j.e q.@ E E q.# a .   ",
+"                  J.&+8 ] ! e %.' L w L n+$+@ 6 6 ! E G.t.  ",
+"                  p.$+1+8 @ G+%.*.).L ).)+, &+n.$+] E c .   ",
+"                  u+e q.! E a.,+#+L L L L a+# i.|.q.6 f     ",
+"                  *+8+#+!.e v+v+8+y.y.A+z+3+/./.e %.7+0+    ",
+"                    k 7 Z.h+o o b M.M.M.s.h+C+2 D.F.Z.(.    ",
+"                    9+l {.b b b b M.b U ^+b.b 2 S q+l ,..   ",
+"                  ].*.l.n+A+v+v+v+y.e >.s s e s %.!.=+= .   ",
+"                  Z.s n.q., a+9 9 L 9 !.N w ( &+; ] E + t.  ",
+"                  ~ # i.; &+*.n+a+9 n+3+9 L i.! ; ] 6 + 3.  ",
+"                  > i.# ! n.e #+!.a.n+e !.N *.q.q.] 6 + .   ",
+"                  t i.# ; # n+#+a+a.#+i.s L !.; ! ] |.p.3.  ",
+"                  <+, |.$+#+a.,+)+)+n+# s j.9 6 @ q.6 w.    ",
+"                  b.!.!.*.8+/././.# /.e /./.e e %.%.%. .    ",
+"                          2 o ,.                            ",
+"                        8 y t..                             ",
+"                      s+i+}.b : .                           ",
+"                    n , %.n+i.m+8 .                         ",
+"                  u )+$+E e n+<.U .                         ",
+"                  A.)+&+, s !.z+D.                          ",
+"                  h a.&+, %.a+,+s+                          ",
+"                  ` L n.i.' ,+p+d.                          ",
+"                    V.).,+,+W.d+T . . . . . . . . . . .     ",
+"                    ].}+*+^ } &.v M r.r.r.M R ,.^+b r.+..   ",
+"                  E.*.%.)+G+*.e *.e *.*.*.3+*.3+s A+*.Y .   ",
+"                  r+|.! |./.s ,+)+n+' ' #+%.s )...L n+k+.   ",
+"                  + |.] $+E /.!.a+/./.e s e E n+..).%.J..   ",
+"                  p.n.] &+i.' 9 n+# i.i.e s |./.L )+%.c 3.  ",
+"                  f n.] $+# !.).#+, # # s n+, $+!.a+%.G..   ",
+"                  / E $+/.#+a.j.a.%.n+n+a.9 *.E !.9 %.p+    ",
+"                  h x.e i.<.8+3+W <.<.<.8+8+<./., W 3+*+    ",
+"                                                            ",
+"                              . 3.3.. .         . .         ",
+"                          o.m+h+<+} D..     4 j+h+y .       ",
+"                        k.p.%.n+a+z+I .   q w+j.*.;._+.     ",
+"                      ~+' %.a...B+a.D.3.      > %.>+s..     ",
+"                    P.E n.# a.B+B+,+'+t.        2+a+5+v .   ",
+"                    W.n.$+# )+B+[+a.D.3.        w+/+#+H .   ",
+"                  2+*.|.|./.a...B+)+Y             h )+o 8   ",
+"                  ~+s ' ' ' s *.s %.*+            & ' E+o.  ",
+"                    s.M.2 M.h+} u q+O.. . . . . . X.!.|.U   ",
+"                      r.z.z.2.M b R z.2.M v M M v #.9 >.D.  ",
+"                  #.' 8+8+# # A+'  .<.8+y.>+A+ .3+!...1 r   ",
+"                  j+%.# # s l.j.w N 9 )+j.w j.#+j.B+j.|+    ",
+"                  b.*.# n.E /.)+B+w a.#+)+w )+# a+B+#+j+    ",
+"                    v.#+|.E ' j.B+j.#+*.a+).!.# ,+w 5+      ",
+"                      I #+*.G+j.B+9 *.|.n+a.' A+9 @.5       ",
+"                        v.s a+L ..)+/.$+%.9 a+a+W.>         ",
+"                        2.h+R.3+' a+' *.!.n+L e+            ",
+"                      b t.    4.~+c+E+]+l Z.                ",
+"                  ^ 3+o o.                                  ",
+"          . . . T r+n+i+@ . . . . . . . . . . . . . . .     ",
+"      V d.| P.{.P.4+%., 2 C+C+C+m+h+M.b.F c+h+h+<+= u H .   ",
+"      k+#+%.%.#+n+#+# 7+z+' ' ' 3+s *.3+s s s s s s ' 5+t.  ",
+"        E+3+q.; n+' 6 6 |., *.#+j.N N ..N j.a.a.N ..a+H t.  ",
+"          m 3+q.s *.6 $+&+6 *.a+L L w B+).).a.)+w B+,+< 3.  ",
+"            m G+e # n.n.n.|.' )+w N w B+9 ).)+)+N ..a.M.t.  ",
+"              E+#+*.|.n.n.|.s a.L L ..[+).)+a.,+j.L )+m+T   ",
+"                c #+/.6 /.s !.)+).j.j.9 ).).9 a.9 9 a.g+    ",
+"                  % %.' >+, <.<.]+;+x j.@.O n g.g.i+n |+    ",
+"                    K {+                                    ",
+"                      *+                                    ",
+"                                                            ",
+"                                                            ",
+"                                                            ",
+"                                                            "};
diff --git a/terminatorX/src/gui_icons/tx_stop.xpm b/terminatorX/src/gui_icons/tx_stop.xpm
new file mode 100644 (file)
index 0000000..663f467
--- /dev/null
@@ -0,0 +1,214 @@
+/* XPM */
+static char * tx_stop_xpm[] = {
+"21 18 193 2",
+"      c None",
+".     c #C0C0C0",
+"+     c #E6E5E5",
+"@     c #F1F0F0",
+"#     c #E7E6E6",
+"$     c #DCD9D9",
+"%     c #D5D2D2",
+"&     c #CFCCCC",
+"*     c #CAC5C5",
+"=     c #C4C0C0",
+"-     c #BFBABA",
+";     c #BAB4B4",
+">     c #B4AEAE",
+",     c #ABA4A4",
+"'     c #938D8D",
+")     c #857E7E",
+"!     c #777070",
+"~     c #D3D3D3",
+"{     c #E0DFDF",
+"]     c #E7E5E5",
+"^     c #DEDCDC",
+"/     c #D0CCCC",
+"(     c #CAC6C6",
+"_     c #C0BABA",
+":     c #B4AFAF",
+"<     c #B0A8A8",
+"[     c #A49D9D",
+"}     c #726D6D",
+"|     c #666161",
+"1     c #736C6C",
+"2     c #D0CFCF",
+"3     c #B5B3B3",
+"4     c #C7C5C5",
+"5     c #C3C1C1",
+"6     c #A6A4A4",
+"7     c #9C9999",
+"8     c #979393",
+"9     c #938F8F",
+"0     c #8E8A8A",
+"a     c #8B8686",
+"b     c #868181",
+"c     c #837E7E",
+"d     c #878080",
+"e     c #343131",
+"f     c #363333",
+"g     c #736B6B",
+"h     c #B5B4B4",
+"i     c #949292",
+"j     c #B1AEAE",
+"k     c #787676",
+"l     c #565454",
+"m     c #3F3D3D",
+"n     c #3A3838",
+"o     c #383737",
+"p     c #474444",
+"q     c #615C5C",
+"r     c #736E6E",
+"s     c #787171",
+"t     c #393636",
+"u     c #2A2727",
+"v     c #706868",
+"w     c #A09F9F",
+"x     c #878686",
+"y     c #A4A1A1",
+"z     c #959393",
+"A     c #212121",
+"B     c #000000",
+"C     c #323030",
+"D     c #676161",
+"E     c #746D6D",
+"F     c #494444",
+"G     c #292626",
+"H     c #595252",
+"I     c #9A9898",
+"J     c #838181",
+"K     c #9F9C9C",
+"L     c #928E8E",
+"M     c #181717",
+"N     c #060505",
+"O     c #0A0909",
+"P     c #0A0A0A",
+"Q     c #312E2E",
+"R     c #4D4949",
+"S     c #706A6A",
+"T     c #706969",
+"U     c #4E4848",
+"V     c #211F1F",
+"W     c #3E3939",
+"X     c #858383",
+"Y     c #A39F9F",
+"Z     c #242323",
+"`     c #252424",
+" .    c #847F7F",
+"..    c #817B7B",
+"+.    c #7C7777",
+"@.    c #767171",
+"#.    c #635D5D",
+"$.    c #6C6565",
+"%.    c #4B4545",
+"&.    c #1B1919",
+"*.    c #302C2C",
+"=.    c #969393",
+"-.    c #848181",
+";.    c #A5A1A1",
+">.    c #858181",
+",.    c #222121",
+"'.    c #232222",
+").    c #817C7C",
+"!.    c #797373",
+"~.    c #6F6969",
+"{.    c #5E5858",
+"].    c #696161",
+"^.    c #464141",
+"/.    c #191717",
+"(.    c #2C2828",
+"_.    c #8B8888",
+":.    c #7F7C7C",
+"<.    c #9D9999",
+"[.    c #7E7A7A",
+"}.    c #201F1F",
+"|.    c #7D7878",
+"1.    c #756E6E",
+"2.    c #6A6363",
+"3.    c #585252",
+"4.    c #686060",
+"5.    c #655D5D",
+"6.    c #443E3E",
+"7.    c #181616",
+"8.    c #2B2626",
+"9.    c #817D7D",
+"0.    c #777373",
+"a.    c #908C8C",
+"b.    c #837F7F",
+"c.    c #585454",
+"d.    c #A49C9C",
+"e.    c #9F9595",
+"f.    c #998F8F",
+"g.    c #988E8E",
+"h.    c #857B7B",
+"i.    c #796F6F",
+"j.    c #615858",
+"k.    c #3F3939",
+"l.    c #161414",
+"m.    c #292424",
+"n.    c #777474",
+"o.    c #6E6A6A",
+"p.    c #8F8888",
+"q.    c #9D9595",
+"r.    c #988F8F",
+"s.    c #948989",
+"t.    c #8D8282",
+"u.    c #786D6D",
+"v.    c #5D5454",
+"w.    c #2E2A2A",
+"x.    c #110F0F",
+"y.    c #262121",
+"z.    c #736F6F",
+"A.    c #666262",
+"B.    c #777272",
+"C.    c #7F7979",
+"D.    c #827B7B",
+"E.    c #857D7D",
+"F.    c #7C7474",
+"G.    c #746B6B",
+"H.    c #6A6262",
+"I.    c #625A5A",
+"J.    c #5D5555",
+"K.    c #584E4E",
+"L.    c #1A1717",
+"M.    c #272121",
+"N.    c #6C6868",
+"O.    c #5A5656",
+"P.    c #635F5F",
+"Q.    c #716B6B",
+"R.    c #666060",
+"S.    c #5D5757",
+"T.    c #504A4A",
+"U.    c #474141",
+"V.    c #4A4242",
+"W.    c #4D4545",
+"X.    c #3A3434",
+"Y.    c #090808",
+"Z.    c #080707",
+"`.    c #332B2B",
+" +    c #656161",
+".+    c #2F2D2D",
+"++    c #0D0B0B",
+"@+    c #413636",
+"#+    c #3A3737",
+"$+    c #060606",
+"%+    c #020202",
+"&+    c #241E1E",
+"*+    c #433737",
+"                                          ",
+"    . + @ # $ % & * = - ; > , ' ) !       ",
+"    ~ { ] ^ % / ( = _ ; : < [ } | 1       ",
+"    2 3 4 5 6 7 8 9 0 a b c d e f g       ",
+"    h i j 7 k l m n o p q r s t u v       ",
+"    w x y z A B B B B B C D E F G H       ",
+"    I J K L M B N O P Q R S T U V W       ",
+"    I X Y 0 Z `  ...+.@.#.! $.%.&.*.      ",
+"    =.-.;.>.,.'.).+.!.~.{.v ].^./.(.      ",
+"    _.:.<.[.}.'.|.!.1.2.3.4.5.6.7.8.      ",
+"    9.0.a.b.c.} d.e.f.g.h.i.j.k.l.m.      ",
+"    n.o.c  ...p.q.r.s.s.t.u.v.w.x.y.      ",
+"    z.A.B.C.C.D.E.F.G.H.I.J.K.L.O M.      ",
+"    N.O.P.@.Q.R.S.3.T.U.V.W.X.Y.Z.`.      ",
+"     +.+B B B B B B B B B B B B ++@+      ",
+"    } #+$+B B B B B B B B B B %+&+*+      ",
+"                                          ",
+"                                          "};
diff --git a/terminatorX/src/gui_icons/tx_wave.xpm b/terminatorX/src/gui_icons/tx_wave.xpm
new file mode 100644 (file)
index 0000000..93941e4
--- /dev/null
@@ -0,0 +1,73 @@
+/* XPM */
+static char * tx_wave_xpm[] = {
+"15 12 58 1",
+"      c None",
+".     c #0B9505",
+"+     c #14F108",
+"@     c #045700",
+"#     c #154C13",
+"$     c #18D40E",
+"%     c #046000",
+"&     c #068C00",
+"*     c #093D07",
+"=     c #21FF16",
+"-     c #045E00",
+";     c #023D00",
+">     c #07AD00",
+",     c #045500",
+"'     c #067202",
+")     c #1CFF11",
+"!     c #11FF05",
+"~     c #12F806",
+"{     c #045800",
+"]     c #07A400",
+"^     c #0BE900",
+"/     c #079D00",
+"(     c #047300",
+"_     c #08C000",
+":     c #08BB01",
+"<     c #07B800",
+"[     c #0AB303",
+"}     c #0FD205",
+"|     c #09AB00",
+"1     c #068700",
+"2     c #057800",
+"3     c #078E00",
+"4     c #07A700",
+"5     c #07A500",
+"6     c #057D00",
+"7     c #068E00",
+"8     c #069900",
+"9     c #155513",
+"0     c #1E1E1E",
+"a     c #050505",
+"b     c #011000",
+"c     c #056F00",
+"d     c #011E00",
+"e     c #011800",
+"f     c #046F00",
+"g     c #045A00",
+"h     c #1A211A",
+"i     c #14AD0E",
+"j     c #057400",
+"k     c #069800",
+"l     c #08B900",
+"m     c #032E01",
+"n     c #179D12",
+"o     c #08A401",
+"p     c #111511",
+"q     c #207A1C",
+"r     c #053A03",
+"s     c #090D09",
+"               ",
+"      .        ",
+"     +@#       ",
+"    $%&*       ",
+"   =-;>,'      ",
+" )!~{]^/(_:<[  ",
+" }|12345267829 ",
+"    0abcdefgh  ",
+"      i]jklm   ",
+"       no>,p   ",
+"        qrs    ",
+"               "};
diff --git a/terminatorX/src/licmak.awk b/terminatorX/src/licmak.awk
new file mode 100644 (file)
index 0000000..56bdb83
--- /dev/null
@@ -0,0 +1,3 @@
+BEGIN   { printf "char license[]=\"\\\n" }
+{ gsub(/\"/,"\\\"") ; printf $0"\\n\\\n" }
+END     { printf "\";\n" }
\ No newline at end of file
diff --git a/terminatorX/src/main.cc b/terminatorX/src/main.cc
new file mode 100644 (file)
index 0000000..feca132
--- /dev/null
@@ -0,0 +1,197 @@
+/*
+    terminatorX - realtime audio scratching software
+    Copyright (C) 1999, 2000  Alexander K÷nig
+
+    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.
+    
+    File: main.c
+    
+    Description: This contains the main() function. All the initializing
+                happens here.
+    
+    Changes:
+    
+    19 Mar 1999: Applied a patch by Andrew C. Bul+hac?k (eMail: acb@zikzak.net)
+                 that fixes wavfile reading routine for the overreading bug.
+                
+    20 Mar 1999: Big endian support.
+    
+    23 Mar 1999: display of new keys (<-, ->)
+    
+    4 October 1999: Rewrite ;) - back to C++
+*/
+
+#define TX_GTKRC "/usr/share/themes/terminatorX/gtk/gtkrc"
+
+#define BENCH_CYCLES 100000
+
+#include <stdio.h>
+#include "tX_mastergui.h"
+#include <malloc.h>
+#include <math.h>
+#include <stdio.h>
+#ifndef WIN32
+#include <unistd.h>
+#endif
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#ifdef USE_3DNOW
+#include "3dnow.h"
+#endif
+
+#include "tX_endian.h"
+#include "tX_types.h"
+#include "tX_global.h"
+#include "version.h"
+#include "tX_dialog.h"
+#include <gtk/gtk.h>
+#include <glib.h>
+
+#include "tX_ladspa.h"
+
+#ifdef CREATE_BENCHMARK 
+#include "tX_vtt.h"
+#endif
+
+#ifdef USE_DIAL
+#include "tX_knobloader.h"
+#endif
+
+GTimer *my_time;
+gint idle_tag;
+/* main(): */
+
+int idle()
+{
+       gdouble time;
+       gulong ms;
+       
+       time=g_timer_elapsed(my_time, &ms);
+       if (time > 1.5)
+       {
+               gtk_idle_remove(idle_tag);
+               destroy_about();                
+               display_mastergui();            
+       }
+       
+       return TRUE;
+}
+
+int main(int argc, char **argv)
+{
+       char *startup_set=NULL;
+       FILE *gtk_rc_file;
+       
+#ifndef WIN32
+       fprintf(stderr, "%s, Copyright(C)1999 Alexander König, alkoit00@fht-esslingen.de\n", VERSIONSTRING);
+#else
+        fprintf(stderr, "%s, Copyright(C)1999 Alexander König, alkoit00@fht-esslingen.de\n", VERSIONSTRING);
+        setenv ("CYGWIN", "binmode");
+#endif
+       fprintf(stderr, "terminatorX comes with ABSOLUTELY NO WARRANTY - for details read the license.\n");
+
+#ifdef USE_3DNOW
+       if (mm_support()!=5)
+       {
+               printf("3DNow! not detected. Giving up.\n");
+               return(1);
+       }
+       else
+        printf("3DNow! accelerations available.\n");   
+#endif
+       gtk_set_locale ();
+        gtk_init (&argc, &argv);
+       
+       gtk_rc_file=fopen(TX_GTKRC, "r");
+       if (gtk_rc_file)
+       {
+               fprintf (stderr, "Using terminatorX gtkrc.\n");
+               fclose(gtk_rc_file);
+               gtk_rc_parse(TX_GTKRC);
+       }
+       
+       if (argc >1) startup_set=argv[1];
+
+       load_globals();         
+
+       if (globals.show_nag)
+       {       
+               show_about(1);
+
+               my_time=g_timer_new();
+               g_timer_start(my_time);         
+       
+               idle_tag=gtk_idle_add((GtkFunction)idle, NULL);
+       }
+       
+       LADSPA_Plugin :: init();
+//     LADSPA_Plugin :: status();
+                       
+       create_mastergui(globals.width, globals.height);
+               
+       if (!globals.show_nag)  display_mastergui();
+               
+       if (startup_set)
+       {
+               while (gtk_events_pending()) gtk_main_iteration(); gdk_flush(); 
+               load_tt_part(startup_set);
+       }
+               
+#ifndef CREATE_BENCHMARK
+#ifdef USE_DIAL
+       load_knob_pixs(main_window);
+#endif 
+
+       gtk_main();
+
+       store_globals();
+
+       fprintf(stderr, "Have a nice life.\n");
+#else
+       gtk_widget_hide(main_window);
+       while (gtk_events_pending()) gtk_main_iteration(); gdk_flush(); 
+       gdk_flush();
+       
+       vtt_class::set_mix_buffer_size(globals.true_block_size);
+       printf("\n* BENCHMARKING *\nBlocksize is %i samples.\n", globals.true_block_size);
+       
+       GTimer *bench_time = g_timer_new();
+       gulong micros;
+       double ratio;
+       double res;
+       list <vtt_class *> :: iterator vtt;
+       
+       for (vtt=vtt_class::main_list.begin(); vtt!=vtt_class::main_list.end(); vtt++)
+       {
+               if ((*vtt)->autotrigger) (*vtt)->trigger();
+       }
+       sleep(3);
+       
+       g_timer_start(bench_time);
+       for (int i=0; i<BENCH_CYCLES; i++)
+       {
+               vtt_class::render_all_turntables();
+       }
+       g_timer_stop(bench_time);
+       res=g_timer_elapsed(bench_time, &micros);
+       
+       ratio=((double) BENCH_CYCLES)/res;
+       printf ("Rendered %i blocks in %f secons,\n=> %f blocks per second.\n\n", (long) BENCH_CYCLES, res, ratio);
+#endif
+       return (0);
+}
diff --git a/terminatorX/src/mmx.h b/terminatorX/src/mmx.h
new file mode 100644 (file)
index 0000000..ddf25c7
--- /dev/null
@@ -0,0 +1,706 @@
+/*     mmx.h
+
+       MultiMedia eXtensions GCC interface library for IA32.
+
+       To use this library, simply include this header file
+       and compile with GCC.  You MUST have inlining enabled
+       in order for mmx_ok() to work; this can be done by
+       simply using -O on the GCC command line.
+
+       Compiling with -DMMX_TRACE will cause detailed trace
+       output to be sent to stderr for each mmx operation.
+       This adds lots of code, and obviously slows execution to
+       a crawl, but can be very useful for debugging.
+
+       THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY
+       EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT
+       LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+       AND FITNESS FOR ANY PARTICULAR PURPOSE.
+
+       1997-99 by H. Dietz and R. Fisher
+
+ Notes:
+       It appears that the latest gas has the pand problem fixed, therefore
+         I'll undefine BROKEN_PAND by default.
+*/
+
+#ifndef _MMX_H
+#define _MMX_H
+
+
+/*     Warning:  at this writing, the version of GAS packaged
+       with most Linux distributions does not handle the
+       parallel AND operation mnemonic correctly.  If the
+       symbol BROKEN_PAND is defined, a slower alternative
+       coding will be used.  If execution of mmxtest results
+       in an illegal instruction fault, define this symbol.
+*/
+#undef BROKEN_PAND
+
+
+/*     The type of an value that fits in an MMX register
+       (note that long long constant values MUST be suffixed
+        by LL and unsigned long long values by ULL, lest
+        they be truncated by the compiler)
+*/
+typedef        union {
+       long long               q;      /* Quadword (64-bit) value */
+       unsigned long long      uq;     /* Unsigned Quadword */
+       int                     d[2];   /* 2 Doubleword (32-bit) values */
+       unsigned int            ud[2];  /* 2 Unsigned Doubleword */
+       short                   w[4];   /* 4 Word (16-bit) values */
+       unsigned short          uw[4];  /* 4 Unsigned Word */
+       char                    b[8];   /* 8 Byte (8-bit) values */
+       unsigned char           ub[8];  /* 8 Unsigned Byte */
+       float                   s[2];   /* Single-precision (32-bit) value */
+} __attribute__ ((aligned (8))) mmx_t; /* On an 8-byte (64-bit) boundary */
+
+
+
+/*     Function to test if multimedia instructions are supported...
+*/
+inline int
+mm_support(void)
+{
+       /* Returns 1 if MMX instructions are supported,
+          3 if Cyrix MMX and Extended MMX instructions are supported
+          5 if AMD MMX and 3DNow! instructions are supported
+          0 if hardware does not support any of these
+       */
+       register int rval = 0;
+
+       __asm__ __volatile__ (
+               /* See if CPUID instruction is supported ... */
+               /* ... Get copies of EFLAGS into eax and ecx */
+               "pushf\n\t"
+               "popl %%eax\n\t"
+               "movl %%eax, %%ecx\n\t"
+
+               /* ... Toggle the ID bit in one copy and store */
+               /*     to the EFLAGS reg */
+               "xorl $0x200000, %%eax\n\t"
+               "push %%eax\n\t"
+               "popf\n\t"
+
+               /* ... Get the (hopefully modified) EFLAGS */
+               "pushf\n\t"
+               "popl %%eax\n\t"
+
+               /* ... Compare and test result */
+               "xorl %%eax, %%ecx\n\t"
+               "testl $0x200000, %%ecx\n\t"
+               "jz NotSupported1\n\t"          /* CPUID not supported */
+
+
+               /* Get standard CPUID information, and
+                      go to a specific vendor section */
+               "movl $0, %%eax\n\t"
+               "cpuid\n\t"
+
+               /* Check for Intel */
+               "cmpl $0x756e6547, %%ebx\n\t"
+               "jne TryAMD\n\t"
+               "cmpl $0x49656e69, %%edx\n\t"
+               "jne TryAMD\n\t"
+               "cmpl $0x6c65746e, %%ecx\n"
+               "jne TryAMD\n\t"
+               "jmp Intel\n\t"
+
+               /* Check for AMD */
+               "\nTryAMD:\n\t"
+               "cmpl $0x68747541, %%ebx\n\t"
+               "jne TryCyrix\n\t"
+               "cmpl $0x69746e65, %%edx\n\t"
+               "jne TryCyrix\n\t"
+               "cmpl $0x444d4163, %%ecx\n"
+               "jne TryCyrix\n\t"
+               "jmp AMD\n\t"
+
+               /* Check for Cyrix */
+               "\nTryCyrix:\n\t"
+               "cmpl $0x69727943, %%ebx\n\t"
+               "jne NotSupported2\n\t"
+               "cmpl $0x736e4978, %%edx\n\t"
+               "jne NotSupported3\n\t"
+               "cmpl $0x64616574, %%ecx\n\t"
+               "jne NotSupported4\n\t"
+               /* Drop through to Cyrix... */
+
+
+               /* Cyrix Section */
+               /* See if extended CPUID level 80000001 is supported */
+               /* The value of CPUID/80000001 for the 6x86MX is undefined
+                  according to the Cyrix CPU Detection Guide (Preliminary
+                  Rev. 1.01 table 1), so we'll check the value of eax for
+                  CPUID/0 to see if standard CPUID level 2 is supported.
+                  According to the table, the only CPU which supports level
+                  2 is also the only one which supports extended CPUID levels.
+               */
+               "cmpl $0x2, %%eax\n\t"
+               "jne MMXtest\n\t"       /* Use standard CPUID instead */
+
+               /* Extended CPUID supported (in theory), so get extended
+                  features */
+               "movl $0x80000001, %%eax\n\t"
+               "cpuid\n\t"
+               "testl $0x00800000, %%eax\n\t"  /* Test for MMX */
+               "jz NotSupported5\n\t"          /* MMX not supported */
+               "testl $0x01000000, %%eax\n\t"  /* Test for Ext'd MMX */
+               "jnz EMMXSupported\n\t"
+               "movl $1, %0\n\n\t"             /* MMX Supported */
+               "jmp Return\n\n"
+               "EMMXSupported:\n\t"
+               "movl $3, %0\n\n\t"             /* EMMX and MMX Supported */
+               "jmp Return\n\t"
+
+
+               /* AMD Section */
+               "AMD:\n\t"
+
+               /* See if extended CPUID is supported */
+               "movl $0x80000000, %%eax\n\t"
+               "cpuid\n\t"
+               "cmpl $0x80000000, %%eax\n\t"
+               "jl MMXtest\n\t"        /* Use standard CPUID instead */
+
+               /* Extended CPUID supported, so get extended features */
+               "movl $0x80000001, %%eax\n\t"
+               "cpuid\n\t"
+               "testl $0x00800000, %%edx\n\t"  /* Test for MMX */
+               "jz NotSupported6\n\t"          /* MMX not supported */
+               "testl $0x80000000, %%edx\n\t"  /* Test for 3DNow! */
+               "jnz ThreeDNowSupported\n\t"
+               "movl $1, %0\n\n\t"             /* MMX Supported */
+               "jmp Return\n\n"
+               "ThreeDNowSupported:\n\t"
+               "movl $5, %0\n\n\t"             /* 3DNow! and MMX Supported */
+               "jmp Return\n\t"
+
+
+               /* Intel Section */
+               "Intel:\n\t"
+
+               /* Check for MMX */
+               "MMXtest:\n\t"
+               "movl $1, %%eax\n\t"
+               "cpuid\n\t"
+               "testl $0x00800000, %%edx\n\t"  /* Test for MMX */
+               "jz NotSupported7\n\t"          /* MMX Not supported */
+               "movl $1, %0\n\n\t"             /* MMX Supported */
+               "jmp Return\n\t"
+
+               /* Nothing supported */
+               "\nNotSupported1:\n\t"
+               "#movl $101, %0\n\n\t"
+               "\nNotSupported2:\n\t"
+               "#movl $102, %0\n\n\t"
+               "\nNotSupported3:\n\t"
+               "#movl $103, %0\n\n\t"
+               "\nNotSupported4:\n\t"
+               "#movl $104, %0\n\n\t"
+               "\nNotSupported5:\n\t"
+               "#movl $105, %0\n\n\t"
+               "\nNotSupported6:\n\t"
+               "#movl $106, %0\n\n\t"
+               "\nNotSupported7:\n\t"
+               "#movl $107, %0\n\n\t"
+               "movl $0, %0\n\n\t"
+
+               "Return:\n\t"
+               : "=g" (rval)
+               : /* no input */
+               : "eax", "ebx", "ecx", "edx"
+       );
+
+       /* Return */
+       return(rval);
+}
+
+/*     Function to test if mmx instructions are supported...
+*/
+inline extern int
+mmx_ok(void)
+{
+       /* Returns 1 if MMX instructions are supported, 0 otherwise */
+       return ( mm_support() & 0x1 );
+}
+
+
+/*     Helper functions for the instruction macros that follow...
+       (note that memory-to-register, m2r, instructions are nearly
+        as efficient as register-to-register, r2r, instructions;
+        however, memory-to-memory instructions are really simulated
+        as a convenience, and are only 1/3 as efficient)
+*/
+#ifdef MMX_TRACE
+
+/*     Include the stuff for printing a trace to stderr...
+*/
+
+#include <stdio.h>
+
+#define        mmx_i2r(op, imm, reg) \
+       { \
+               mmx_t mmx_trace; \
+               mmx_trace.uq = (imm); \
+               fprintf(stderr, #op "_i2r(" #imm "=0x%08x%08x, ", \
+                       mmx_trace.d[1], mmx_trace.d[0]); \
+               __asm__ __volatile__ ("movq %%" #reg ", %0" \
+                                     : "=X" (mmx_trace) \
+                                     : /* nothing */ ); \
+               fprintf(stderr, #reg "=0x%08x%08x) => ", \
+                       mmx_trace.d[1], mmx_trace.d[0]); \
+               __asm__ __volatile__ (#op " %0, %%" #reg \
+                                     : /* nothing */ \
+                                     : "X" (imm)); \
+               __asm__ __volatile__ ("movq %%" #reg ", %0" \
+                                     : "=X" (mmx_trace) \
+                                     : /* nothing */ ); \
+               fprintf(stderr, #reg "=0x%08x%08x\n", \
+                       mmx_trace.d[1], mmx_trace.d[0]); \
+       }
+
+#define        mmx_m2r(op, mem, reg) \
+       { \
+               mmx_t mmx_trace; \
+               mmx_trace = (mem); \
+               fprintf(stderr, #op "_m2r(" #mem "=0x%08x%08x, ", \
+                       mmx_trace.d[1], mmx_trace.d[0]); \
+               __asm__ __volatile__ ("movq %%" #reg ", %0" \
+                                     : "=X" (mmx_trace) \
+                                     : /* nothing */ ); \
+               fprintf(stderr, #reg "=0x%08x%08x) => ", \
+                       mmx_trace.d[1], mmx_trace.d[0]); \
+               __asm__ __volatile__ (#op " %0, %%" #reg \
+                                     : /* nothing */ \
+                                     : "X" (mem)); \
+               __asm__ __volatile__ ("movq %%" #reg ", %0" \
+                                     : "=X" (mmx_trace) \
+                                     : /* nothing */ ); \
+               fprintf(stderr, #reg "=0x%08x%08x\n", \
+                       mmx_trace.d[1], mmx_trace.d[0]); \
+       }
+
+#define        mmx_r2m(op, reg, mem) \
+       { \
+               mmx_t mmx_trace; \
+               __asm__ __volatile__ ("movq %%" #reg ", %0" \
+                                     : "=X" (mmx_trace) \
+                                     : /* nothing */ ); \
+               fprintf(stderr, #op "_r2m(" #reg "=0x%08x%08x, ", \
+                       mmx_trace.d[1], mmx_trace.d[0]); \
+               mmx_trace = (mem); \
+               fprintf(stderr, #mem "=0x%08x%08x) => ", \
+                       mmx_trace.d[1], mmx_trace.d[0]); \
+               __asm__ __volatile__ (#op " %%" #reg ", %0" \
+                                     : "=X" (mem) \
+                                     : /* nothing */ ); \
+               mmx_trace = (mem); \
+               fprintf(stderr, #mem "=0x%08x%08x\n", \
+                       mmx_trace.d[1], mmx_trace.d[0]); \
+       }
+
+#define        mmx_r2r(op, regs, regd) \
+       { \
+               mmx_t mmx_trace; \
+               __asm__ __volatile__ ("movq %%" #regs ", %0" \
+                                     : "=X" (mmx_trace) \
+                                     : /* nothing */ ); \
+               fprintf(stderr, #op "_r2r(" #regs "=0x%08x%08x, ", \
+                       mmx_trace.d[1], mmx_trace.d[0]); \
+               __asm__ __volatile__ ("movq %%" #regd ", %0" \
+                                     : "=X" (mmx_trace) \
+                                     : /* nothing */ ); \
+               fprintf(stderr, #regd "=0x%08x%08x) => ", \
+                       mmx_trace.d[1], mmx_trace.d[0]); \
+               __asm__ __volatile__ (#op " %" #regs ", %" #regd); \
+               __asm__ __volatile__ ("movq %%" #regd ", %0" \
+                                     : "=X" (mmx_trace) \
+                                     : /* nothing */ ); \
+               fprintf(stderr, #regd "=0x%08x%08x\n", \
+                       mmx_trace.d[1], mmx_trace.d[0]); \
+       }
+
+#define        mmx_m2m(op, mems, memd) \
+       { \
+               mmx_t mmx_trace; \
+               mmx_trace = (mems); \
+               fprintf(stderr, #op "_m2m(" #mems "=0x%08x%08x, ", \
+                       mmx_trace.d[1], mmx_trace.d[0]); \
+               mmx_trace = (memd); \
+               fprintf(stderr, #memd "=0x%08x%08x) => ", \
+                       mmx_trace.d[1], mmx_trace.d[0]); \
+               __asm__ __volatile__ ("movq %0, %%mm0\n\t" \
+                                     #op " %1, %%mm0\n\t" \
+                                     "movq %%mm0, %0" \
+                                     : "=X" (memd) \
+                                     : "X" (mems)); \
+               mmx_trace = (memd); \
+               fprintf(stderr, #memd "=0x%08x%08x\n", \
+                       mmx_trace.d[1], mmx_trace.d[0]); \
+       }
+
+#else
+
+/*     These macros are a lot simpler without the tracing...
+*/
+
+#define        mmx_i2r(op, imm, reg) \
+       __asm__ __volatile__ (#op " %0, %%" #reg \
+                             : /* nothing */ \
+                             : "X" (imm) )
+
+#define        mmx_m2r(op, mem, reg) \
+       __asm__ __volatile__ (#op " %0, %%" #reg \
+                             : /* nothing */ \
+                             : "X" (mem))
+
+#define        mmx_r2m(op, reg, mem) \
+       __asm__ __volatile__ (#op " %%" #reg ", %0" \
+                             : "=X" (mem) \
+                             : /* nothing */ )
+
+#define        mmx_r2r(op, regs, regd) \
+       __asm__ __volatile__ (#op " %" #regs ", %" #regd)
+
+#define        mmx_m2m(op, mems, memd) \
+       __asm__ __volatile__ ("movq %0, %%mm0\n\t" \
+                             #op " %1, %%mm0\n\t" \
+                             "movq %%mm0, %0" \
+                             : "=X" (memd) \
+                             : "X" (mems))
+
+#endif
+
+
+/*     1x64 MOVe Quadword
+       (this is both a load and a store...
+        in fact, it is the only way to store)
+*/
+#define        movq_m2r(var, reg)      mmx_m2r(movq, var, reg)
+#define        movq_r2m(reg, var)      mmx_r2m(movq, reg, var)
+#define        movq_r2r(regs, regd)    mmx_r2r(movq, regs, regd)
+#define        movq(vars, vard) \
+       __asm__ __volatile__ ("movq %1, %%mm0\n\t" \
+                             "movq %%mm0, %0" \
+                             : "=X" (vard) \
+                             : "X" (vars))
+
+
+/*     1x32 MOVe Doubleword
+       (like movq, this is both load and store...
+        but is most useful for moving things between
+        mmx registers and ordinary registers)
+*/
+#define        movd_m2r(var, reg)      mmx_m2r(movd, var, reg)
+#define        movd_r2m(reg, var)      mmx_r2m(movd, reg, var)
+#define        movd_r2r(regs, regd)    mmx_r2r(movd, regs, regd)
+#define        movd(vars, vard) \
+       __asm__ __volatile__ ("movd %1, %%mm0\n\t" \
+                             "movd %%mm0, %0" \
+                             : "=X" (vard) \
+                             : "X" (vars))
+
+
+/*     2x32, 4x16, and 8x8 Parallel ADDs
+*/
+#define        paddd_m2r(var, reg)     mmx_m2r(paddd, var, reg)
+#define        paddd_r2r(regs, regd)   mmx_r2r(paddd, regs, regd)
+#define        paddd(vars, vard)       mmx_m2m(paddd, vars, vard)
+
+#define        paddw_m2r(var, reg)     mmx_m2r(paddw, var, reg)
+#define        paddw_r2r(regs, regd)   mmx_r2r(paddw, regs, regd)
+#define        paddw(vars, vard)       mmx_m2m(paddw, vars, vard)
+
+#define        paddb_m2r(var, reg)     mmx_m2r(paddb, var, reg)
+#define        paddb_r2r(regs, regd)   mmx_r2r(paddb, regs, regd)
+#define        paddb(vars, vard)       mmx_m2m(paddb, vars, vard)
+
+
+/*     4x16 and 8x8 Parallel ADDs using Saturation arithmetic
+*/
+#define        paddsw_m2r(var, reg)    mmx_m2r(paddsw, var, reg)
+#define        paddsw_r2r(regs, regd)  mmx_r2r(paddsw, regs, regd)
+#define        paddsw(vars, vard)      mmx_m2m(paddsw, vars, vard)
+
+#define        paddsb_m2r(var, reg)    mmx_m2r(paddsb, var, reg)
+#define        paddsb_r2r(regs, regd)  mmx_r2r(paddsb, regs, regd)
+#define        paddsb(vars, vard)      mmx_m2m(paddsb, vars, vard)
+
+
+/*     4x16 and 8x8 Parallel ADDs using Unsigned Saturation arithmetic
+*/
+#define        paddusw_m2r(var, reg)   mmx_m2r(paddusw, var, reg)
+#define        paddusw_r2r(regs, regd) mmx_r2r(paddusw, regs, regd)
+#define        paddusw(vars, vard)     mmx_m2m(paddusw, vars, vard)
+
+#define        paddusb_m2r(var, reg)   mmx_m2r(paddusb, var, reg)
+#define        paddusb_r2r(regs, regd) mmx_r2r(paddusb, regs, regd)
+#define        paddusb(vars, vard)     mmx_m2m(paddusb, vars, vard)
+
+
+/*     2x32, 4x16, and 8x8 Parallel SUBs
+*/
+#define        psubd_m2r(var, reg)     mmx_m2r(psubd, var, reg)
+#define        psubd_r2r(regs, regd)   mmx_r2r(psubd, regs, regd)
+#define        psubd(vars, vard)       mmx_m2m(psubd, vars, vard)
+
+#define        psubw_m2r(var, reg)     mmx_m2r(psubw, var, reg)
+#define        psubw_r2r(regs, regd)   mmx_r2r(psubw, regs, regd)
+#define        psubw(vars, vard)       mmx_m2m(psubw, vars, vard)
+
+#define        psubb_m2r(var, reg)     mmx_m2r(psubb, var, reg)
+#define        psubb_r2r(regs, regd)   mmx_r2r(psubb, regs, regd)
+#define        psubb(vars, vard)       mmx_m2m(psubb, vars, vard)
+
+
+/*     4x16 and 8x8 Parallel SUBs using Saturation arithmetic
+*/
+#define        psubsw_m2r(var, reg)    mmx_m2r(psubsw, var, reg)
+#define        psubsw_r2r(regs, regd)  mmx_r2r(psubsw, regs, regd)
+#define        psubsw(vars, vard)      mmx_m2m(psubsw, vars, vard)
+
+#define        psubsb_m2r(var, reg)    mmx_m2r(psubsb, var, reg)
+#define        psubsb_r2r(regs, regd)  mmx_r2r(psubsb, regs, regd)
+#define        psubsb(vars, vard)      mmx_m2m(psubsb, vars, vard)
+
+
+/*     4x16 and 8x8 Parallel SUBs using Unsigned Saturation arithmetic
+*/
+#define        psubusw_m2r(var, reg)   mmx_m2r(psubusw, var, reg)
+#define        psubusw_r2r(regs, regd) mmx_r2r(psubusw, regs, regd)
+#define        psubusw(vars, vard)     mmx_m2m(psubusw, vars, vard)
+
+#define        psubusb_m2r(var, reg)   mmx_m2r(psubusb, var, reg)
+#define        psubusb_r2r(regs, regd) mmx_r2r(psubusb, regs, regd)
+#define        psubusb(vars, vard)     mmx_m2m(psubusb, vars, vard)
+
+
+/*     4x16 Parallel MULs giving Low 4x16 portions of results
+*/
+#define        pmullw_m2r(var, reg)    mmx_m2r(pmullw, var, reg)
+#define        pmullw_r2r(regs, regd)  mmx_r2r(pmullw, regs, regd)
+#define        pmullw(vars, vard)      mmx_m2m(pmullw, vars, vard)
+
+
+/*     4x16 Parallel MULs giving High 4x16 portions of results
+*/
+#define        pmulhw_m2r(var, reg)    mmx_m2r(pmulhw, var, reg)
+#define        pmulhw_r2r(regs, regd)  mmx_r2r(pmulhw, regs, regd)
+#define        pmulhw(vars, vard)      mmx_m2m(pmulhw, vars, vard)
+
+
+/*     4x16->2x32 Parallel Mul-ADD
+       (muls like pmullw, then adds adjacent 16-bit fields
+        in the multiply result to make the final 2x32 result)
+*/
+#define        pmaddwd_m2r(var, reg)   mmx_m2r(pmaddwd, var, reg)
+#define        pmaddwd_r2r(regs, regd) mmx_r2r(pmaddwd, regs, regd)
+#define        pmaddwd(vars, vard)     mmx_m2m(pmaddwd, vars, vard)
+
+
+/*     1x64 bitwise AND
+*/
+#ifdef BROKEN_PAND
+#define        pand_m2r(var, reg) \
+       { \
+               mmx_m2r(pandn, (mmx_t) -1LL, reg); \
+               mmx_m2r(pandn, var, reg); \
+       }
+#define        pand_r2r(regs, regd) \
+       { \
+               mmx_m2r(pandn, (mmx_t) -1LL, regd); \
+               mmx_r2r(pandn, regs, regd) \
+       }
+#define        pand(vars, vard) \
+       { \
+               movq_m2r(vard, mm0); \
+               mmx_m2r(pandn, (mmx_t) -1LL, mm0); \
+               mmx_m2r(pandn, vars, mm0); \
+               movq_r2m(mm0, vard); \
+       }
+#else
+#define        pand_m2r(var, reg)      mmx_m2r(pand, var, reg)
+#define        pand_r2r(regs, regd)    mmx_r2r(pand, regs, regd)
+#define        pand(vars, vard)        mmx_m2m(pand, vars, vard)
+#endif
+
+
+/*     1x64 bitwise AND with Not the destination
+*/
+#define        pandn_m2r(var, reg)     mmx_m2r(pandn, var, reg)
+#define        pandn_r2r(regs, regd)   mmx_r2r(pandn, regs, regd)
+#define        pandn(vars, vard)       mmx_m2m(pandn, vars, vard)
+
+
+/*     1x64 bitwise OR
+*/
+#define        por_m2r(var, reg)       mmx_m2r(por, var, reg)
+#define        por_r2r(regs, regd)     mmx_r2r(por, regs, regd)
+#define        por(vars, vard) mmx_m2m(por, vars, vard)
+
+
+/*     1x64 bitwise eXclusive OR
+*/
+#define        pxor_m2r(var, reg)      mmx_m2r(pxor, var, reg)
+#define        pxor_r2r(regs, regd)    mmx_r2r(pxor, regs, regd)
+#define        pxor(vars, vard)        mmx_m2m(pxor, vars, vard)
+
+
+/*     2x32, 4x16, and 8x8 Parallel CoMPare for EQuality
+       (resulting fields are either 0 or -1)
+*/
+#define        pcmpeqd_m2r(var, reg)   mmx_m2r(pcmpeqd, var, reg)
+#define        pcmpeqd_r2r(regs, regd) mmx_r2r(pcmpeqd, regs, regd)
+#define        pcmpeqd(vars, vard)     mmx_m2m(pcmpeqd, vars, vard)
+
+#define        pcmpeqw_m2r(var, reg)   mmx_m2r(pcmpeqw, var, reg)
+#define        pcmpeqw_r2r(regs, regd) mmx_r2r(pcmpeqw, regs, regd)
+#define        pcmpeqw(vars, vard)     mmx_m2m(pcmpeqw, vars, vard)
+
+#define        pcmpeqb_m2r(var, reg)   mmx_m2r(pcmpeqb, var, reg)
+#define        pcmpeqb_r2r(regs, regd) mmx_r2r(pcmpeqb, regs, regd)
+#define        pcmpeqb(vars, vard)     mmx_m2m(pcmpeqb, vars, vard)
+
+
+/*     2x32, 4x16, and 8x8 Parallel CoMPare for Greater Than
+       (resulting fields are either 0 or -1)
+*/
+#define        pcmpgtd_m2r(var, reg)   mmx_m2r(pcmpgtd, var, reg)
+#define        pcmpgtd_r2r(regs, regd) mmx_r2r(pcmpgtd, regs, regd)
+#define        pcmpgtd(vars, vard)     mmx_m2m(pcmpgtd, vars, vard)
+
+#define        pcmpgtw_m2r(var, reg)   mmx_m2r(pcmpgtw, var, reg)
+#define        pcmpgtw_r2r(regs, regd) mmx_r2r(pcmpgtw, regs, regd)
+#define        pcmpgtw(vars, vard)     mmx_m2m(pcmpgtw, vars, vard)
+
+#define        pcmpgtb_m2r(var, reg)   mmx_m2r(pcmpgtb, var, reg)
+#define        pcmpgtb_r2r(regs, regd) mmx_r2r(pcmpgtb, regs, regd)
+#define        pcmpgtb(vars, vard)     mmx_m2m(pcmpgtb, vars, vard)
+
+
+/*     1x64, 2x32, and 4x16 Parallel Shift Left Logical
+*/
+#define        psllq_i2r(imm, reg)     mmx_i2r(psllq, imm, reg)
+#define        psllq_m2r(var, reg)     mmx_m2r(psllq, var, reg)
+#define        psllq_r2r(regs, regd)   mmx_r2r(psllq, regs, regd)
+#define        psllq(vars, vard)       mmx_m2m(psllq, vars, vard)
+
+#define        pslld_i2r(imm, reg)     mmx_i2r(pslld, imm, reg)
+#define        pslld_m2r(var, reg)     mmx_m2r(pslld, var, reg)
+#define        pslld_r2r(regs, regd)   mmx_r2r(pslld, regs, regd)
+#define        pslld(vars, vard)       mmx_m2m(pslld, vars, vard)
+
+#define        psllw_i2r(imm, reg)     mmx_i2r(psllw, imm, reg)
+#define        psllw_m2r(var, reg)     mmx_m2r(psllw, var, reg)
+#define        psllw_r2r(regs, regd)   mmx_r2r(psllw, regs, regd)
+#define        psllw(vars, vard)       mmx_m2m(psllw, vars, vard)
+
+
+/*     1x64, 2x32, and 4x16 Parallel Shift Right Logical
+*/
+#define        psrlq_i2r(imm, reg)     mmx_i2r(psrlq, imm, reg)
+#define        psrlq_m2r(var, reg)     mmx_m2r(psrlq, var, reg)
+#define        psrlq_r2r(regs, regd)   mmx_r2r(psrlq, regs, regd)
+#define        psrlq(vars, vard)       mmx_m2m(psrlq, vars, vard)
+
+#define        psrld_i2r(imm, reg)     mmx_i2r(psrld, imm, reg)
+#define        psrld_m2r(var, reg)     mmx_m2r(psrld, var, reg)
+#define        psrld_r2r(regs, regd)   mmx_r2r(psrld, regs, regd)
+#define        psrld(vars, vard)       mmx_m2m(psrld, vars, vard)
+
+#define        psrlw_i2r(imm, reg)     mmx_i2r(psrlw, imm, reg)
+#define        psrlw_m2r(var, reg)     mmx_m2r(psrlw, var, reg)
+#define        psrlw_r2r(regs, regd)   mmx_r2r(psrlw, regs, regd)
+#define        psrlw(vars, vard)       mmx_m2m(psrlw, vars, vard)
+
+
+/*     2x32 and 4x16 Parallel Shift Right Arithmetic
+*/
+#define        psrad_i2r(imm, reg)     mmx_i2r(psrad, imm, reg)
+#define        psrad_m2r(var, reg)     mmx_m2r(psrad, var, reg)
+#define        psrad_r2r(regs, regd)   mmx_r2r(psrad, regs, regd)
+#define        psrad(vars, vard)       mmx_m2m(psrad, vars, vard)
+
+#define        psraw_i2r(imm, reg)     mmx_i2r(psraw, imm, reg)
+#define        psraw_m2r(var, reg)     mmx_m2r(psraw, var, reg)
+#define        psraw_r2r(regs, regd)   mmx_r2r(psraw, regs, regd)
+#define        psraw(vars, vard)       mmx_m2m(psraw, vars, vard)
+
+
+/*     2x32->4x16 and 4x16->8x8 PACK and Signed Saturate
+       (packs source and dest fields into dest in that order)
+*/
+#define        packssdw_m2r(var, reg)  mmx_m2r(packssdw, var, reg)
+#define        packssdw_r2r(regs, regd) mmx_r2r(packssdw, regs, regd)
+#define        packssdw(vars, vard)    mmx_m2m(packssdw, vars, vard)
+
+#define        packsswb_m2r(var, reg)  mmx_m2r(packsswb, var, reg)
+#define        packsswb_r2r(regs, regd) mmx_r2r(packsswb, regs, regd)
+#define        packsswb(vars, vard)    mmx_m2m(packsswb, vars, vard)
+
+
+/*     4x16->8x8 PACK and Unsigned Saturate
+       (packs source and dest fields into dest in that order)
+*/
+#define        packuswb_m2r(var, reg)  mmx_m2r(packuswb, var, reg)
+#define        packuswb_r2r(regs, regd) mmx_r2r(packuswb, regs, regd)
+#define        packuswb(vars, vard)    mmx_m2m(packuswb, vars, vard)
+
+
+/*     2x32->1x64, 4x16->2x32, and 8x8->4x16 UNPaCK Low
+       (interleaves low half of dest with low half of source
+        as padding in each result field)
+*/
+#define        punpckldq_m2r(var, reg) mmx_m2r(punpckldq, var, reg)
+#define        punpckldq_r2r(regs, regd) mmx_r2r(punpckldq, regs, regd)
+#define        punpckldq(vars, vard)   mmx_m2m(punpckldq, vars, vard)
+
+#define        punpcklwd_m2r(var, reg) mmx_m2r(punpcklwd, var, reg)
+#define        punpcklwd_r2r(regs, regd) mmx_r2r(punpcklwd, regs, regd)
+#define        punpcklwd(vars, vard)   mmx_m2m(punpcklwd, vars, vard)
+
+#define        punpcklbw_m2r(var, reg) mmx_m2r(punpcklbw, var, reg)
+#define        punpcklbw_r2r(regs, regd) mmx_r2r(punpcklbw, regs, regd)
+#define        punpcklbw(vars, vard)   mmx_m2m(punpcklbw, vars, vard)
+
+
+/*     2x32->1x64, 4x16->2x32, and 8x8->4x16 UNPaCK High
+       (interleaves high half of dest with high half of source
+        as padding in each result field)
+*/
+#define        punpckhdq_m2r(var, reg) mmx_m2r(punpckhdq, var, reg)
+#define        punpckhdq_r2r(regs, regd) mmx_r2r(punpckhdq, regs, regd)
+#define        punpckhdq(vars, vard)   mmx_m2m(punpckhdq, vars, vard)
+
+#define        punpckhwd_m2r(var, reg) mmx_m2r(punpckhwd, var, reg)
+#define        punpckhwd_r2r(regs, regd) mmx_r2r(punpckhwd, regs, regd)
+#define        punpckhwd(vars, vard)   mmx_m2m(punpckhwd, vars, vard)
+
+#define        punpckhbw_m2r(var, reg) mmx_m2r(punpckhbw, var, reg)
+#define        punpckhbw_r2r(regs, regd) mmx_r2r(punpckhbw, regs, regd)
+#define        punpckhbw(vars, vard)   mmx_m2m(punpckhbw, vars, vard)
+
+
+/*     Empty MMx State
+       (used to clean-up when going from mmx to float use
+        of the registers that are shared by both; note that
+        there is no float-to-mmx operation needed, because
+        only the float tag word info is corruptible)
+*/
+#ifdef MMX_TRACE
+
+#define        emms() \
+       { \
+               fprintf(stderr, "emms()\n"); \
+               __asm__ __volatile__ ("emms"); \
+       }
+
+#else
+
+#define        emms()                  __asm__ __volatile__ ("emms")
+
+#endif
+
+#endif
+
diff --git a/terminatorX/src/smallknob/Makefile.am b/terminatorX/src/smallknob/Makefile.am
new file mode 100644 (file)
index 0000000..3dd4155
--- /dev/null
@@ -0,0 +1,50 @@
+SOURCES =      knob0.xpm\
+               knob1.xpm\
+               knob10.xpm\
+               knob11.xpm\
+               knob12.xpm\
+               knob13.xpm\
+               knob14.xpm\
+               knob15.xpm\
+               knob16.xpm\
+               knob17.xpm\
+               knob18.xpm\
+               knob19.xpm\
+               knob2.xpm\
+               knob20.xpm\
+               knob21.xpm\
+               knob22.xpm\
+               knob23.xpm\
+               knob24.xpm\
+               knob25.xpm\
+               knob26.xpm\
+               knob27.xpm\
+               knob28.xpm\
+               knob29.xpm\
+               knob3.xpm\
+               knob30.xpm\
+               knob31.xpm\
+               knob32.xpm\
+               knob33.xpm\
+               knob34.xpm\
+               knob35.xpm\
+               knob36.xpm\
+               knob37.xpm\
+               knob38.xpm\
+               knob39.xpm\
+               knob4.xpm\
+               knob40.xpm\
+               knob41.xpm\
+               knob42.xpm\
+               knob43.xpm\
+               knob44.xpm\
+               knob45.xpm\
+               knob46.xpm\
+               knob47.xpm\
+               knob48.xpm\
+               knob49.xpm\
+               knob5.xpm\
+               knob6.xpm\
+               knob7.xpm\
+               knob8.xpm\
+               knob9.xpm
diff --git a/terminatorX/src/smallknob/Makefile.in b/terminatorX/src/smallknob/Makefile.in
new file mode 100644 (file)
index 0000000..99d6616
--- /dev/null
@@ -0,0 +1,182 @@
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ../..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+AWK = @AWK@
+CC = @CC@
+CXX = @CXX@
+GTK_CFLAGS = @GTK_CFLAGS@
+GTK_CONFIG = @GTK_CONFIG@
+GTK_LIBS = @GTK_LIBS@
+LN_S = @LN_S@
+MAKEINFO = @MAKEINFO@
+MPG123_PROG = @MPG123_PROG@
+PACKAGE = @PACKAGE@
+RANLIB = @RANLIB@
+SOX_PROG = @SOX_PROG@
+VERSION = @VERSION@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+x_libraries = @x_libraries@
+
+SOURCES = knob0.xpm            knob1.xpm               knob10.xpm              knob11.xpm              knob12.xpm              knob13.xpm              knob14.xpm              knob15.xpm              knob16.xpm              knob17.xpm              knob18.xpm              knob19.xpm              knob2.xpm               knob20.xpm              knob21.xpm              knob22.xpm              knob23.xpm              knob24.xpm              knob25.xpm              knob26.xpm              knob27.xpm              knob28.xpm              knob29.xpm              knob3.xpm               knob30.xpm              knob31.xpm              knob32.xpm              knob33.xpm              knob34.xpm              knob35.xpm              knob36.xpm              knob37.xpm              knob38.xpm              knob39.xpm              knob4.xpm               knob40.xpm              knob41.xpm              knob42.xpm              knob43.xpm              knob44.xpm              knob45.xpm              knob46.xpm              knob47.xpm              knob48.xpm              knob49.xpm              knob5.xpm               knob6.xpm               knob7.xpm               knob8.xpm               knob9.xpm
+
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = ../../config.h
+CONFIG_CLEAN_FILES = 
+DIST_COMMON =  Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = gtar
+GZIP_ENV = --best
+all: all-redirect
+.SUFFIXES:
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+       cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps src/smallknob/Makefile
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
+       cd $(top_builddir) \
+         && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+tags: TAGS
+TAGS:
+
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = src/smallknob
+
+distdir: $(DISTFILES)
+       @for file in $(DISTFILES); do \
+         d=$(srcdir); \
+         if test -d $$d/$$file; then \
+           cp -pr $$d/$$file $(distdir)/$$file; \
+         else \
+           test -f $(distdir)/$$file \
+           || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+           || cp -p $$d/$$file $(distdir)/$$file || :; \
+         fi; \
+       done
+info-am:
+info: info-am
+dvi-am:
+dvi: dvi-am
+check-am: all-am
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am:
+install-data: install-data-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am:
+uninstall: uninstall-am
+all-am: Makefile
+all-redirect: all-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+
+
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -rm -f Makefile $(CONFIG_CLEAN_FILES)
+       -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+maintainer-clean-generic:
+mostlyclean-am:  mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am:  clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am:  distclean-generic clean-am
+
+distclean: distclean-am
+
+maintainer-clean-am:  maintainer-clean-generic distclean-am
+       @echo "This command is intended for maintainers to use;"
+       @echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: tags distdir info-am info dvi-am dvi check check-am \
+installcheck-am installcheck install-exec-am install-exec \
+install-data-am install-data install-am install uninstall-am uninstall \
+all-redirect all-am all installdirs mostlyclean-generic \
+distclean-generic clean-generic maintainer-clean-generic clean \
+mostlyclean distclean maintainer-clean
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/terminatorX/src/smallknob/knob0.xpm b/terminatorX/src/smallknob/knob0.xpm
new file mode 100644 (file)
index 0000000..7b982bc
--- /dev/null
@@ -0,0 +1,290 @@
+/* XPM */
+static char * knob0_xpm[] = {
+"31 31 256 2",
+"      c None",
+".     c #0E0202",
+"+     c #3D2F2E",
+"@     c #8D817F",
+"#     c #F1E2E0",
+"$     c #DCCAC6",
+"%     c #9A322E",
+"&     c #BAAEAC",
+"*     c #721A12",
+"=     c #726864",
+"-     c #998E8B",
+";     c #4E0E0A",
+">     c #62322E",
+",     c #302222",
+"'     c #C6928A",
+")     c #9E564C",
+"!     c #B2A6A5",
+"~     c #3C0604",
+"{     c #66423E",
+"]     c #BA8276",
+"^     c #251A16",
+"/     c #A69A97",
+"(     c #DAB2AA",
+"_     c #96463E",
+":     c #C66256",
+"<     c #B2221E",
+"[     c #230602",
+"}     c #625652",
+"|     c #CEC2C0",
+"1     c #AA7E76",
+"2     c #A65E5A",
+"3     c #554746",
+"4     c #B88E88",
+"5     c #E6CAC6",
+"6     c #1D120E",
+"7     c #A24A42",
+"8     c #FAEEEB",
+"9     c #886864",
+"0     c #D6AEAA",
+"a     c #BC9E98",
+"b     c #C2A29E",
+"c     c #824A42",
+"d     c #E6D2CE",
+"e     c #1B0202",
+"f     c #BA6252",
+"g     c #6E362E",
+"h     c #EED2D0",
+"i     c #AC8E88",
+"j     c #AE9A97",
+"k     c #7E5B57",
+"l     c #483632",
+"m     c #A67E7A",
+"n     c #C6BAB7",
+"o     c #A66662",
+"p     c #B6423E",
+"q     c #F6E2E2",
+"r     c #897975",
+"s     c #3A0A06",
+"t     c #8E4E46",
+"u     c #4A201C",
+"v     c #240A08",
+"w     c #604A48",
+"x     c #BEAEAC",
+"y     c #F6EAE9",
+"z     c #C67256",
+"A     c #DCBAB4",
+"B     c #1C0A07",
+"C     c #813B33",
+"D     c #AE9E9B",
+"E     c #EEDDDB",
+"F     c #827876",
+"G     c #D4AAA2",
+"H     c #4E322E",
+"I     c #9E6E6A",
+"J     c #BAA6A3",
+"K     c #B0766E",
+"L     c #978A87",
+"M     c #381816",
+"N     c #A65046",
+"O     c #74504A",
+"P     c #160202",
+"Q     c #D29E7E",
+"R     c #BA5642",
+"S     c #9E7E7A",
+"T     c #661A16",
+"U     c #BE463E",
+"V     c #C4B6B3",
+"W     c #925C54",
+"X     c #A89290",
+"Y     c #6A1E1A",
+"Z     c #3E2A26",
+"`     c #DABEBE",
+" .    c #725A56",
+"..    c #CAB1AE",
+"+.    c #CFB5B2",
+"@.    c #561E1A",
+"#.    c #221312",
+"$.    c #E8DAD6",
+"%.    c #FADAD6",
+"&.    c #4C3E3A",
+"*.    c #CEA9A5",
+"=.    c #D2866A",
+"-.    c #645252",
+";.    c #A29692",
+">.    c #AE827A",
+",.    c #B69E9A",
+"'.    c #7C6A66",
+").    c #FDE2DF",
+"!.    c #92362A",
+"~.    c #B64A3E",
+"{.    c #8E7672",
+"].    c #AAA29E",
+"^.    c #6D615F",
+"/.    c #9A7872",
+"(.    c #7C2A1C",
+"_.    c #C29C98",
+":.    c #392A27",
+"<.    c #A2827A",
+"[.    c #B66E64",
+"}.    c #FAEAE9",
+"|.    c #B6928E",
+"1.    c #C2A6A2",
+"2.    c #CFBBBA",
+"3.    c #AE928E",
+"4.    c #A08E8B",
+"5.    c #946C68",
+"6.    c #A69E9A",
+"7.    c #B5857D",
+"8.    c #120202",
+"9.    c #160A0A",
+"0.    c #543A38",
+"a.    c #E8C6C2",
+"b.    c #C69A92",
+"c.    c #DCCECA",
+"d.    c #5A4E4C",
+"e.    c #907A78",
+"f.    c #BE948E",
+"g.    c #CA6E62",
+"h.    c #AEA2A0",
+"i.    c #C6B1AD",
+"j.    c #D69E9A",
+"k.    c #6E4642",
+"l.    c #1A0603",
+"m.    c #120603",
+"n.    c #B6AAA7",
+"o.    c #928684",
+"p.    c #807270",
+"q.    c #F6DAD8",
+"r.    c #95817E",
+"s.    c #BAAAA8",
+"t.    c #BEB2AE",
+"u.    c #C67E72",
+"v.    c #2C0602",
+"w.    c #8A5A52",
+"x.    c #4A160E",
+"y.    c #32120E",
+"z.    c #A69694",
+"A.    c #B05040",
+"B.    c #8A4E46",
+"C.    c #C26662",
+"D.    c #3E0E06",
+"E.    c #AE8682",
+"F.    c #2B1D19",
+"G.    c #B69A96",
+"H.    c #FEEEEA",
+"I.    c #9D8582",
+"J.    c #DEC6C2",
+"K.    c #A58985",
+"L.    c #C5857D",
+"M.    c #9A3A32",
+"N.    c #9A5242",
+"O.    c #7E524E",
+"P.    c #726262",
+"Q.    c #5A261E",
+"R.    c #FAE6E4",
+"S.    c #9E928F",
+"T.    c #38221E",
+"U.    c #6C504C",
+"V.    c #D4C2BE",
+"W.    c #FEEAE6",
+"X.    c #2A1410",
+"Y.    c #8A362A",
+"Z.    c #53150E",
+"`.    c #6C5A58",
+" +    c #BE2622",
+".+    c #D27A5A",
+"++    c #AA6E66",
+"@+    c #F2E6E4",
+"#+    c #FEE6E5",
+"$+    c #B2524E",
+"%+    c #8A6E6A",
+"&+    c #1B0E0B",
+"*+    c #321E1A",
+"=+    c #160602",
+"-+    c #92625E",
+";+    c #B28A82",
+">+    c #F6D6D2",
+",+    c #CAAAA6",
+"'+    c #826E6E",
+")+    c #B6A6A4",
+"!+    c #CB9A92",
+"~+    c #BBA29D",
+"{+    c #B6A2A0",
+"]+    c #EAD2CE",
+"^+    c #2A0E0E",
+"/+    c #AA9A98",
+"(+    c #EDCDCA",
+"_+    c #D6B6AE",
+":+    c #95726E",
+"<+    c #B2A2A0",
+"[+    c #F0D6D3",
+"}+    c #F6E6E6",
+"|+    c #C4AAA7",
+"1+    c #F5DEDD",
+"2+    c #6E423A",
+"3+    c #CE6656",
+"4+    c #E2C0BA",
+"5+    c #A2766E",
+"6+    c #1E0603",
+"7+    c #DED2CF",
+"8+    c #CC9E96",
+"9+    c #FEEEEE",
+"0+    c #422E2A",
+"a+    c #5A4642",
+"b+    c #664A46",
+"c+    c #C2AEAB",
+"d+    c #562E2A",
+"e+    c #462A26",
+"f+    c #5E1E12",
+"g+    c #BEAAA7",
+"h+    c #AA9693",
+"i+    c #B6523E",
+"j+    c #A23A32",
+"k+    c #A2524A",
+"l+    c #7A625E",
+"m+    c #240E0A",
+"n+    c #EADEDC",
+"o+    c #4E4240",
+"p+    c #7A6E6C",
+"q+    c #AE9692",
+"r+    c #AA8A84",
+"s+    c #D6C6C4",
+"t+    c #B29E9B",
+"u+    c #BEA6A2",
+"v+    c #A2928F",
+"w+    c #3C1210",
+"x+    c #D69E8A",
+"y+    c #B49692",
+"z+    c #AA9E9C",
+"A+    c #C2B2AF",
+"B+    c #1E1612",
+"C+    c #E3D6D2",
+"D+    c #CABEBA",
+"E+    c #FBDEDB",
+"F+    c #B29A98",
+"G+    c #FEEAEA",
+"                                                              ",
+"                                                              ",
+"                          E @+}+@+# C+V                       ",
+"                    R.}.}.}.y 8 }.8 @+E 7+/ r                 ",
+"                q }.H.8 }.H.8 8 8 y y # c.n ].^.-.            ",
+"              R.H.H.}.}.8 9+9+9+y @+$.c.s+n & z+- `.          ",
+"            R.}.H.H.9+9+H.H.8 }+# $.c.D+V t.& & ! o.o+        ",
+"          [+R.G+G+G+H.H.8 }.@+# 7+s+n V t.& & n.n.6.= :.      ",
+"        [+# }.W.H.W.G+G+R.q C+c.| n A+& & n.! ! ! h.- 3 6     ",
+"        1+W.W.W.W.G+W.R.# d $ 2.V A+x x n.n.n.! h.h.6.r F.    ",
+"      (+q #+W.W.W.W.q $.d s+2.+.t.x s.s.s.)+! h.].z+6.@ , m.  ",
+"      1+).#+#+#+).1+[+J.` +.i.c+g+& s.n.! <+h.h.D 6./ L o+B   ",
+"      E+#+#+#+).q.(+J.2.V i.c+c+g+s.J {+! <+h.z+/+/ / ;.p+^   ",
+"    *.q.).).E+[+5 V.+...,+c+g+s.J J {+)+<+h./+/+/ ;.S.- F ^ . ",
+"    ,+[+E+>+h J.A ....|+|+|+u+u+J )+<+t+D D /+z.;.;.S.- '+B+. ",
+"    _.(+>+(+4+_+*._._.1.b ~+~+~+{+,.t+D j /+/ z.;.S.L @ = B+. ",
+"    ;+4+a._+0 *.|.:+:+r+G.b ~+a {+t+t+D /+h+z.v+- L @ '.w &+. ",
+"    m G 0 G 8+1 2+u u { :+y+,.,.F+F+j h+h+v+S.4.o.F ^.d.+ 9.. ",
+"    W 5+!+!+K g x.D.w+d+O m y+G.G.q+q+h+z.v+L r.p.^.3 + 6 . . ",
+"    B.W L.K C f+Z.Z.Q.2+k.k I.y+q+q+h+4.4.I.e.'.} l :.B+m.. . ",
+"      2 [.k+Y.(.(.C c w.O.O 9 i 3.3.X K.r.F P.w l , B+m.. .   ",
+"      k+N A.A.R A.N.B.W I 9 /.K.3.4.K.r.p. .o++ F.&+=+. . 8.  ",
+"      _ 7 3+=.Q g.~.) ++7.;+|.i r+I.e.9 -.&.:.X.&+8.. . . 8.  ",
+"      U 7 C.j.Q .+f [.] 4 f._.i <.%+l+w l *+#.9.8.. 8.. 8.    ",
+"        j+p : 3+C.u.L.' b._.r+S p. .a+0+*+m+=+m.8.8.8.8.B     ",
+"         +% !.!.R u.!+8+f.E./.9 U.0.Z X.B P P P 8.. . m.      ",
+"          < * T C 2 >.>.m :+k a+H T.X.6+P 8.8.8.8.8.P         ",
+"              Y Z.@.> O.k U.0.e+M m+6+P =+=+P 8.8.P           ",
+"                ; ~ s w+w+y.^+m+[ e l.e P 8.=+P B             ",
+"                    ~ v.v.[ [ e l.=+e P e l.6+                ",
+"                          e e e e e P P                       "};
diff --git a/terminatorX/src/smallknob/knob1.xpm b/terminatorX/src/smallknob/knob1.xpm
new file mode 100644 (file)
index 0000000..f5f07db
--- /dev/null
@@ -0,0 +1,290 @@
+/* XPM */
+static char * knob1_xpm[] = {
+"31 31 256 2",
+"      c None",
+".     c #0E0202",
+"+     c #3E3232",
+"@     c #867A7A",
+"#     c #EDDEE0",
+"$     c #D6C7CA",
+"%     c #B2324E",
+"&     c #B9AAAD",
+"*     c #6E1420",
+"=     c #635255",
+"-     c #4A0A12",
+";     c #9C8E91",
+">     c #963446",
+",     c #2E2222",
+"'     c #BF9297",
+")     c #C44C56",
+"!     c #38060C",
+"~     c #AA525E",
+"{     c #CA7E86",
+"]     c #8A3A4A",
+"^     c #A69A9D",
+"/     c #261A1A",
+"(     c #7E7272",
+"_     c #DAAAB2",
+":     c #2A0206",
+"<     c #B05E6C",
+"[     c #A47A80",
+"}     c #251619",
+"|     c #89575E",
+"1     c #C6BABA",
+"2     c #72363E",
+"3     c #E6C6CE",
+"4     c #240206",
+"5     c #B28E92",
+"6     c #B2262A",
+"7     c #CE5676",
+"8     c #C29AA1",
+"9     c #4A3A3A",
+"0     c #592D35",
+"a     c #B2A6A7",
+"b     c #CFADB2",
+"c     c #F2E6E6",
+"d     c #786668",
+"e     c #E2CECE",
+"f     c #120202",
+"g     c #AE626E",
+"h     c #964856",
+"i     c #BA9A9E",
+"j     c #9E5E66",
+"k     c #7A2E3A",
+"l     c #A88E92",
+"m     c #7D565D",
+"n     c #9E868A",
+"o     c #F4D2D6",
+"p     c #866A6E",
+"q     c #1D0F11",
+"r     c #D3A5AB",
+"s     c #F3DEE1",
+"t     c #928286",
+"u     c #361C1E",
+"v     c #AE9A9D",
+"w     c #564A4E",
+"x     c #C19EA5",
+"y     c #6A5A5A",
+"z     c #C4B6B8",
+"A     c #E0B6BE",
+"B     c #1A0203",
+"C     c #D26286",
+"D     c #AA8A8E",
+"E     c #2C0E10",
+"F     c #220A0E",
+"G     c #C8AAB0",
+"H     c #BE6672",
+"I     c #9E666E",
+"J     c #B44458",
+"K     c #AEA2A3",
+"L     c #FAE6EA",
+"M     c #844652",
+"N     c #E4D2D4",
+"O     c #664246",
+"P     c #462626",
+"Q     c #9A2E36",
+"R     c #661622",
+"S     c #FBDEE3",
+"T     c #544547",
+"U     c #A83246",
+"V     c #B07C84",
+"W     c #B66A72",
+"X     c #4E161E",
+"Y     c #A69295",
+"Z     c #BFB2B5",
+"`     c #6A2630",
+" .    c #463232",
+"..    c #CA3A46",
+"+.    c #DCBEC2",
+"@.    c #9D7176",
+"#.    c #AA4252",
+"$.    c #CCA6AC",
+"%.    c #CA4E7A",
+"&.    c #924E5A",
+"*.    c #FAEAEC",
+"=.    c #866266",
+"-.    c #D0B6BA",
+";.    c #BEAAAE",
+">.    c #F2D7DB",
+",.    c #1A0A0E",
+"'.    c #AE9296",
+").    c #BFA2A7",
+"!.    c #BA868E",
+"~.    c #6B4146",
+"{.    c #E7BEC5",
+"].    c #160A0A",
+"^.    c #E2D6D6",
+"/.    c #CEBABE",
+"(.    c #877578",
+"_.    c #362222",
+":.    c #C25A6A",
+"<.    c #DDCED0",
+"[.    c #401018",
+"}.    c #C6828E",
+"|.    c #761E26",
+"1.    c #CC909A",
+"2.    c #B69A9E",
+"3.    c #BC767E",
+"4.    c #978689",
+"5.    c #CA6E7A",
+"6.    c #8F7D7F",
+"7.    c #B49298",
+"8.    c #160202",
+"9.    c #705E60",
+"0.    c #CE98A2",
+"a.    c #725256",
+"b.    c #241113",
+"c.    c #A64A56",
+"d.    c #46161E",
+"e.    c #440A14",
+"f.    c #36262A",
+"g.    c #A28E92",
+"h.    c #2E1618",
+"i.    c #5A3E42",
+"j.    c #B2A2A5",
+"k.    c #AA727A",
+"l.    c #E6D8DA",
+"m.    c #A69699",
+"n.    c #543236",
+"o.    c #5A121E",
+"p.    c #BAA6AA",
+"q.    c #664A4E",
+"r.    c #B18991",
+"s.    c #FEDAE2",
+"t.    c #2A0A0E",
+"u.    c #AE9EA1",
+"v.    c #C8B2B6",
+"w.    c #7A4E56",
+"x.    c #FAE2E6",
+"y.    c #BFAEB2",
+"z.    c #763A42",
+"A.    c #A08A8E",
+"B.    c #92666A",
+"C.    c #7E5E62",
+"D.    c #BE868A",
+"E.    c #C6A6AA",
+"F.    c #7A1216",
+"G.    c #925E66",
+"H.    c #C98A91",
+"I.    c #BA3A3E",
+"J.    c #BA9EA3",
+"K.    c #CFBEC2",
+"L.    c #BA949A",
+"M.    c #9E9292",
+"N.    c #9E3A3E",
+"O.    c #7E6E72",
+"P.    c #D05E78",
+"Q.    c #AE727C",
+"R.    c #521E26",
+"S.    c #926E74",
+"T.    c #1D0609",
+"U.    c #CE6A8E",
+"V.    c #FEEAEB",
+"W.    c #EED6DA",
+"X.    c #967C80",
+"Y.    c #FEE6EA",
+"Z.    c #BE465A",
+"`.    c #AA9E9F",
+" +    c #AA6672",
+".+    c #D66E7E",
+"++    c #F5E2E5",
+"@+    c #3E282C",
+"#+    c #F6EAEA",
+"$+    c #120606",
+"%+    c #462E32",
+"&+    c #C0A6AB",
+"*+    c #988A8C",
+"=+    c #B5969A",
+"-+    c #160608",
+";+    c #72424A",
+">+    c #B63A4E",
+",+    c #8E7676",
+"'+    c #F7D9DF",
+")+    c #B6878E",
+"!+    c #DECACE",
+"~+    c #AA7E82",
+"{+    c #A68589",
+"]+    c #A29295",
+"^+    c #1E0204",
+"/+    c #D6BEC2",
+"(+    c #EEE2E4",
+"_+    c #2C1D1F",
+":+    c #ECC9CF",
+"<+    c #503D3E",
+"[+    c #5A4646",
+"}+    c #E2C2C6",
+"|+    c #B6A6A9",
+"1+    c #D6AEB2",
+"2+    c #AE969A",
+"3+    c #716266",
+"4+    c #BAA2A6",
+"5+    c #EBDADD",
+"6+    c #9E3242",
+"7+    c #AA9A9D",
+"8+    c #EACED2",
+"9+    c #5E4C50",
+"0+    c #FEE2E7",
+"a+    c #B69EA2",
+"b+    c #D2C2C6",
+"c+    c #F6E6E9",
+"d+    c #B29EA2",
+"e+    c #BE4E62",
+"f+    c #32020A",
+"g+    c #7E6A6E",
+"h+    c #AE8E96",
+"i+    c #825A62",
+"j+    c #9A8282",
+"k+    c #725A5E",
+"l+    c #CAB6BA",
+"m+    c #320E12",
+"n+    c #EAD2D6",
+"o+    c #B67E8A",
+"p+    c #56161E",
+"q+    c #D6B6BA",
+"r+    c #C2AAAE",
+"s+    c #3E2226",
+"t+    c #7E1A2A",
+"u+    c #320A0E",
+"v+    c #824E56",
+"w+    c #A68A8E",
+"x+    c #827678",
+"y+    c #A27E82",
+"z+    c #24060A",
+"A+    c #C6AEB2",
+"B+    c #DCC2C6",
+"C+    c #3A2A2E",
+"D+    c #B29A9E",
+"E+    c #AA9296",
+"F+    c #B6A2A6",
+"G+    c #AA9698",
+"                                                              ",
+"                                                              ",
+"                          N 5+# # 5+<.;.                      ",
+"                    ++L L ++++c+++c (+l.# $ (.                ",
+"                ++L *.c+c+c+c+#+c+c+#+(+# <.Z ]+<+            ",
+"              x.Y.V.L *.*.*.L L c+c+# l.<.$ 1 K 3+=           ",
+"            W.c+L *.L *.*.*.*.L ++# ^.$ /.z & & ^ *+9+        ",
+"          >.s L L Y.V.Y.L L ++# l.!+b+1 Z y.& |+a `.@ C+      ",
+"        :+x.0+V.V.Y.V.Y.L ++5+e $ K.v.y.& & a a j.u.; w b.    ",
+"        W.x.Y.Y.Y.Y.x.x.s W.!+K.l+y.y.& & & a j.K K ^ @ C+    ",
+"      }+'+x.0+0+Y.x.s W.!+B+/.v.y.;.& p.|+|+a K `.`.^ *+T q   ",
+"      :+s 0+0+x.S '+8+B+/+l+A+y.y.& p.|+j.j.d+u.u.^ m.M.3+}   ",
+"      o S S s.>.n+:+/.1+v.y.r+&+&+&+F+|+j.K u.7+7+^ m.M.( /   ",
+"    $.o s.s.o 3 {.1+-.A+G E.&+&+p.F+F+a+d+u.7+7+^ ]+M.M.x+} . ",
+"    8 :+o :+{.q+1+G $.E.&+E.).4+4+F+d+d+v v G+m.m.]+M.; x+/ . ",
+"    )+{.{.A 1+r 8 r.r.L.x x 4+J.a+a+d+v v 7+m.Y ]+M.*+4.O./ . ",
+"    V r _ r 0.!.| 0 0 m r.8 J.J.2.D+D+2+G+G+m.]+g.; 4.6.3+b.. ",
+"    j o+1.1.Q.z.X ! [.~.S.7.i =+D+=+2+G+E+Y g.; *+t @ d w q . ",
+"    j Q.{ g k o.- e.X ;+m ~+=+=+=+2+2+Y Y g.A.4.6.O.9.T _+. . ",
+"    < W g > t+* R ` M w.w.=.{+7.2+'.l E+A.*+t (.3+= <+f.].. . ",
+"      #.J >+% U > ] M G.v+=.y+h+'.E+l A.j+(.g+y T C+, q . .   ",
+"      6+>+%.U.%.>+h &.k.[ [ 5 5 l w+n X.(.3+9+ .f./ ,.$+. f   ",
+"      #.Z..+b+C e+~  +V !.L.).5 {+X.,+=.= <+%+/ q -+. . . f   ",
+"      ..I.) C P.Z.H 3.}.' 8 L.{+X.p k+[+%+_.b.F 8.. . . .     ",
+"        N.Q U :.5.{ H.1.' )+[ S.d q.9 P h.q -+f f f f f f     ",
+"        6 F.|.h 3.H.H.)+[ S.=.a.i.%+u b.T.8.f . f . . f       ",
+"            * ` 2 | I @.B.m O 0 u m+F 8.8.8.8.f f . f         ",
+"              o.e.X n.;+~.n.s+u E T.8.8.8.f f . f 8.          ",
+"                ! f+u+m+E t.z+T.B B B 8.8.f f f B             ",
+"                    f+: 4 4 ^+^+B B 8.8.8.8.B                 ",
+"                          4 B B 8.8.B F                       "};
diff --git a/terminatorX/src/smallknob/knob10.xpm b/terminatorX/src/smallknob/knob10.xpm
new file mode 100644 (file)
index 0000000..60c2242
--- /dev/null
@@ -0,0 +1,290 @@
+/* XPM */
+static char * knob10_xpm[] = {
+"31 31 256 2",
+"      c None",
+".     c #0A0202",
+"+     c #342626",
+"@     c #624E4E",
+"#     c #7E7272",
+"$     c #B2A6A6",
+"%     c #BA7272",
+"&     c #D25E3E",
+"*     c #AA322E",
+"=     c #928685",
+"-     c #5C1210",
+";     c #A64E4E",
+">     c #C27A76",
+",     c #E2A69E",
+"'     c #722A26",
+")     c #520A0A",
+"!     c #9E9292",
+"~     c #985656",
+"{     c #261A1A",
+"]     c #4B3E3E",
+"^     c #BC8E8E",
+"/     c #C2A6A6",
+"(     c #652622",
+"_     c #CAB6B6",
+":     c #825252",
+"<     c #221616",
+"[     c #E0B0AC",
+"}     c #AE7676",
+"|     c #DA8E82",
+"1     c #A69A98",
+"2     c #726666",
+"3     c #BA9696",
+"4     c #260A0A",
+"5     c #AA8686",
+"6     c #1A0E0E",
+"7     c #BE5E5E",
+"8     c #DEBEBA",
+"9     c #4E2E2E",
+"0     c #867A7A",
+"a     c #D2AEAC",
+"b     c #D69E96",
+"c     c #EA765E",
+"d     c #625656",
+"e     c #F25E4E",
+"f     c #8C5A5A",
+"g     c #863232",
+"h     c #965A5A",
+"i     c #C4AAA9",
+"j     c #4A3636",
+"k     c #9C8684",
+"l     c #6E1212",
+"m     c #684040",
+"n     c #C69898",
+"o     c #361E1E",
+"p     c #1A0A0A",
+"q     c #785A5C",
+"r     c #AE9292",
+"s     c #AEA2A2",
+"t     c #4A0E0A",
+"u     c #9A7E7E",
+"v     c #D67E7E",
+"w     c #C29A9A",
+"x     c #5E3232",
+"y     c #DAB6B4",
+"z     c #402626",
+"A     c #574A49",
+"B     c #A63632",
+"C     c #EEC2BE",
+"D     c #B69E9D",
+"E     c #966262",
+"F     c #7E5252",
+"G     c #8B7E7E",
+"H     c #846868",
+"I     c #C6B2B1",
+"J     c #724242",
+"K     c #A69292",
+"L     c #6B5E5E",
+"M     c #AE9A99",
+"N     c #563E3E",
+"O     c #C65A5A",
+"P     c #B68A8A",
+"Q     c #D6765E",
+"R     c #0E0202",
+"S     c #E26266",
+"T     c #BE4E3E",
+"U     c #BEAEAD",
+"V     c #9A8E8E",
+"W     c #B24236",
+"X     c #120202",
+"Y     c #DA9A92",
+"Z     c #CA6656",
+"`     c #BAA6A6",
+" .    c #CEAAAA",
+"..    c #B26E6E",
+"+.    c #562222",
+"@.    c #927676",
+"#.    c #422E2E",
+"$.    c #D3B6B5",
+"%.    c #120606",
+"&.    c #BA9E9E",
+"*.    c #9A6662",
+"=.    c #BA8A8A",
+"-.    c #2E2221",
+";.    c #563232",
+">.    c #AE9E9E",
+",.    c #CAA6A6",
+"'.    c #705656",
+").    c #A88280",
+"!.    c #EABEBA",
+"~.    c #9A2E2A",
+"{.    c #C26864",
+"].    c #967A7A",
+"^.    c #A28E8D",
+"/.    c #524646",
+"(.    c #BAAAAA",
+"_.    c #E3C6C3",
+":.    c #C6A0A0",
+"<.    c #DABAB9",
+"[.    c #D2BAB8",
+"}.    c #966A6A",
+"|.    c #DE767A",
+"1.    c #968282",
+"2.    c #968A88",
+"3.    c #CAAAA9",
+"4.    c #3E2020",
+"5.    c #6E4E4E",
+"6.    c #CA8282",
+"7.    c #6E3636",
+"8.    c #D28A8A",
+"9.    c #BAA2A1",
+"0.    c #7C1A1A",
+"a.    c #BE4A4A",
+"b.    c #A69696",
+"c.    c #EE7272",
+"d.    c #B6A2A2",
+"e.    c #7C6E6E",
+"f.    c #B08E8E",
+"g.    c #766262",
+"h.    c #564646",
+"i.    c #867272",
+"j.    c #E6BEBA",
+"k.    c #C29E9E",
+"l.    c #DEB6B4",
+"m.    c #D26E6E",
+"n.    c #CEB2B2",
+"o.    c #927E7E",
+"p.    c #6A2E2E",
+"q.    c #503A3A",
+"r.    c #C28682",
+"s.    c #6A322E",
+"t.    c #EFCACA",
+"u.    c #AA9E9B",
+"v.    c #2A0E0E",
+"w.    c #C2AEAD",
+"x.    c #CC7470",
+"y.    c #BA9292",
+"z.    c #AA9696",
+"A.    c #1F0E0E",
+"B.    c #665652",
+"C.    c #8C6A6A",
+"D.    c #583838",
+"E.    c #726060",
+"F.    c #2B1616",
+"G.    c #EAAAA2",
+"H.    c #B28282",
+"I.    c #E6A296",
+"J.    c #A28A8A",
+"K.    c #B29A9A",
+"L.    c #8E8281",
+"M.    c #D7AEAD",
+"N.    c #2D1A1A",
+"O.    c #524040",
+"P.    c #EE6646",
+"Q.    c #8E3A32",
+"R.    c #664646",
+"S.    c #521616",
+"T.    c #5E3A3A",
+"U.    c #C26E6E",
+"V.    c #9E8E8D",
+"W.    c #1F1211",
+"X.    c #2D1E1E",
+"Y.    c #1E0606",
+"Z.    c #3A2929",
+"`.    c #9A8A8A",
+" +    c #7A6666",
+".+    c #BE9A9A",
+"++    c #9E6A6A",
+"@+    c #D6BEBC",
+"#+    c #DABEBD",
+"$+    c #8E7A7A",
+"%+    c #B29E9E",
+"&+    c #BE9291",
+"*+    c #C24E4E",
+"=+    c #968686",
+"-+    c #AE9695",
+";+    c #4A2E2E",
+">+    c #A29292",
+",+    c #5E3E3E",
+"'+    c #E6B6B2",
+")+    c #3F2A2B",
+"!+    c #BEA6A5",
+"~+    c #BEAAAA",
+"{+    c #B2A2A0",
+"]+    c #B6A6A4",
+"^+    c #665252",
+"/+    c #6A2626",
+"(+    c #8A4E4E",
+"_+    c #E6B2AE",
+":+    c #B28686",
+"<+    c #8E3632",
+"[+    c #A27E7E",
+"}+    c #A26666",
+"|+    c #7E6262",
+"1+    c #5E4646",
+"2+    c #2E1212",
+"3+    c #D27266",
+"4+    c #D2B2B2",
+"5+    c #160A0A",
+"6+    c #200A0A",
+"7+    c #463232",
+"8+    c #A29696",
+"9+    c #827676",
+"0+    c #D6BABA",
+"a+    c #BEA2A2",
+"b+    c #DFC2BF",
+"c+    c #C2A2A1",
+"d+    c #685A59",
+"e+    c #160606",
+"f+    c #BE9E9E",
+"g+    c #AE4242",
+"h+    c #CEB6B5",
+"i+    c #AA9A9A",
+"j+    c #6E6262",
+"k+    c #928282",
+"l+    c #D6B2B2",
+"m+    c #CAB2B2",
+"n+    c #C6AEAE",
+"o+    c #B69A9A",
+"p+    c #332222",
+"q+    c #C38A8A",
+"r+    c #796A6A",
+"s+    c #9D6E6E",
+"t+    c #827272",
+"u+    c #C6A6A4",
+"v+    c #8A7A7A",
+"w+    c #CEA6A4",
+"x+    c #C29290",
+"y+    c #362A2A",
+"z+    c #5E5252",
+"A+    c #E0AAA6",
+"B+    c #4A3A38",
+"C+    c #584242",
+"D+    c #CEAEAE",
+"E+    c #887676",
+"F+    c #E6C2BE",
+"G+    c #261212",
+"                                                              ",
+"                                                              ",
+"                          9.-+K 9.d.^.k                       ",
+"                    D+$.n.i ` d.]+]+>.>.M `. +                ",
+"                y 8 0+[.m+m+w.~+` d.%+s M >+G t+t+            ",
+"              j.t._.b+0+[._ m+n+~+` ]+d.>.i+K `.k+d+          ",
+"            '+t.t._._.b+#+0+[._ I w.` ]+{+>.u.b.V.t+d+        ",
+"          Y !.C F+F+b+b+8 b+0+[.[.m+I U ` $ %+>.b.V t+O.      ",
+"        b A+[ _+[ l.y <.0+@+0+[.[._ m+I i (.]+{+>.1 V L Z.    ",
+"        I., I., M.M.M.a a D+n.n._ h+_ I I U (.(.$ %+1 L.A     ",
+"      3+| x.> r.q+x+n w+ .n+3.3.n+i ~+U w.~+(.(.]+]+s b.r+N.  ",
+"    P.3+Z W Q.' ( s.: [+k.,.i i !+!+` 9.]+]+{+{+$ s s u.G -.  ",
+"    e c & a.~.l ) t +.: ^ c+/ / !+!+` d.%+{+>.>.>.i+1 1 = ]   ",
+"    S c. .{.* 0.- S.J }.:.u+c+a+9.d.d.D %+M >.i+b.b.8+! = A 6 ",
+"    m.|.x.T B 0.- s.s+P 4+3.c+a+9.D %+%+>.i+i+b.8+>+! V.G /.5+",
+"    7 O a.g+<+( ( E H.^ w+c+a+9.&.D %+M -+z.b.b.>+! V.2.= B.W.",
+"    U.v 7 ; g ( 7.^ y..+k.f+.+o+D K.%+M z.b.b.>+^.V.V 2.= j+W.",
+"    ..8.r...~ (+f ^ k. .c+&.D D K.K.-+z.z.K >+>+V V `.= G z+W.",
+"    h }+q+r.} *.s+&+ .$.c+&.o+K.K.M i+b.b.^.V.V.`.2.2.= e.-.. ",
+"    ~ E =.n x+^ y.w+l+,.&.D D K.M b.r K ^.! V.`.`.=+= L.e.W.. ",
+"      f s+P 3 y.y.f+f+&.o+K.K.-+-+b.K >+^.V.V.2.2.k+L.0 L W.  ",
+"      m m C.].).5 P r r -+r z.z.b.K >+>+V.`.2.2.= = 0 d N.X   ",
+"      x ;.,+q H C.@.].u k J.^.^.^.^.J.V `.k =+1.k+L.e.-.%..   ",
+"        D.9 D.R.5.'.q |+H i.E+].G 1.= 1.=+= k+L.L.0 d+W.R     ",
+"        T.;+z #.D.N C+1+R.^+B.q E.r+t+t+E+0 G 0 9+d+X.R X     ",
+"          4.2+F.o z )+7+j q.N h.A @ ^+d+L j+g.L A -.%.R       ",
+"            4 Y.Y.v.F.p+4.Z.)+#.7+B+B+] /.A B+{ 6 %.X         ",
+"              v.6+6+G+F.N.N.N.X.X.p+p++ y++ W.R . R           ",
+"                4.F.Y.X %.p 6+e+%.5+e+e+%.%.R X X             ",
+"                    v.X X X X R X R R R X X X                 ",
+"                          e+X R X X X R                       "};
diff --git a/terminatorX/src/smallknob/knob11.xpm b/terminatorX/src/smallknob/knob11.xpm
new file mode 100644 (file)
index 0000000..53b49ed
--- /dev/null
@@ -0,0 +1,290 @@
+/* XPM */
+static char * knob11_xpm[] = {
+"31 31 256 2",
+"      c None",
+".     c #0A0202",
+"+     c #332223",
+"@     c #5A4A4E",
+"#     c #796A6B",
+"$     c #9A8E8E",
+"%     c #DE8E92",
+"&     c #CE5E62",
+"*     c #AA4252",
+"=     c #62161E",
+"-     c #D07E82",
+";     c #C29296",
+">     c #C25256",
+",     c #82262E",
+"'     c #56161E",
+")     c #C66E76",
+"!     c #B2A2A3",
+"~     c #9E6266",
+"{     c #62262A",
+"]     c #827676",
+"^     c #B69296",
+"/     c #221616",
+"(     c #D2AAAC",
+"_     c #3F3232",
+":     c #C29A9E",
+"<     c #925256",
+"[     c #A27E82",
+"}     c #AE9E9F",
+"|     c #2A1212",
+"1     c #8E8283",
+"2     c #D6BABA",
+"3     c #6A5E5E",
+"4     c #AA8E8E",
+"5     c #C2A6A6",
+"6     c #1E1212",
+"7     c #F6464A",
+"8     c #9E6A6E",
+"9     c #684448",
+"0     c #563C40",
+"a     c #A61E26",
+"b     c #562426",
+"c     c #1E0E0E",
+"d     c #B69696",
+"e     c #E8B2B6",
+"f     c #724A4A",
+"g     c #D4AEB2",
+"h     c #8A3E42",
+"i     c #CAB2B2",
+"j     c #967A7A",
+"k     c #B29296",
+"l     c #BE767A",
+"m     c #968282",
+"n     c #1A0E0F",
+"o     c #5E5252",
+"p     c #A69697",
+"q     c #E88086",
+"r     c #524646",
+"s     c #EEC2C2",
+"t     c #BAA2A4",
+"u     c #1A0607",
+"v     c #726064",
+"w     c #422C2E",
+"x     c #8C6E70",
+"y     c #CAA6AA",
+"z     c #EA525A",
+"A     c #361A1A",
+"B     c #EE5A5E",
+"C     c #655657",
+"D     c #927676",
+"E     c #7C4044",
+"F     c #B69A9E",
+"G     c #E2B4B6",
+"H     c #4A1216",
+"I     c #4D3637",
+"J     c #AA9696",
+"K     c #9E363A",
+"L     c #A29696",
+"M     c #3D2A2E",
+"N     c #C6848E",
+"O     c #7E2A32",
+"P     c #BDAAAB",
+"Q     c #968689",
+"R     c #965E62",
+"S     c #BA666E",
+"T     c #7A4E52",
+"U     c #160202",
+"V     c #A28A8A",
+"W     c #564242",
+"X     c #9E9292",
+"Y     c #D6A2A6",
+"Z     c #D5B2B4",
+"`     c #C49EA2",
+" .    c #AA9A9C",
+"..    c #6E5256",
+"+.    c #7A0E16",
+"@.    c #C2AEAE",
+"#.    c #CAAEB0",
+"$.    c #D29A9A",
+"%.    c #E6C0C0",
+"&.    c #2A1619",
+"*.    c #9E8E8E",
+"=.    c #B47E84",
+"-.    c #DE5E66",
+";.    c #883036",
+">.    c #7A525A",
+",.    c #9A868A",
+"'.    c #0E0202",
+").    c #9E4652",
+"!.    c #7A5E5E",
+"~.    c #8A7E7E",
+"{.    c #847072",
+"].    c #BAA6A7",
+"^.    c #BA9A9A",
+"/.    c #2E1E20",
+"(.    c #DAAAAE",
+"_.    c #CE868A",
+":.    c #32181C",
+"<.    c #928686",
+"[.    c #7E7272",
+"}.    c #A6868A",
+"|.    c #503E40",
+"1.    c #4E2E32",
+"2.    c #E28A8A",
+"3.    c #DEB6BA",
+"4.    c #DABABA",
+"5.    c #6E565A",
+"6.    c #922632",
+"7.    c #E29EA2",
+"8.    c #120202",
+"9.    c #8E7A7A",
+"0.    c #BE5A5E",
+"a.    c #463637",
+"b.    c #B29A9D",
+"c.    c #7A6262",
+"d.    c #221215",
+"e.    c #CC9096",
+"f.    c #AE7E84",
+"g.    c #968A8A",
+"h.    c #CE7A96",
+"i.    c #5E4243",
+"j.    c #160608",
+"k.    c #A28E92",
+"l.    c #867A7A",
+"m.    c #C2AAAC",
+"n.    c #9E7072",
+"o.    c #D3B6B7",
+"p.    c #DE646C",
+"q.    c #8A5A5E",
+"r.    c #B69EA0",
+"s.    c #725A5A",
+"t.    c #DCAEB0",
+"u.    c #DFBABD",
+"v.    c #AE9698",
+"w.    c #A69A9A",
+"x.    c #CAAAAB",
+"y.    c #9A8A8B",
+"z.    c #644A4C",
+"A.    c #A8666E",
+"B.    c #6E1E2A",
+"C.    c #AE9292",
+"D.    c #AE8A8E",
+"E.    c #E2A2A2",
+"F.    c #AE9A9B",
+"G.    c #CA5A62",
+"H.    c #CAA2A6",
+"I.    c #5E3E42",
+"J.    c #7E6468",
+"K.    c #AE4656",
+"L.    c #5E1A22",
+"M.    c #E6B6B6",
+"N.    c #726666",
+"O.    c #7E464A",
+"P.    c #8E666A",
+"Q.    c #261A1A",
+"R.    c #B6A6A6",
+"S.    c #120606",
+"T.    c #BD8E95",
+"U.    c #B29E9E",
+"V.    c #BEA6A7",
+"W.    c #352626",
+"X.    c #220A0E",
+"Y.    c #B6A2A3",
+"Z.    c #BD9699",
+"`.    c #CEB6B6",
+" +    c #A29292",
+".+    c #5E1216",
+"++    c #CA9A9E",
+"@+    c #624E52",
+"#+    c #3E2E31",
+"$+    c #C3A2A5",
+"%+    c #DFBEBF",
+"&+    c #BD9296",
+"*+    c #BA828A",
+"=+    c #2E1A1A",
+"-+    c #463232",
+";+    c #9E7A7E",
+">+    c #E1AAAA",
+",+    c #635253",
+"'+    c #9E8284",
+")+    c #4A2E32",
+"!+    c #A67276",
+"~+    c #E6666E",
+"{+    c #7A6E6E",
+"]+    c #1A0A0C",
+"^+    c #4C3A3C",
+"/+    c #BEA2A5",
+"(+    c #BE9EA2",
+"_+    c #9E8A8E",
+":+    c #928286",
+"<+    c #B23E4A",
+"[+    c #C6565E",
+"}+    c #6E464A",
+"|+    c #EEAEAE",
+"1+    c #DA969E",
+"2+    c #D6828E",
+"3+    c #AE868A",
+"4+    c #C6AAAE",
+"5+    c #925A62",
+"6+    c #7A5A5E",
+"7+    c #3A262A",
+"8+    c #A69295",
+"9+    c #B48288",
+"0+    c #BA9EA2",
+"a+    c #8E7E81",
+"b+    c #AC8286",
+"c+    c #160A0A",
+"d+    c #CEB2B3",
+"e+    c #564648",
+"f+    c #BE5262",
+"g+    c #C26E82",
+"h+    c #6B5A5D",
+"i+    c #261213",
+"j+    c #CEAAAD",
+"k+    c #665A5A",
+"l+    c #463A3E",
+"m+    c #776666",
+"n+    c #927E7E",
+"o+    c #8A7A7C",
+"p+    c #C4969E",
+"q+    c #987E80",
+"r+    c #EEC6CA",
+"s+    c #8A7276",
+"t+    c #381E22",
+"u+    c #260E0E",
+"v+    c #5E161A",
+"w+    c #AA969A",
+"x+    c #867678",
+"y+    c #C6AEAF",
+"z+    c #CEAEAF",
+"A+    c #5A4649",
+"B+    c #120206",
+"C+    c #C6A6A8",
+"D+    c #CEA6AA",
+"E+    c #2A1A1C",
+"F+    c #AA9292",
+"G+    c #662A32",
+"                                                              ",
+"                                                              ",
+"                          k r.F+q+v.J n+                      ",
+"                    j+Z z+V.0+b.J  .J k.*.n+s+                ",
+"                t.u.%+`.#.m.V.r.F b.v.F+k.$ Q # @+            ",
+"              M.r+%.%+4.o.d+4+m.].U. .J p k._+o+# m+          ",
+"            >+s s %+%+u.4.2 i y+m.V.! F. . +k.y.:+l.,+        ",
+"          7.e e G G 3.3.3.o.o.d+i @.V.].U.} p  +*.:+m+A+      ",
+"        % 7.|+E.>+(.g Z Z Z o.o.d+i @.P ].!  .p p $ 1 h+W.    ",
+"      z 2.- - _._.$.Y D+( z+z+#.i i y+y+P ].Y.}  .p *.l.|.    ",
+"      -.q > K ;.h ~ =.&+` y x.4+m.m.P P P P P ! }  .L g.3 E+  ",
+"    7 ~+p.0.a +..+' b O.[ $+4+5 5 V.V.t R.R.Y.! ! }  .L ] #+  ",
+"    B q ( T.<+;.v+H b f b+` C+5 /+t ].Y.U.! }  .} }  .p <.r   ",
+"    G.p.h.g+<+, .+b n.3+y C+$+V.t t r.r.U.} }  .w.w.L L y.k+d.",
+"    0.[+f+K.6.B.L.E 9+Z.Z 4+` /+t Y.U.U.F. . .p  + + +X Q 3 6 ",
+"    ) 2+S )., = { 9+T.p+j+$+t 0+r.r.U.F.F.J p p  +X $ g.1 r c+",
+"    l 1+*+A.< E E T.p+D+$+(+0+0+F b.U. . .J p  + +*.$ g.a+o n ",
+"    A.=.e.=.!+R q.T.$+g $+(+0+F b.b.w+v.F+ + + +$ y.g.<.1 C c ",
+"    ~ b+: p+T.f.n.Z.j+y (+r.F b.b.v.J p p  +*.*.*.y.g.<.] _ S.",
+"    R P.9+p+: Z.&+: ` (+F ^.b.b.v.v.8+8+k.*.*.y.Q Q <.1 # Q.. ",
+"      }+>.;+D.k ^ d d ^.F F b.F.J J p 8+k.*._+y.g.:+1 ~.k+6   ",
+"      9 I.6+x D '+}.4 F+v.v.F+F+J 8+k.*.*.y.g.Q :+<.~.v W.S.  ",
+"      9 I.I...6+c.x D j m V k.k.k.k.k.*._+y.g.<.:+1 [._ j..   ",
+"        i.1.0 i.@+..5.c.J.s+9.n+Q ,.g.Q Q Q :+:+~.] @+6 '.    ",
+"        1.t+A 7+I I.i.z.@+5.!.c.{.s+o+a+a+1 1 1 l.3 Q.'.'.    ",
+"          A u+&.t+M _ I |.|.@ @+,+h+v # [.] x+{+3 /.'.'.      ",
+"            :.X.c &.+ W.#+w a.^+W r @ ,+C h+,+l+Q.S.'.        ",
+"              u+u+u+i+=+=++ + W.M #+_ a.a.M / c+. '.          ",
+"                )+&.u j.j.c ]+n d.6 c n c+S.'.8.8.            ",
+"                    U U 8.8.'.8.S.B+'.'.B+'.'.                ",
+"                          8.'.'.'.'.'.'.                      "};
diff --git a/terminatorX/src/smallknob/knob12.xpm b/terminatorX/src/smallknob/knob12.xpm
new file mode 100644 (file)
index 0000000..4c36bab
--- /dev/null
@@ -0,0 +1,290 @@
+/* XPM */
+static char * knob12_xpm[] = {
+"31 31 256 2",
+"      c None",
+".     c #0A0202",
+"+     c #382626",
+"@     c #625252",
+"#     c #827676",
+"$     c #D27A7A",
+"%     c #9A8E8D",
+"&     c #C23232",
+"*     c #EE5252",
+"=     c #621612",
+"-     c #9A2A2A",
+";     c #B65256",
+">     c #AE8E8E",
+",     c #CA969A",
+"'     c #8E2E2A",
+")     c #3A2222",
+"!     c #2A1E1E",
+"~     c #925A56",
+"{     c #443232",
+"]     c #C07676",
+"^     c #CAA29E",
+"/     c #B6A6A6",
+"(     c #7A6A6A",
+"_     c #221616",
+":     c #8A7E7D",
+"<     c #DBBAB7",
+"[     c #663A3A",
+"}     c #AF9696",
+"|     c #6C2624",
+"1     c #C29696",
+"2     c #8E5A5A",
+"3     c #A27E7E",
+"4     c #4E4242",
+"5     c #1E1212",
+"6     c #E2A29E",
+"7     c #A69A9A",
+"8     c #8E8282",
+"9     c #CBAEAD",
+"0     c #6A5E5E",
+"a     c #BB9696",
+"b     c #B27A7A",
+"c     c #A28E8E",
+"d     c #CA5A56",
+"e     c #220A0A",
+"f     c #92221E",
+"g     c #B23A36",
+"h     c #B27272",
+"i     c #8A4242",
+"j     c #AE9E9E",
+"k     c #622A26",
+"l     c #E24A3E",
+"m     c #928686",
+"n     c #3E2222",
+"o     c #E6726A",
+"p     c #CE8E8E",
+"q     c #BA7E7E",
+"r     c #C6A6A6",
+"s     c #976A6A",
+"t     c #4E1212",
+"u     c #A29692",
+"v     c #D6AEAE",
+"w     c #866A6A",
+"x     c #724240",
+"y     c #725656",
+"z     c #564A4A",
+"A     c #D29696",
+"B     c #9A8686",
+"C     c #9A7676",
+"D     c #0E0202",
+"E     c #BE9A9A",
+"F     c #761E1A",
+"G     c #170A0A",
+"H     c #BA8E8E",
+"I     c #E5BAB6",
+"J     c #CE4A4A",
+"K     c #4A3A3A",
+"L     c #804E4E",
+"M     c #A24E4A",
+"N     c #DAA6A2",
+"O     c #422626",
+"P     c #9E7E7E",
+"Q     c #E6A6A2",
+"R     c #C29E9E",
+"S     c #EEC6C2",
+"T     c #1A0606",
+"U     c #5E4242",
+"V     c #6E4646",
+"W     c #7A6262",
+"X     c #A28282",
+"Y     c #D2B6B3",
+"Z     c #EA7A7A",
+"`     c #C2A6A6",
+" .    c #625656",
+"..    c #A6625E",
+"+.    c #E09696",
+"@.    c #B69E9D",
+"#.    c #CAA6A6",
+"$.    c #B68282",
+"%.    c #BAA2A2",
+"&.    c #120202",
+"*.    c #331E1E",
+"=.    c #968A89",
+"-.    c #4E1E1A",
+";.    c #C6AEAD",
+">.    c #8E7676",
+",.    c #865E5A",
+"'.    c #B28A8E",
+").    c #B69696",
+"!.    c #C67272",
+"~.    c #4A2E2F",
+"{.    c #2E1616",
+"].    c #967E7E",
+"^.    c #B24242",
+"/.    c #C25A5A",
+"(.    c #E4AEAA",
+"_.    c #533E3E",
+":.    c #D69A96",
+"<.    c #A68E8E",
+"[.    c #7A6E6E",
+"}.    c #CE625A",
+"|.    c #D6B6B5",
+"1.    c #726666",
+"2.    c #604A4A",
+"3.    c #120604",
+"4.    c #D2AEAE",
+"5.    c #A66E6E",
+"6.    c #A69696",
+"7.    c #9E9292",
+"8.    c #AEA29E",
+"9.    c #826E6E",
+"0.    c #A25A5E",
+"a.    c #F2423A",
+"b.    c #EEBAB6",
+"c.    c #764E52",
+"d.    c #AE9A99",
+"e.    c #A29292",
+"f.    c #BEAAAA",
+"g.    c #4E3636",
+"h.    c #A68686",
+"i.    c #2A0E12",
+"j.    c #E2BEBE",
+"k.    c #412E2E",
+"l.    c #C2AAAA",
+"m.    c #B6A2A1",
+"n.    c #AA9695",
+"o.    c #D2AAA8",
+"p.    c #554242",
+"q.    c #261212",
+"r.    c #963E3E",
+"s.    c #BA8A8A",
+"t.    c #92