xpcd 2.0 ======== what is xpcd ? -------------- xpcd is an X11-based Program for handling PhotoCD-images. You can select the images with your mouse, preview the image in a small window, and load the image with any of the 5 possible resolutions. You can also select a part of the Image with your mouse and load only the selected part. what is here ? -------------- libpcd -- a library for photocd decoding test -- some simple test programs for libpcd: svgalib viewer, converter, simple gimp (0.54) plugin (standalone) xpcd -- xpcd source code, a gimp (0.99) plugin (allows xpcd and gimp to work hand-in-hand, not useful without xpcd). howto install ? --------------- `./configure && make' should compile the package. The configure script has the usual options (--help lists them). Compiling xpcd produces one warning (viewer.c, about a not initialized variable), you can ignore this one. It is a cannot-happen, but gcc is'nt clever enouth to see this. With `make try' you can test xpcd without installing it. `make install' installs nearly everything (exception: the xpcd-gate plugin, move this from /usr/bin to the gimp plugins dir). Have tested xpcd with i384-linux and sparc-openbsd, it should compile without problems on other systems too. xpcd uses *big* shared memory segments. It tries shared anonymous mmap()ing first. If this fails, it tries sysv shared memory. Many Systems have limits for the size of sysv shared memory blocks, so you might run in trouble. If you get "shmget: Invalid argument" errors for big segments the limit is to small. With linux you can tune the upper limit in /usr/src/linux/include/asm/shmparam.h (then recompile the kernel of cource). what do I need to compile xpcd ? -------------------------------- required: X11R5+ client libs (IIRC the XtVa*() functions are new in R5? xpcd uses them) optional: Xaw3d - xpcd is tuned for Xaw3d, strongly recommended. optional: the jpeg library if you want to save jpeg images with xpcd (I use version 6) optional: the tiff library if you want to save tiff images with xpcd optional: the svgalib for the viewer in the test dir. 1.2.10 works ok, hav'nt checked older versions. The configure script should take care about the optional stuff and configure xpcd depending on what is installed on your system. How can I configure xpcd? ------------------------- Probably not required, xpcd saves (most) settings automatically. Check the manpage if you want to know how the config file ($HOME/.xpcdrc) works. I have a bugfix/new feature/something else for xpcd --------------------------------------------------- Just mail it. Please include a description what you did and why. If I think it is useful, I'll include it into the next release. Please use unified diffs (diff -u). And please don't reformat my sources, it makes the patches hard to read. what is new... ============== ...in version 2.08 ------------------ - bugfix in the internal viewer which caused segfaults if the filename had no slash in it. - xpcd uses absolute paths now when passing command line arguments to allways running instance. - removed fbview from the test directory. This tool is available as separate package now. See http://www.in-berlin.de/User/kraxel/linux.html - copyed in a newer version of the TAB-complete code - some tweaking of the build proccess (configure, Makefiles, rpm spec file). You can build rpms with "rpm -ta xpcd-2.08.tar.gz" now. - removed the configure check for gimp 0.54. Anyone remembers there was such a version? Anyone still using it? ...in version 2.07 ------------------ - minor fixes in xpcd (sets WM_CLIENT_LEADER for all windows, icon titles). - xpcd-gate displays some help text once it is started, I hope it is easier to get xpcd+gimp working now... - fbview can display jpeg too. ...in version 2.06 ------------------ - fixed some svgalib problems in pcdview. - fbview is much improved. - xpcd-gate compile problem fixed. ...in version 2.05 ------------------ - added fbview. Small tool to view images. Much like pcdview, but uses a framebuffer device (/dev/fb0) instead of svgalib. - manpages for pcdview && pcdtoppm (contributed by Stephan Alexander Suerken <absurd@debian.org>) - bugfix (segfaults if compiled without tiff support) from Nicolai Langfeldt <janl@math.uio.no> ...in version 2.04 ------------------ - Makefile bug fixed. - tiff fixed, added capability to enable/disable compression. ...in version 2.03 ------------------ - removed some gnu-stuff from the makefiles, it compiles with bsd-make out-of-the-box - danish translation (thanks to Niels Kristian Bech Jensen <nkbj@image.dk>) - few typos fixed - tiff support (thanks to Bertrand Petit <elrond@phoe.frmug.org>). currently uncompressed files only, compressed files don't work. Don't know yet whenever xpcd or libtiff gets this wrong... - click&drag scrolling. Click with the mouse into the viewer (button 1+2) or thumbnails (button 2 only) window and drag the content. Really nice feature. But you don't want to try that with a remote display unless you have a *real fast* network connection... - xpcd's internal viewer and the decoding process pass data using shared memory instead of a pipe. - Fixed memory management, malloc errors are catched now. Well, not really all yet, but at least those for *big* memory blocks. ...in version 2.01 & 2.02 ? --------------------------- - few bugfixes - included *.xpm files from 1.x (sorry, I just forgot them...) - some app-defaults tweaking. - xpcd saves the selected viewer to ~/.xpcdrc - added a few lines to the README ...in version 2.0 ? ------------------- xpcd is mostly rewritten from scratch. There are some new features, others are gone: new: - SPEED: xpcd is faster now - xpcd uses its own photocd decoding routines, hpcdtoppm is'n required any more. - you can access more than one CD, if you open a new one the old is'nt closed. Requires _huge_ screen :-) - internal viewer, can save ppm + jpeg (jpeg requires the jpeg lib) - more than one externel viewer and switching between them at runtime possible - file dialog boxes have filename completion (using tab) - better keyboard support (scrolling with cursor keys, close windows with 'q') - online help (try the F1 key) - if xpcd finds a already running xpcd on startup, it passes the command line args to the already running instance. - support for gimp >= 0.99 - RPM packaging support - uses the MIT Shared Memory extention - full grayscaled images support - .xpcdrc config file, autosave for some options - started nls support ("export LANG=de; xpcd" should bring up a german speaking xpcd). All the nls stuff is done using app-defaults. If someone wants other languages too: Feel free to translate the strings. Just take the german (Xpcd-de) or english (Xpcd-default) file as template and start your work. Becauce german is my native language, the german messages are a bit slang-ish. For the english messages it should be enougth to understand "computer english", but probably there are some mistakes in. BTW: corrections are welcome too... gone: - display while loading for the preview images. Yes, looks nice, but is too slow with fast cdrom drives. - The "1" "2", ... buttons. There is a menu now, you get it by clicking with the right mouse button - The "dismiss" button too. You can close the windows with your window-manager. Or with 'q'. Exception: Dialogs. But there is a 'cancel' button and the ESC-Key :-) - display gamma corretion. - gimp support for < 0.99 (there is a old, simple 0.54 plugin in the tests dir. _Theoretical_ it should even compile automatically of you have an old gimp version installed, but I hav'nt tested this) known bugs: - I/O-errors kill xpcd with a SIGBUS (BTW: is there a nice _portable_ way to handle I/O-errors on mmap(2)'ed files?) - some errors still catched with "perror(); exit()". - you can exit xpcd even if the internal viewer is busy with saving a image. You'll end up with a tuncated file. known *linux kernel* bugs (2.0.29, fixed in 2.1.x): - you may get I/O-errors, becauce the kernel sometimes tries to read behind EOF, which might be a unreadable sector, and some drives don't like this. This is a isofs bug, and in the linux directory is a fix. The patch produces some anonying error messages sometimes, they can be ignored. - If you have a scsi cdrom drive and see the first session of a photocd only, you may want to have a look at the other patches in the linux directory too. not completely (re)implemented yet: - some small not-required-but-nice features like icon-pixmaps planned / TODO-List: - write more documentation for libpcd - maybe let talk xpcd and xpcd-gate using Properties/Selections. This would allow them to run on *different* hosts. -- Gerd Knorr <kraxel@goldbach.in-berlin.de>