diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 2217ad8..5811b0f 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -1,7 +1,11 @@ Pascal Terjan : -N, --noNice option Gilles Cuesta : bug report Olivier Perron : debian package -Guillaume Rousse : rpm package +Guillaume Rousse : mandrake rpm package Cyprien Laplace : new developper Roman Bogorodskiy : FreeBSD port - +Florian Traverse : gdk2 port +Thibaut Varene : debian package and maintainer +Mario Mueller : suse rpm package +Peter Willis : help for makefile +Paul : gentoo ebuild diff --git a/ChangeLog b/ChangeLog index e4886c9..bc9a0d9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,45 @@ +2004-12-05 Cypou + + * hot-babe.c: Added option --version, -v + Bugfix when the number of pictures was not 5, + resulting on awful colors. + Inform the wm that hot-babe is a dock + (I really didn't check it) + Added option --geometry to position the hot-babe + + * Added hot-babe pixmap + + * hot-babe.1: Updated + +2004-12-04 Cypou + + * Added configuration example file + + * hot-babe.c: Fixed segfault when the number of pictures was smaller than 5 + Added support of a user configuration and pictures directory + Fixed some include missing for FreeBSD + + * hot-babe.1: Updated + + * Makefile: Fixed to follow right DESTDIR/PREFIX usage ;-) + +2004-11-14 Cypou + + * Added copyright file + * LICENSE is now the 'Artistic License'. + + +2004-11-13 Temsa + + * loader.c: porting to gdk2, just some tricky modification for the new API + + * Makefile: porting to gdk2/gdk-pixbuf2, using pkg-config + + 2004-10-20 Roman Bogorodskiy * Makefile: FreeBSD port + * hot-babe.c: FreeBSD port: use of sysctl "kern.cp_time" @@ -12,9 +51,10 @@ 2004-08-25 Cypou * loader.c: Used to load a set of images from a directory + * hot-babe.c: Use of loader.c, added small optimisations, added a -n - (--nice) option to automatically nice the hot-babe. Added - --dir option to specify another images directory. + (--nice) option to automatically nice the hot-babe.i + Added --dir option to specify another images directory. 2004-08-22 DindinX diff --git a/LICENSE b/LICENSE index d60c31a..5f22124 100644 --- a/LICENSE +++ b/LICENSE @@ -1,340 +1,131 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - 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. - - - Copyright (C) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -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) year 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 "Artistic License" -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. + Preamble -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: +The intent of this document is to state the conditions under which a +Package may be copied, such that the Copyright Holder maintains some +semblance of artistic control over the development of the package, +while giving the users of the package the right to use and distribute +the Package in a more-or-less customary fashion, plus the right to make +reasonable modifications. - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. +Definitions: - , 1 April 1989 - Ty Coon, President of Vice + "Package" refers to the collection of files distributed by the + Copyright Holder, and derivatives of that collection of files + created through textual modification. -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. + "Standard Version" refers to such a Package if it has not been + modified, or has been modified in accordance with the wishes + of the Copyright Holder as specified below. + + "Copyright Holder" is whoever is named in the copyright or + copyrights for the package. + + "You" is you, if you're thinking about copying or distributing + this Package. + + "Reasonable copying fee" is whatever you can justify on the + basis of media cost, duplication charges, time of people involved, + and so on. (You will not be required to justify it to the + Copyright Holder, but only to the computing community at large + as a market that must bear the fee.) + + "Freely Available" means that no fee is charged for the item + itself, though there may be fees involved in handling the item. + It also means that recipients of the item may redistribute it + under the same conditions they received it. + +1. You may make and give away verbatim copies of the source form of the +Standard Version of this Package without restriction, provided that you +duplicate all of the original copyright notices and associated disclaimers. + +2. You may apply bug fixes, portability fixes and other modifications +derived from the Public Domain or from the Copyright Holder. A Package +modified in such a way shall still be considered the Standard Version. + +3. You may otherwise modify your copy of this Package in any way, provided +that you insert a prominent notice in each changed file stating how and +when you changed that file, and provided that you do at least ONE of the +following: + + a) place your modifications in the Public Domain or otherwise make them + Freely Available, such as by posting said modifications to Usenet or + an equivalent medium, or placing the modifications on a major archive + site such as uunet.uu.net, or by allowing the Copyright Holder to include + your modifications in the Standard Version of the Package. + + b) use the modified Package only within your corporation or organization. + + c) rename any non-standard executables so the names do not conflict + with standard executables, which must also be provided, and provide + a separate manual page for each non-standard executable that clearly + documents how it differs from the Standard Version. + + d) make other distribution arrangements with the Copyright Holder. + +4. You may distribute the programs of this Package in object code or +executable form, provided that you do at least ONE of the following: + + a) distribute a Standard Version of the executables and library files, + together with instructions (in the manual page or equivalent) on where + to get the Standard Version. + + b) accompany the distribution with the machine-readable source of + the Package with your modifications. + + c) give non-standard executables non-standard names, and clearly + document the differences in manual pages (or equivalent), together + with instructions on where to get the Standard Version. + + d) make other distribution arrangements with the Copyright Holder. + +5. You may charge a reasonable copying fee for any distribution of this +Package. You may charge any fee you choose for support of this +Package. You may not charge a fee for this Package itself. However, +you may distribute this Package in aggregate with other (possibly +commercial) programs as part of a larger (possibly commercial) software +distribution provided that you do not advertise this Package as a +product of your own. You may embed this Package's interpreter within +an executable of yours (by linking); this shall be construed as a mere +form of aggregation, provided that the complete Standard Version of the +interpreter is so embedded. + +6. The scripts and library files supplied as input to or produced as +output from the programs of this Package do not automatically fall +under the copyright of this Package, but belong to whoever generated +them, and may be sold commercially, and may be aggregated with this +Package. If such scripts or library files are aggregated with this +Package via the so-called "undump" or "unexec" methods of producing a +binary executable image, then distribution of such an image shall +neither be construed as a distribution of this Package nor shall it +fall under the restrictions of Paragraphs 3 and 4, provided that you do +not represent such an executable image as a Standard Version of this +Package. + +7. C subroutines (or comparably compiled subroutines in other +languages) supplied by you and linked into this Package in order to +emulate subroutines and variables of the language defined by this +Package shall not be considered part of this Package, but are the +equivalent of input as in Paragraph 6, provided these subroutines do +not change the language in any way that would cause it to fail the +regression tests for the language. + +8. Aggregation of this Package with a commercial distribution is always +permitted provided that the use of this Package is embedded; that is, +when no overt attempt is made to make this Package's interfaces visible +to the end user of the commercial distribution. Such use shall not be +construed as a distribution of this Package. + +9. The name of the Copyright Holder may not be used to endorse or promote +products derived from this software without specific prior written permission. + +10. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED +WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. + + The End diff --git a/Makefile b/Makefile index c5404b7..096c22c 100644 --- a/Makefile +++ b/Makefile @@ -1,14 +1,15 @@ # where to install this program -PREFIX = /usr/local -DESTDIR = ${PREFIX} +PREFIX := /usr/local +VERSION := 0.2.2 # optimization cflags -CFLAGS = -O2 -Wall -g `gtk-config --cflags` `gdk-pixbuf-config --cflags` -DDESTDIR=\"$(DESTDIR)\" +CFLAGS += -O2 -Wall -g `pkg-config gdk-2.0 gdk-pixbuf-2.0 --cflags` -DPREFIX=\"$(PREFIX)\" -DVERSION=\"$(VERSION)\" OBJS = hot-babe.o loader.o CC = gcc -LIBS = `gtk-config --libs` `gdk-pixbuf-config --libs` -INSTALL = -m 755 +LIBS = `pkg-config gdk-2.0 gdk-pixbuf-2.0 --libs` + +DOC = ChangeLog NEWS TODO LICENSE CONTRIBUTORS copyright config.example all: hot-babe @@ -19,7 +20,20 @@ clean: rm -f hot-babe *.o install: - install -d $(DESTDIR)/bin - install $(INSTALL) hot-babe $(DESTDIR)/bin - install -d $(DESTDIR)/share/hot-babe/hb01 - install $(INSTALL) hb01/* $(DESTDIR)/share/hot-babe/hb01 + install -d $(DESTDIR)$(PREFIX)/bin + install -m 0755 hot-babe $(DESTDIR)$(PREFIX)/bin + install -d $(DESTDIR)$(PREFIX)/share/hot-babe/hb01 + install -m 0644 hb01/* $(DESTDIR)$(PREFIX)/share/hot-babe/hb01 + install -d $(DESTDIR)$(PREFIX)/share/doc/hot-babe + install -m 0644 $(DOC) $(DESTDIR)$(PREFIX)/share/doc/hot-babe + install -d $(DESTDIR)$(PREFIX)/share/man/man1 + install -m 0644 hot-babe.1 $(DESTDIR)$(PREFIX)/share/man/man1 + install -d $(DESTDIR)$(PREFIX)/share/pixmaps + install -m 0644 hot-babe.xpm $(DESTDIR)$(PREFIX)/share/pixmaps + +uninstall: + rm -f $(DESTDIR)$(PREFIX)/bin/hot-babe + rm -rf $(DESTDIR)$(PREFIX)/share/hot-babe + rm -rf $(DESTDIR)$(PREFIX)/share/doc/hot-babe + rm -f $(DESTDIR)$(PREFIX)/share/man/man1/hot-babe.1 + rm -f $(DESTDIR)$(PREFIX)/share/pixmaps/hot-babe.xpm diff --git a/NEWS b/NEWS index e7e04cc..530505e 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,22 @@ +0.2.2: +- Added option --version, -v +- Added hot-babe pixmap +- Bugfix when the number of pictures was not 5, resulting on awful colors +- Inform the wm that hot-babe is a dock (I really didn't check it) +- Added option --geometry to position the hot-babe + +0.2.1: +- Fixed some include missing for FreeBSD +- Added support of a user configuration and pictures directory +- Added configuration example file +- Fixed segfault when the number of pictures was smaller than 5 +- Update man page +- Fixed Makefile to follow right DESTDIR/PREFIX usage ;-) + +0.2.0: +- Using gdk2 and gdk-pixbuf2 +- License is now "Artistic License" for code and pictures + 0.1.6: - FreeBSD port diff --git a/TODO b/TODO index 71f37a2..2108995 100644 --- a/TODO +++ b/TODO @@ -1,3 +1,6 @@ +Add icon +--version + 2/ faire la différence entre deux images successives.. effectivement bcp de pixels seront les meme.. deux avantages :: a) tous les pixels noirs de la différence ne seront pas à afficher au mem titre que les transparents ... enfin.. ne seront pas à mettre à jour ... diff --git a/config.example b/config.example new file mode 100644 index 0000000..a320fff --- /dev/null +++ b/config.example @@ -0,0 +1,7 @@ +#threshold 3 +incremental +#noNice +#nice 5 +#delay 100 +#dir hb01 +#geometry -0-0 diff --git a/copyright b/copyright new file mode 100644 index 0000000..d87150c --- /dev/null +++ b/copyright @@ -0,0 +1,11 @@ +Copyright: + + Copyright 2002-2004 David Odin and Cyprien Laplace + Pictures Copyright 2002-2004 Bruno Bellamy + + This program is free software; you can redistribute it and/or modify + it under the terms of the "Artistic License", which is available + in LICENCE file. + + On Debian GNU/Linux systems, the complete text of the Artistic License + in `/usr/share/common-licenses/Artistic'. diff --git a/hot-babe.1 b/hot-babe.1 index 7532f7b..cba8bc1 100644 --- a/hot-babe.1 +++ b/hot-babe.1 @@ -2,7 +2,7 @@ .\" First parameter, NAME, should be all caps .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" other parameters are allowed: see man(7), man(1) -.TH HOT-BABE 1 "August 25, 2004" +.TH HOT\-BABE 1 "December 4, 2004" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: @@ -16,20 +16,20 @@ .\" .sp insert n+1 empty lines .\" for manpage-specific macros, see man(7) .SH NAME -hot-babe \- is a small graphical utility which display the system activity in a very special way +hot\-babe \- is a small graphical utility which displays the system activity in a very special way .SH SYNOPSIS -.B hot-babe +.B hot\-babe .RI [ options ] .SH DESCRIPTION This manual page documents briefly the -.B hot-babe +.B hot\-babe command. .\" TeX users may be more comfortable with the \fB\fP and .\" \fI\fP escape sequences to invode bold face and italics, .\" respectively. -\fBhot-babe\fP is a small graphical utility which display the system activity in a very special way. When the CPU is idle, it displays a dressed girl, and when the activity goes up, as the temperature increases, the girl begins to undress, to finish totally naked when the system activity reaches 100%. Of course, if you can be shocked by nudity, don't use it! +\fBhot\-babe\fP is a small graphical utility which displays the system activity in a very special way. When the CPU is idle, it displays a dressed girl, and when the activity goes up, as the temperature increases, the girl begins to undress, to finish totally naked when the system activity reaches 100%. Of course, if you can be shocked by nudity, don't use it! .SH OPTIONS -As for now, \fBhot-babe\fP supports a few command-line options: +As for now, \fBhot\-babe\fP supports a few command\-line options: .TP .B \-h, \-\-help display a small help message and exit. @@ -47,29 +47,52 @@ ponder every sample with time, the result is a somewhat smoother animation, and Don't consider reniced processes. This is usefull if you use seti@home or distributed.net, which always eat almost all the CPU. .TP .B \-n, \-\-nice -n Put the hot-babe process in nice n. +n Put the hot\-babe process in nice n. .TP .B \-\-dir -directory give the directory where hot-babe must load the pictures. +Directory give the directory where hot\-babe must load the pictures. +.TP +.B \-\-geometry +Use the specified geometry (only position is supported {+|-}x{+|x}y). +.TP +.B \-v, \-\-version +Show version and exit. +.TP .SH FILES .TP -.B share/hot-babe/hb01/ -directory of hot-babes pictures. +.B share/hot\-babe/ ./hot\-babe/ +Default directory of hot\-babes pictures. It can be either absolute path, relative, relative to share/hot\-babe/ directory or relative to ~/.hot\-babe/ directory. It contains the themes that can be used. .P .B Note: -This directory must contain a file named "descr" which gives some info to the hot-babe process. The first line gives the number of pictures to use, and then the name of the pictures, one per line. +Each pictures subdirectory must contain a file named "descr" which gives some info to the hot\-babe process. The first line gives the number of pictures to use, and then the name of the pictures, one per line. .P Here is an example: .RS -.ft CW .nf -.ne 5 hb01_4.png hb01_3.png hb01_2.png hb01_1.png hb01_0.png +.fi +.RE +.TP +.B ~/.hot\-babe/config +User configuration file. Put any possible long option. Empty lines and whatever after a # are ignored. +.P +Here is an example: +.RS +.nf +#threshold 30 +incremental +#noNice +#nice 5 +#delay 100 +#dir hb01 +#geometry +0-0 +.fi +.RE .br .SH AUTHOR This page has been updated by Cyprien diff --git a/hot-babe.c b/hot-babe.c index a43c31a..947b373 100644 --- a/hot-babe.c +++ b/hot-babe.c @@ -3,22 +3,15 @@ * Copyright (C) 2002 Bruno Bellamy. * * 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. + * it under the terms of the artistic License * - * 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. + * THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES + * OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. See the + * Artistic License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * this code is using some ideas from wmbubble (timecop@japan.co.jp) * - * Please note that part of this code is from wmbubble, and such should be - * copyrighted by - * */ /* general includes */ @@ -27,10 +20,14 @@ #include #include #ifdef __FreeBSD__ +#include #include #include #include +#ifndef CPUSTATES +#include #endif +#endif /* x11 includes */ #include @@ -52,6 +49,7 @@ typedef struct /* X11 stuff */ GdkWindow *win; /* main window */ HotBabeAnim anim; + gint x,y; guchar **pixels; guchar *dest; @@ -70,6 +68,21 @@ typedef struct HotBabeData bm; +#if 0 +/* FIXME New BSD and Solaris code.. to check. + * doesn't work with Linux (getloadavg return 1.000) */ +static int system_cpu(void) +{ + int rc; + double loadavg[15]; + rc=getloadavg(loadavg, 1); + while( rc-- ) + printf( "load = %f\n", loadavg[rc] ); + rc=100*loadavg[0]; + return rc; +} +#endif + /* returns current CPU load in percent, 0 to 256 */ static int system_cpu(void) { @@ -94,14 +107,14 @@ static int system_cpu(void) #endif #ifdef __FreeBSD__ if (sysctlbyname("kern.cp_time", &cp_time, &len, NULL, 0) < 0) - (void)fprintf(stderr, "Cannot get kern.cp_time"); - + (void)fprintf(stderr, "Cannot get kern.cp_time"); + ab = cp_time[CP_USER]; ac = cp_time[CP_NICE]; ad = cp_time[CP_SYS]; ae = cp_time[CP_IDLE]; #endif - + /* Find out the CPU load */ /* user + sys = load @@ -128,7 +141,7 @@ static int system_cpu(void) cpuload = 0; else cpuload = (256 * (load - oload)) / (total - ototal); - + return cpuload; } @@ -141,12 +154,18 @@ static void create_hotbabe_window(void) #define MASK GDK_BUTTON_PRESS_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK GdkWindowAttr attr; GdkBitmap *mask; + GdkScreen *defscrn; bm.anim.width = gdk_pixbuf_get_width(bm.anim.pixbuf[0]); bm.anim.height = gdk_pixbuf_get_height(bm.anim.pixbuf[0]); - + defscrn=gdk_screen_get_default(); + attr.width = bm.anim.width; attr.height = bm.anim.height; + if( bm.x < 0 ) bm.x += 1 + gdk_screen_get_width(defscrn) - attr.width; + if( bm.y < 0 ) bm.y += 1 + gdk_screen_get_height(defscrn) - attr.height; + attr.x = bm.x; + attr.y = bm.y; attr.title = "hot-babe"; attr.event_mask = MASK; attr.wclass = GDK_INPUT_OUTPUT; @@ -157,33 +176,38 @@ static void create_hotbabe_window(void) attr.window_type = GDK_WINDOW_TOPLEVEL; bm.win = gdk_window_new(NULL, &attr, - GDK_WA_TITLE | GDK_WA_WMCLASS | - GDK_WA_VISUAL | GDK_WA_COLORMAP); + GDK_WA_TITLE | GDK_WA_WMCLASS | + GDK_WA_VISUAL | GDK_WA_COLORMAP | + GDK_WA_X | GDK_WA_Y); if (!bm.win) { fprintf(stderr, "Cannot make toplevel window\n"); exit (-1); } gdk_window_set_decorations(bm.win, 0); + gdk_window_set_skip_taskbar_hint(bm.win, TRUE); + gdk_window_set_skip_pager_hint(bm.win, TRUE); + gdk_window_set_type_hint(bm.win, GDK_WINDOW_TYPE_HINT_DOCK); +// gdk_window_set_keep_below(bm.win, TRUE); + + gdk_pixbuf_render_pixmap_and_mask( bm.anim.pixbuf[bm.anim.samples-1], &pixmap, &mask, 127 ); - gdk_pixbuf_render_pixmap_and_mask( bm.anim.pixbuf[4], &pixmap, &mask, 127 ); - gdk_window_shape_combine_mask(bm.win, mask, 0, 0); gdk_pixbuf_render_pixmap_and_mask( bm.anim.pixbuf[0], &pixmap, &mask, 127 ); gdk_window_set_back_pixmap(bm.win, pixmap, False); - + gdk_window_show(bm.win); - + gc = gdk_gc_new (pixmap); #undef MASK } static void hotbabe_update(void) { - guint loadPercentage; + guint loadPercentage; static guint old_percentage = 0; - guint i; - guchar *pixels1, *pixels2, *src1, *src2, *dest; + guint i; + guchar *pixels1, *pixels2, *src1, *src2, *dest; static gint robinet = 0; /* Find out the CPU load */ @@ -196,14 +220,14 @@ static void hotbabe_update(void) else loadPercentage = (loadPercentage-bm.threshold)*256/(256-bm.threshold); } - + robinet +=loadPercentage/50-3; robinet = CLAMP(robinet, 0, 256); if (bm.incremental) loadPercentage = robinet; - + if (loadPercentage != old_percentage) { gint range = 256 / (bm.anim.samples-1); @@ -212,10 +236,8 @@ static void hotbabe_update(void) old_percentage = loadPercentage; if (index>bm.anim.samples-1) index = bm.anim.samples-1; pixels1 = bm.pixels[index]; - if (index == bm.anim.samples-1) - pixels2 = bm.pixels[index]; - else - pixels2 = bm.pixels[index+1]; + if (index == bm.anim.samples-1) pixels2 = bm.pixels[index]; + else pixels2 = bm.pixels[index+1]; loadPercentage = loadPercentage % range; dest = bm.dest; src1 = pixels1; src2 = pixels2; @@ -228,8 +250,8 @@ static void hotbabe_update(void) for (j=0;j<3;j++) { val = ((guint)*(src2++))*loadPercentage+((guint)*(src1++))*(range-loadPercentage); - //val /= range; - *(dest++) = (val >> 6); // bad hack! + *(dest++) = val/range; + //*(dest++) = (val >> 6); // bad hack! } src1++; src2++; @@ -238,9 +260,9 @@ static void hotbabe_update(void) src1+=4;src2+=4;dest+=3; } } - + gdk_draw_rgb_image(pixmap, gc, 0, 0, bm.anim.width, bm.anim.height, GDK_RGB_DITHER_NONE, - bm.dest, 3 * bm.anim.width); + bm.dest, 3 * bm.anim.width); gdk_window_set_back_pixmap(bm.win, pixmap, False); gdk_window_clear(bm.win); } @@ -261,6 +283,10 @@ static void hotbabe_setup_samples(void) } } +static void print_version(void) +{ + g_print("hot-babe version " VERSION "\n\n"); +} static void print_usage(void) { @@ -273,19 +299,40 @@ static void print_usage(void) g_print(" -N, --noNice don't count nice time in usage.\n"); g_print(" -n, --nice n set self-nice to n.\n"); g_print(" --dir directory use images from directory.\n"); + g_print(" --geometry {+|-}x{+|-}y position the hot-babe.\n"); + g_print(" -v, --version show version and exit.\n"); +} + +void parse_geometry( char *arg ) +{ + char sign[2]; + guint val[2]; + int i = 0; + + i = sscanf( arg, "%c%u%c%u", &sign[0], &val[0], &sign[1], &val[1] ); + if( i != 4 ) + return; + + if( sign[0] == '+' ) bm.x = val[0]; + if( sign[0] == '-' ) bm.x = -1-val[0]; + if( sign[1] == '+' ) bm.y = val[1]; + if( sign[1] == '-' ) bm.y = -1-val[1]; } int main(int argc, char **argv) { GdkEvent *event; + gint i; gchar *dir; + char conf[256]; + FILE *f; /* initialize GDK */ if (!gdk_init_check(&argc, &argv)) { fprintf(stderr, - "GDK init failed, bye bye. Check \"DISPLAY\" variable.\n"); + "GDK init failed, bye bye. Check \"DISPLAY\" variable.\n"); exit(-1); } gdk_rgb_init(); @@ -297,9 +344,57 @@ int main(int argc, char **argv) bm.incremental = FALSE; bm.delay = 15000; bm.noNice = FALSE; - + bm.x = -1; + bm.y = -1; + dir = NULL; + + snprintf( conf, 256, "%s/.hot-babe/config", g_get_home_dir() ); + f = fopen( conf, "r" ); + if( f ) + { + char line[256], *l; + guint uval; + gint val; + char sval[260]; + + while( (l=fgets( line, 255, f )) ) + { + while( *l ) + { + if( *l == '\n' || *l == '#' ) *l = 0; + l++; + } + if( !*line ) continue; + + if( sscanf( line, "threshold %u", &uval ) == 1 ) + { + bm.threshold = uval*256/100; + bm.threshold = MIN (255, bm.threshold); + } else if ( !strcmp(line, "incremental") ) + { + bm.incremental = TRUE; + } else if (!strcmp(line, "noNice") ) + { + bm.noNice = TRUE; + } else if ( sscanf( line, "nice %d", &val) == 1 ) + { + nice( val ); + } else if ( sscanf( line, "delay %u", &uval) == 1 ) + { + bm.delay = uval*1000; + } else if ( sscanf( line, "dir %s", sval) == 1) + { + dir = strdup( sval ); + } else if ( sscanf( line, "geometry %s", sval) == 1) + { + parse_geometry( sval ); + } + } + fclose(f); + } + for (i=1 ; i c #D3C3B9", +", c #CCBEB4", +"' c #C8B8B0", +") c #BFB1A9", +"! c #A59992", +"~ c #827A72", +"{ c #E2D3CA", +"] c #F8E7DD", +"^ c #F8E4DA", +"/ c #F4D1C5", +"( c #D3AB9F", +"_ c #DFCBC2", +": c #C9BBB3", +"< c #D3C3BA", +"[ c #CABCB4", +"} c #A89992", +"| c #DECBC3", +"1 c #E4D6CD", +"2 c #F7E6DC", +"3 c #D8C9C1", +"4 c #B3A69F", +"5 c #817873", +"6 c #837A6E", +"7 c #CBBCB4", +"8 c #E4D5CC", +"9 c #ECD1C6", +"0 c #EBC7BA", +"a c #B28D81", +"b c #D3B1A6", +"c c #E6C9BE", +"d c #EBCABE", +"e c #E2C4B9", +"f c #F8E6DC", +"g c #F3E2D9", +"h c #94867D", +"i c #AF9C89", +"j c #CEB5A4", +"k c #E9D9D0", +"l c #B3A59D", +"m c #948A7F", +"n c #C9B3A8", +"o c #D0B8AE", +"p c #DBC8BF", +"q c #AE8A76", +"r c #AD9B88", +"s c #C3BCB2", +"t c #C8C6C3", +"u c #D6CEB9", +"v c #D5B8A4", +"w c #F7DED3", +"x c #F5E3DA", +"y c #9F8A7D", +"z c #D9A687", +"A c #E2CEC5", +"B c #F7E4DA", +"C c #F4D9CE", +"D c #A48A82", +"E c #BAAA9A", +"F c #B5998D", +"G c #CFB1A6", +"H c #B2A199", +"I c #CDA998", +"J c #D4B092", +"K c #EDD0AE", +"L c #ECC8A8", +"M c #ECC8A7", +"N c #E7B693", +"O c #E1AE8C", +"P c #C7A89C", +"Q c #F7E0D5", +"R c #F0DED4", +"S c #B19482", +"T c #AA8E80", +"U c #EED1C5", +"V c #F8E5DB", +"W c #F6DCD0", +"X c #D3AFA4", +"Y c #C3A695", +"Z c #B89B88", +"` c #CCA899", +" . c #AC978E", +".. c #CD9A7E", +"+. c #E4A581", +"@. c #E6AA87", +"#. c #E7AF8C", +"$. c #E7B18D", +"%. c #E7B695", +"&. c #AE8D7B", +"*. c #BE9E87", +"=. c #DDBCAF", +"-. c #F8E2D8", +";. c #EDD8CE", +">. c #9A8377", +",. c #A78A81", +"'. c #EBC7BB", +"). c #F7DFD4", +"!. c #F5D3C7", +"~. c #BC9A90", +"{. c #BDA188", +"]. c #C7A185", +"^. c #C3A08C", +"/. c #C09985", +"(. c #998073", +"_. c #E8BC99", +":. c #E4B896", +"<. c #EABE9B", +"[. c #E9BF9C", +"}. c #DBBC9D", +"|. c #B09685", +"1. c #B99C87", +"2. c #AC9182", +"3. c #C9A58D", +"4. c #EACCC0", +"5. c #F8E5DA", +"6. c #E5D1C7", +"7. c #A38D85", +"8. c #F3D2C6", +"9. c #F7DDD2", +"0. c #F2C6B9", +"a. c #9E8E7D", +"b. c #D6B89A", +"c. c #EAC7A5", +"d. c #C4AB92", +"e. c #C6A98E", +"f. c #E0C9AA", +"g. c #E6C9A9", +"h. c #CCB196", +"i. c #E2C2A3", +"j. c #D1BEA2", +"k. c #BBA294", +"l. c #C8A798", +"m. c #D2B1A5", +"n. c #B09389", +"o. c #B7937E", +"p. c #BA968A", +"q. c #F6D5C9", +"r. c #E6CFC5", +"s. c #CAB1A8", +"t. c #F6DCD1", +"u. c #F5D0C4", +"v. c #BA948A", +"w. c #59534E", +"x. c #D2BBA0", +"y. c #D6BB9E", +"z. c #EDD8B7", +"A. c #D8C3A6", +"B. c #EFDFBF", +"C. c #E3CEAE", +"D. c #BDA893", +"E. c #C8BAA1", +"F. c #CDBCA5", +"G. c #967C7A", +"H. c #B2948D", +"I. c #C8B1A5", +"J. c #F5DBD0", +"K. c #A28C81", +"L. c #A68A7D", +"M. c #977C72", +"N. c #C6A297", +"O. c #F8E6DB", +"P. c #DDC4BA", +"Q. c #D2B2A7", +"R. c #EDBDAF", +"S. c #C4B299", +"T. c #D5C3A8", +"U. c #E7CEAF", +"V. c #EFDCBD", +"W. c #F5EACF", +"X. c #ECD8B9", +"Y. c #C0AA99", +"Z. c #B49C8F", +"`. c #C3B09C", +" + c #695759", +".+ c #61595C", +"++ c #586079", +"@+ c #BC9D94", +"#+ c #BF9F96", +"$+ c #B89C90", +"%+ c #937A70", +"&+ c #8F7176", +"*+ c #78655D", +"=+ c #F0C9BC", +"-+ c #D1B5AB", +";+ c #91746C", +">+ c #AC9F8B", +",+ c #E3D0B1", +"'+ c #D7BEA1", +")+ c #F4E6CB", +"!+ c #F7EDD5", +"~+ c #F1E0C1", +"{+ c #DAC3A6", +"]+ c #AF9380", +"^+ c #BDA495", +"/+ c #99847A", +"(+ c #C2A8A0", +"_+ c #8F97A2", +":+ c #6795B1", +"<+ c #DCCCC8", +"[+ c #D6AEA2", +"}+ c #A3867D", +"|+ c #AF9B99", +"1+ c #717072", +"2+ c #68584E", +"3+ c #BF9B90", +"4+ c #F6DACE", +"5+ c #F8E2D7", +"6+ c #C6ABA1", +"7+ c #CEB79C", +"8+ c #EAD6B5", +"9+ c #E4CDB0", +"0+ c #F9F1DA", +"a+ c #F4E7CB", +"b+ c #EDDAB9", +"c+ c #C5B198", +"d+ c #C79D81", +"e+ c #AD958A", +"f+ c #B6968C", +"g+ c #E3D4CB", +"h+ c #D8C6BD", +"i+ c #A48D85", +"j+ c #E6CABF", +"k+ c #BCB5B6", +"l+ c #A89389", +"m+ c #92766F", +"n+ c #C39A8F", +"o+ c #E3C4B9", +"p+ c #B7968C", +"q+ c #A89A86", +"r+ c #DCC9AC", +"s+ c #D9C5A8", +"t+ c #DDC7A9", +"u+ c #F0DFC4", +"v+ c #F9F0D9", +"w+ c #EEDCBC", +"x+ c #DCCEB1", +"y+ c #DEC3A4", +"z+ c #AF8E75", +"A+ c #9C8880", +"B+ c #C5A99A", +"C+ c #EDC6B9", +"D+ c #C3B0A7", +"E+ c #E7D1C7", +"F+ c #F1DCD2", +"G+ c #F7E0D6", +"H+ c #D0B1A7", +"I+ c #B49B93", +"J+ c #D3BAB1", +"K+ c #F8E3D9", +"L+ c #F5D4C8", +"M+ c #F3C2B3", +"N+ c #AC9988", +"O+ c #CEB9A1", +"P+ c #EBDCBC", +"Q+ c #E0D0B2", +"R+ c #E1CCAE", +"S+ c #F4E5CB", +"T+ c #F4E7CC", +"U+ c #DDCAAC", +"V+ c #D5C4A8", +"W+ c #EACCAB", +"X+ c #C1A186", +"Y+ c #B59D94", +"Z+ c #C7B0A1", +"`+ c #F4D2C6", +" @ c #E8D3C9", +".@ c #DCC1BB", +"+@ c #D6ACA5", +"@@ c #CCB2AB", +"#@ c #CEC1BA", +"$@ c #D9CDC7", +"%@ c #FCF0EA", +"&@ c #FBEFE9", +"*@ c #F9E9E0", +"=@ c #F7E1D6", +"-@ c #F5D2C6", +";@ c #F4C3B4", +">@ c #CA9E91", +",@ c #D9BFA6", +"'@ c #E1D1B7", +")@ c #F6ECD1", +"!@ c #EEE0C0", +"~@ c #EFDDBD", +"{@ c #F3E2C7", +"]@ c #E6D2B4", +"^@ c #DAC9AC", +"/@ c #EBD3B2", +"(@ c #ECD6B5", +"_@ c #D1B89C", +":@ c #A7958A", +"<@ c #B5978B", +"[@ c #DCBBAF", +"}@ c #E1BDB6", +"|@ c #B28687", +"1@ c #BA9B9A", +"2@ c #E2D9D6", +"3@ c #FDF9F6", +"4@ c #FEF8F6", +"5@ c #FCF4EF", +"6@ c #FAEDE5", +"7@ c #F7DCD1", +"8@ c #F4CEC1", +"9@ c #F3C0B1", +"0@ c #AA857A", +"a@ c #DAC4AB", +"b@ c #CAB8A1", +"c@ c #F7EDD4", +"d@ c #F4E7CA", +"e@ c #F3E6C7", +"f@ c #F0DDC1", +"g@ c #DBC6A8", +"h@ c #DAC5A7", +"i@ c #F1E1C0", +"j@ c #F1E2C1", +"k@ c #AEA58F", +"l@ c #AF9E93", +"m@ c #D5B6AA", +"n@ c #C59B8F", +"o@ c #B9A59D", +"p@ c #D5C9C3", +"q@ c #E9E0DB", +"r@ c #FDF8F4", +"s@ c #FDFAF8", +"t@ c #FDF8F6", +"u@ c #FCF2ED", +"v@ c #F9E8E0", +"w@ c #F7DED4", +"x@ c #F4C8BB", +"y@ c #DAAD9F", +"z@ c #7E635B", +"A@ c #C1B19C", +"B@ c #DBCDB3", +"C@ c #F9F0DA", +"D@ c #F0E0BF", +"E@ c #F7EDD2", +"F@ c #F0E0C0", +"G@ c #DEC7A9", +"H@ c #DDC5A8", +"I@ c #F2E3C4", +"J@ c #F8EFD6", +"K@ c #CFC1A6", +"L@ c #948D81", +"M@ c #A19F9F", +"N@ c #C4BEBA", +"O@ c #E9D5CB", +"P@ c #FAEBE3", +"Q@ c #FDF6F2", +"R@ c #FCF5F0", +"S@ c #FBF1EB", +"T@ c #F9EBE3", +"U@ c #F5D7CC", +"V@ c #F4CCBF", +"W@ c #EABDAE", +"X@ c #A08076", +"Y@ c #B6A693", +"Z@ c #EFE5CF", +"`@ c #EFE1C5", +" # c #F2E4C6", +".# c #F6EBD0", +"+# c #E5CFB0", +"@# c #D8C5A9", +"## c #E9D4B5", +"$# c #F9F1DB", +"%# c #BFAF99", +"&# c #B4ADA7", +"*# c #E6ECF3", +"=# c #C1C5C9", +"-# c #EADBD2", +";# c #F8E8DE", +"># c #FBEEE7", +",# c #F9EAE1", +"'# c #EAC0B3", +")# c #B08E80", +"!# c #A1816B", +"~# c #857167", +"{# c #D7C6AB", +"]# c #A39484", +"^# c #F4E9D4", +"/# c #E8D6B7", +"(# c #F6EBD2", +"_# c #DAC7AA", +":# c #E2CCAE", +"<# c #F1E6CD", +"[# c #EFE0C6", +"}# c #A49E9A", +"|# c #FFFFFF", +"1# c #EBF4FD", +"2# c #C7C1BE", +"3# c #F8E7DE", +"4# c #F7E2D7", +"5# c #F6D8CC", +"6# c #E6C0B4", +"7# c #CAAFA9", +"8# c #A39B9C", +"9# c #A28773", +"0# c #D0B69A", +"a# c #C1B29C", +"b# c #C4B19E", +"c# c #ECE0CB", +"d# c #ECD8B8", +"e# c #F8EED7", +"f# c #EFDDBC", +"g# c #D8C7AA", +"h# c #D2BEA2", +"i# c #F6EFDB", +"j# c #C2B29D", +"k# c #E5E5E5", +"l# c #FBFDFF", +"m# c #BEB1AB", +"n# c #F6DBD0", +"o# c #DBB9AD", +"p# c #BC9D93", +"q# c #CFB3A9", +"r# c #DDC8BF", +"s# c #7F7F83", +"t# c #CEBB9F", +"u# c #B5A491", +"v# c #908375", +"w# c #D0BCA5", +"x# c #E2D9C5", +"y# c #E6D4B6", +"z# c #F8EED6", +"A# c #EDDABA", +"B# c #DCCCAE", +"C# c #E0CDB1", +"D# c #EFE8D3", +"E# c #CBC4B7", +"F# c #FDFDFD", +"G# c #C6B0A6", +"H# c #E5C4B9", +"I# c #C3A69C", +"J# c #DCC4BA", +"K# c #F7E1D7", +"L# c #D2BEB8", +"M# c #A6968F", +"N# c #B9A794", +"O# c #DFD7C5", +"P# c #E1D1B5", +"Q# c #F8EDD6", +"R# c #ECDAB9", +"S# c #E6D5B8", +"T# c #DDD5C1", +"U# c #C8C1B9", +"V# c #E2CBC1", +"W# c #F5D8CD", +"X# c #CBBDC5", +"Y# c #CADAF0", +"Z# c #D7CFCB", +"`# c #FAECE4", +" $ c #FBF2EC", +".$ c #FAEFE8", +"+$ c #9E9591", +"@$ c #999797", +"#$ c #AF9C8C", +"$$ c #E6DBC5", +"%$ c #F1E4CB", +"&$ c #F2E8D2", +"*$ c #DACBAE", +"=$ c #EAD7B8", +"-$ c #DED5BF", +";$ c #C2BDB4", +">$ c #DEDEDE", +",$ c #E5D4CA", +"'$ c #D6B9AF", +")$ c #C6DCF6", +"!$ c #DBEBFC", +"~$ c #F9FBFC", +"{$ c #D7D3D1", +"]$ c #F3E7E1", +"^$ c #F8E8DF", +"/$ c #F9EBE2", +"($ c #FDF7F3", +"_$ c #FCF4EE", +":$ c #D3D0CE", +"<$ c #D9D8D9", +"[$ c #D8C7AD", +"}$ c #F9F0DB", +"|$ c #F4EAD4", +"1$ c #E6DABE", +"2$ c #EADEC1", +"3$ c #BDB4A4", +"4$ c #F8F8F8", +"5$ c #DACCC3", +"6$ c #CCC7C9", +"7$ c #D3E6FB", +"8$ c #EEF5FE", +"9$ c #FAFCFF", +"0$ c #E0DCDD", +"a$ c #CFBECC", +"b$ c #F3E0DC", +"c$ c #D1BAD6", +"d$ c #F4E6E5", +"e$ c #FCF2EC", +"f$ c #CCC0CE", +"g$ c #F0F2F5", +"h$ c #B19E8B", +"i$ c #F5E9CD", +"j$ c #FAF3E0", +"k$ c #F2E6C9", +"l$ c #ECE2C7", +"m$ c #E5D4B5", +"n$ c #F1E3C2", +"o$ c #C4B59A", +"p$ c #E1E1E1", +"q$ c #DED1CA", +"r$ c #F4DCD1", +"s$ c #CBD4E0", +"t$ c #E0EDFC", +"u$ c #F8FBFE", +"v$ c #F3F2F4", +"w$ c #C7BDD1", +"x$ c #AB95BC", +"y$ c #BEA1C1", +"z$ c #EED9DA", +"A$ c #D0C7D3", +"B$ c #EDF5FE", +"C$ c #F5F9FE", +"D$ c #A5AAB0", +"E$ c #EAD8B8", +"F$ c #F4EBD3", +"G$ c #EEE4C8", +"H$ c #DCCFB2", +"I$ c #F0DFBE", +"J$ c #BCB5AB", +"K$ c #DFDBDA", +"L$ c #D0C8C9", +"M$ c #E0EEFC", +"N$ c #EBF3FD", +"O$ c #E9E8ED", +"P$ c #BFC9DE", +"Q$ c #C7DEF8", +"R$ c #CFE4FB", +"S$ c #E7F1FD", +"T$ c #9397A6", +"U$ c #D9C7AC", +"V$ c #E9D6B7", +"W$ c #E8DBBD", +"X$ c #F8F0D8", +"Y$ c #EADDBF", +"Z$ c #F0E1C0", +"`$ c #CDBB9F", +" % c #DEDEDD", +".% c #FAFCFE", +"+% c #E8F2FD", +"@% c #EAF3FD", +"#% c #F1F7FD", +"$% c #FEFFFF", +"%% c #FCFEFF", +"&% c #FCFDFF", +"*% c #FDFEFF", +"=% c #CAE1FB", +"-% c #B7D6F9", +";% c #D0E5FB", +">% c #E2EFFC", +",% c #A3ACB8", +"'% c #EBD9B9", +")% c #DFCFB1", +"!% c #F4E9CC", +"~% c #EFE4C9", +"{% c #F0E2C1", +"]% c #EEDCBB", +"^% c #E1CFB0", +"/% c #BBAE9B", +"(% c #F8F7F7", +"_% c #FEFEFF", +":% c #F2F7FE", +"<% c #F4F9FE", +"[% c #F6FAFF", +"}% c #F8FBFF", +"|% c #F6FAFE", +"1% c #D7E8FC", +"2% c #B1D3F9", +"3% c #ADD0F8", +"4% c #C2DDFA", +"5% c #CADAED", +"6% c #DFC9AE", +"7% c #E7D5B6", +"8% c #E7D8B9", +"9% c #F5EACD", +"0% c #EFE1C1", +"a% c #D8C1A5", +"b% c #BBB1A3", +"c% c #FFFFFE", +"d% c #F3F9FE", +"e% c #F5FAFE", +"f% c #F3F8FE", +"g% c #F1F7FE", +"h% c #E1EEFC", +"i% c #C8E0FB", +"j% c #B3D4F9", +"k% c #C2D9F3", +"l% c #DAC8AC", +"m% c #E5D3B4", +"n% c #EFE0C0", +"o% c #ECD7B6", +"p% c #E6CFB0", +"q% c #CEB99E", +"r% c #C6BFB8", +"s% c #F4F8FE", +"t% c #E6F0FD", +"u% c #DAEAFC", +"v% c #CEE3FA", +"w% c #BBD9F9", +"x% c #BDD9FA", +"y% c #B7D3F3", +"z% c #AEA08D", +"A% c #EEDDBC", +"B% c #F0E0BE", +"C% c #ECD5B4", +"D% c #D9C2A5", +"E% c #C0AD96", +"F% c #EAE9EA", +"G% c #DCEBFC", +"H% c #D1E5FB", +"I% c #C5DEFA", +"J% c #BDDAFA", +"K% c #C9E0FA", +"L% c #DDECFC", +"M% c #D8E9FC", +" . + @ # $ ", +" % & * = - ; > , ' ) ! ", +" ~ { ] ^ / ( _ : < [ } | 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 b q r s t u v w ] x y z A B f ] f C D ", +" E F G H I J K L M N O P Q ] R S T U w 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.f f r.s.t.u.v. ", +" w.x.y.z.A.B.C.D.E.F.G.H.I.J.K.L.M.N.9.] O.P.Q.R. ", +" S.T.U.V.W.X.Y.Z.`. +.+++@+#+$+%+&+*+=+5.] V -+;+ ", +" >+,+'+)+!+~+{+]+^+/+(+_+:+<+[+}+|+1+2+3+4+] ] 5+6+ ", +" 7+8+9+0+a+b+c+d+e+f+o f g+h+i+j+k+l+m+n+o+V ] ] 4+p+ ", +" q+r+s+t+u+v+w+x+y+z+A+B+C+).] D+E+F+G+H+I+J+Q f ] K+L+M+ ", +" N+O+P+Q+R+S+T+U+V+W+X+Y+Z+`+w @.@+@@@#@$@%@&@*@f =@-@;@>@ ", +" ,@'@)@!@~@{@]@^@/@(@_@:@<@[@-.}@|@1@2@3@4@5@6@V 7@8@9@0@ ", +" a@b@c@d@e@e@f@g@h@i@j@k@l@m@n@o@p@q@r@s@t@u@v@w@L+x@y@z@ ", +" A@B@C@D@E@F@G@H@I@J@K@L@M@N@O@P@5@Q@R@S@T@K+U@V@W@X@ ", +" Y@Z@`@ #.#+#@###$#%#&#*#=#-#;#P@>#6@,#] Q !.'#)#!#~# ", +"{#]#^#/#(#I@_#:#<#[#}#|#1#2#] ] 3#3#] 4#5#6#7#8#9#0# ", +"a#b#c#d#e#f#g#h#i#j#k#|#l#m#V ] ] 5.n#o#p#q#r#s#t#u# ", +"v#w#x#y#z#A#B#C#D#E#|#|#F#G#K+V w H#I#J#K#V ;#L#M# ", +" N#O#P#Q#R#g#S#T#U#|#|#k#V#^ W#X#Y#Z#P@*@;#`# $.$+$@$ ", +" #$$$%$&$j@*$=$-$;$|#|#>$,$4#'$)$!$~${$]$^$/$u@($_$:$<$ ", +" [$}$|$e@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$j@I$J$|#|#K$L$M$N$l#|#|#|#|#|#|#O$P$Q$R$S$T$ ", +" U$V$W$X$Y$Z$I$`$ %|#.%+%@%#%l#$%%%&%*%*%&%8$=%-%;%>%,% ", +" '%)%!%~%{%]%^%/%(%_%u$:%<%&%l#[%}%|%<%S$1%2%3%4%5% ", +" 6%7%8%9%0%f#E$a%b%c%|#.%*%_%}%d%e%f%g%h%i%j%j%k% ", +" l%m%n%n$D@o%p%q%r%|#|#|#|#&%s%8$t%u%v%w%j%x%y% ", +" z%A%m%n$B%o%C%D%E%F%|#|#|#|#&%f%G%H%I%J%K%L%M% "}; diff --git a/loader.c b/loader.c index 5819f1b..2bb2b95 100644 --- a/loader.c +++ b/loader.c @@ -1,24 +1,15 @@ /* Hot-babe - * Copyright (C) 2002 DindinX + * Copyright (C) 2002 DindinX & Cyprien * Copyright (C) 2002 Bruno Bellamy. * * 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. + * it under the terms of the artistic License * - * 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. + * THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES + * OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. See the + * Artistic License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * - * Please note that part of this code is from wmbubble, and such should be - * copyrighted by - * */ /* general includes */ @@ -97,7 +88,8 @@ int load_anim( HotBabeAnim *anim, gchar *dirname ) strncpy( filename, dirname, 512 ); strcat( filename, "/" ); strcat( filename, line ); - anim->pixbuf[i] = gdk_pixbuf_new_from_file( filename ); + /* FIXME: I'm a bad boy, I should use a real GError -temsa */ + anim->pixbuf[i] = gdk_pixbuf_new_from_file( filename, NULL ); } fclose( fd ); diff --git a/loader.h b/loader.h index 0e699cc..2e0faaf 100644 --- a/loader.h +++ b/loader.h @@ -1,23 +1,14 @@ -/* Hot-babe - * Copyright (C) 2002 DindinX +/* Hot-babe + * Copyright (C) 2002 DindinX & Cyprien * Copyright (C) 2002 Bruno Bellamy. * * 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. + * it under the terms of the artistic License * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * - * Please note that part of this code is from wmbubble, and such should be - * copyrighted by + * THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES + * OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. See the + * Artistic License for more details. * */