CHANGES
- Created a special GTK widget for the movie screen; basically a
slightly hacked version of GtkButton that doesn't try to repaint.
It'll continue to mutate over time.
- Hide the control panel by clicking the video screen.
- Implemented history function.
- Enhanced the memory allocation wrappers for better protection.
- Lots of bug fixes and little stuff.
- Verbose logging rerouted from console to STDERR.
- Tooltips added to main window.
- Play-on-Start bug fixed.
- Global configuration file added.
- Many bug fixes and code cleaned up a bit.
- Restructured preference handling and expanded preferences.
- Installed an autosave feature that saves prefs whenever "Apply" is pressed.
- Incorporated restart and play buttons. Added buttons for future database and playlist options.
- Added "verbose" mode.
- Many bug fixes.
- Fixed MPEG problem.
- Fixed minor problem in done_check() which might have broken compile with Redhat 6.0.
- Fixed the shared memory problem, finally. User can now run up to 255 simultaneous clips
without control overlap or interference.
- Rewrote valxanim.c. Most of the segfault problems with certain Quicktimes and AVI's
should be resolved now. If not, please let me know.
- Fixed signal connects on the windows so that deleting a window doesn't break GXAnim.
- Rewrote extr_string in util.c to clear up a few bugs.
- Minor cosmetic changes (such as changing "Find" to "Open" on main window)
- Added config.c; GXAnim now allows for the use of a configuration .rc file as well as compiled-in defaults.
- Eliminated the xanconfig typedef and all references to it; this operation has been replaced with the
defaults_type typedef and the default/configuration subsystem. I feel happier about the data arrangement now.
- implemented IDLE and AUTOPLAY play states.
- expanded the done_check() function and reduced the timeout internal from 50 ms to 20 ms.
- Play-On-Start works now.
- Redesigned the movie screen window so that the XAnim mapping is projected on a subwindow rather
than the window itself. MOVIE now refers to the XAnim mapping subwindow. In theory this should allow>
other objects (such as slidebars or labels) to be packed into the movie screen window.
- Added portability defines into header.h.
- Got Restart fixed by expanding the shared memory segment to include a command channel
(playset) as well as a state channel (playing). (see source)
- Fixed a problem concerning some AVI files not being recognized by valxanim.c. Thanks
to Scott Conway for bringing this to my attention.
- Changed config.h so that XANIMPROG is set to "xanim" rather than "xanim2801". This
should have been changed before 0.20 was released. I screwed up.
- Installed interface volume control.
- Offloaded window building operations into windows.c, and the windows themselves
into structs; this will help keep the internal structure organized as more windows get
implemented. It also reduces the clutter of main().
- Implemented preferences screen. This will be expanded as time goes on; for now it
just covers size, scaling and basic playback options.
- Attached restart button to stop_event for now. Having a bit of trouble getting movie>
restart just right; there doesn't seem to be internal XAnim support for it.
- Changed around #DEFINEs, added a few new ones.
- Added little visual enhancements, like narrowing the statusbar and displaying the
playing filename during play.
- Hammered the hell out of it to make sure it's stable.
- Released two days ahead of schedule.
- Seriously cleaned up and stabilized code. The whole thing runs much more solid now; 0.02 barely functioned
and 0.02a has messy code. 0.10 is the first serious release.
- Restructured the play_event routine in gxanim.c to be a bit smarter and to pause the playback if the user presses
Play while a movie is up. I think this actually made it into 0.02a; it may get taken out of the next version.
- Added file valxanim.c - functions to query Xanim (without actually loading a movie file) to get Xanim version
info, movie file type and native size info. Uses filetype info to verify that the file is a movie file, and native size
info to adjust size settings if SIZEX and SIZEY are both set to zero. Revised this routine to take into account the
output of multiple vid codec lines.
- Added a new struct to the control struct - stats. This is where the info obtained by valxanim.c ends up and is used.
- The real-time monitor routine now does a wait() to make sure we don't end up with zombies left behind in the
case of an abend.
- Verified zero memory leakage! Yay! (A minor miracle considering now much the DM allocator is being used.)
- Added the file_only function to trim off the path from the movie filename showing up in the movie screen title.
- Made modifications to the dm allocator to act as a reallocation driver.
- Added a #DEFINE to activate test mode. Remind me at some point to output test mode to STDERR.
- Rearranged the main interface, rewrote most of it, added a real control set and killed the remote control.
- Reinstalled the statusbar widget that was in 0.01 but was taken out of 0.02. It's a much better behaved statusbar
than 0.01's. I think I'll keep it around awhile this time.
- 0.02 wasn't ready for prime time. Hell, it wasn't ready for cable access. It feels much better now, though
still slightly neurotic.
- Eliminated some structure redundancy and streamlined stuff.
- Stabilized and cleaned up code. Basically rewrote half the thing.
- Rather than exec Xanim and then do a fork/kill job bit to start and stop it (a real crude way to do it), we're
now creating a "movie screen" window and mapping Xanim's output onto it. A lot of problems get solved
this way, and it opens up the ability to do remote features from the main interface.
- Populate the title with the current movie filename.
- Prepare code structure for massive interface implementation.
(3/19/99 - 3/21/99)
- Initial release of GXAnim, version 0.01. It cranks up Xanim as an independent job and then manually
kills the process to stop it. The equivalent of hand-cranking a car.