home *** CD-ROM | disk | FTP | other *** search
- TABLE OF CONTENTS
-
- anim.datatype/--datasheed--
- anim.datatype/--input_format--
- anim.datatype/ADTM_LOADFRAME
- anim.datatype/ADTM_PAUSE
- anim.datatype/ADTM_START
- anim.datatype/ADTM_STOP
- anim.datatype/ADTM_UNLOADFRAME
- anim.datatype/DTM_WRITE
- anim.datatype/MAIN
- anim.datatype/OM_DISPOSE
- anim.datatype/OM_NEW
- anim.datatype/preferences
- anim.datatype/--datasheed-- anim.datatype/--datasheed--
-
- NAME
- anim.datatype -- data type for IFF ANIM animations
-
- SUPERCLASS
- animation.datatype
-
- DESCRIPTION
- The anim datatype, a sub-class of the animation.datatype, is used to
- load and play IFF anim animations.
- It supports all currently defined IFF anim compressions
- (0/1/2/3/4/5/6/7/8/J) and any "interleave count".
- ILBM BODY Interleaved bitmaps can be uncompressed or compressed using
- cmpByteRun1.
- Using the prefs-file, any sound can be attached to the animation.
-
- METHODS
- OM_NEW -- Create a new animation object from a description file. The
- source may be a file or a clipboard unit, both given as an
- IFFHandle, or you may create an empty object (DTST_RAM).
-
- OM_DISPOSE -- Dispose instance and contents (frames, colormaps, sounds
- etc.), then pass msg to superclass.
-
- OM_UPDATE -- Perform an ICM_CHECKLOOP check, and if succesfull, the
- method will be executed like OM_SET downstairs.
-
- OM_SET -- Pass msg to superclass and call GM_RENDER if retval from
- superclass was != 0UL.
-
- DTM_WRITE -- Save object's contents in local (IFF ANIM-3) or
- superclass (IFF ILBM) format.
-
- ADTM_START -- Start playback.
-
- ADTM_PAUSE -- Pause playback.
-
- ADTM_STOP -- Stop playback.
-
- ADTM_LOADFRAME -- Fill in struct adtFrame with requested information
- from internal FrameNode list like bitmap, colormap and sample. If
- the bitmap information is not loaded yet, it will be loaded from
- disk.
-
- ADTM_UNLOADFRAME -- Free resources obtained by ADTM_UNLOADFRAME.
-
- All other methods are passed unchanged to superclass.
-
- ATTRIBUTES
- Following attributes are set by the object and are READ-ONLY for
- applications:
- DTA_ObjName -- set by anim file (IFF generic NAME chunk)
- DTA_ObjAuthor -- set by anim file (IFF generic AUTH chunk)
- DTA_ObjAnnotation -- set by anim file (IFF generic ANNO chunk)
- DTA_ObjCopyright -- set by anim file (IFF generic (C) chunk)
- DTA_ObjVersion -- set by anim file (IFF generic FVER chunk)
- DTA_TotalVert -- set by BitMapHeader (ILBM BMHD chunk)
- DTA_TotalHoriz -- set by BitMapHeader (ILBM BMHD chunk)
- ADTA_Width -- set by BitMapHeader (ILBM BMHD chunk)
- ADTA_Height -- set by BitMapHeader (ILBM BMHD chunk)
- ADTA_Depth -- set by BitMapHeader (ILBM BMHD chunk)
- ADTA_Frames -- number of frames in animation
- ADTA_FramesPerSecond -- FPS rate (possibly set by DPAN chunk)
- ADTA_KeyFrame -- Key frame of animation
-
- BUGS
- - In large videos, the frames at the end will be played slower than
- those at the beginning of the file. This is the result of the
- sequential search internally used (only serious with more than 25000
- frames (mc6030/50mhz)).
- May or may not be fixed.
-
- - Animations with more than 8 planes will crash the system
- (anim.datatype handels 12 bit animations, but animation.datatype
- V40 handles only anims with a depth of 8).
-
- - ANIM-1-Code has been disabled because it draws the blocks to X and H
- dimensions which are divisible by 8 (can't be fixed: no test files).
-
- - The ANHD (AnimHeader) ah_Mask-field will be ignored for ANIM-0,
- 2,3,4,5,6,7,8,J. ANIM-1 (acmpXORILBM) respects this.
-
- - The BMHD (BitMapHeader) bmh_Masking-field will be ignored.
-
- - ANIM-4 isn' tested yet (no test files).
-
- - ANIM-4 has been disabled for the reason above.
-
- - ANIM-J is twice as slow as it should be because ANIM-J operates on
- interleaved bitmaps, but (currently) anim.datatype uses
- non-interleaved bitmaps internally. Therefore the current
- implementation interleaves the bitmap, then unpacks, then
- de-interleaves the bitmap. Not very efficient.
-
- - Any flags in the ANHD (AnimHeader) ah_Flags field except ahfLongData
- (bit 0; used by Anim-7/8) and ahfXOR (bit 1; used for all
- compression types except ANIM-J (not required, ANIM-J has an
- internal XOR mode) and anim-0) are ignored. ANIM-4 suffers under
- these problems (cannot be fixed without example files).
-
- - ANIM-6 left/right channels are viewed interleaved. Upon request,
- I can add options to view the left or right channel only.
-
- - The internal "rollback" machanism used for creating full images from
- given DLTAs is slow. This is caused by implementation details,
- not the idea itself.
-
- - If an animations contains colormaps-per-frame and the given CMAP
- contains less colors than (1UL << anim_depth), the remaining colors
- are filled with black. I don't know where to take the remaining
- colors (from last frame/previous (e.g. interleaved) frame)...
- Comments __VERY__ welcome.
-
- - The ANIM-3 encoder has a slight problem in run-length compression;
- therefore this part has been disabled.
-
- - The encoder does not support dynamic timing properly. Instead,
- all frames are saved.
-
- - The encoded initial ANIM-3 IFF ILBM BODY is uncompressed.
-
- - The encoder rejects any attempt to work with non-planar or
- interleaved planar bitmaps.
-
- TODO
- - Fixing the bugs above.
-
- - Internal cache for packed DLTA chunks. This may speed up the
- internal rollback mechanism used for random frame access.
-
- - Other compression formats when saving, including the popular
- ANIM-5.
-
- - PERIOD options to modify the given sound.
-
- - Add support for animation.datatype V41 ADTA_TicksPerFrame timing.
-
- - Write the "--input_format--"-Autodoc section.
-
- HISTORY
- V1.1
- Released to the Waldspecht-BBS for testing.
-
- V1.2
- Released to the Waldspecht-BBS for testing.
-
- V1.3
- Released to the Waldspecht-BBS for testing.
-
- V1.4
- First Aminet release.
-
- - Partial code cleanup
-
- - Recompiled with SAS/C 6.57.
-
- - Redirected serial "verbose" output to a CON:-window, including
- the matching VERBOSE prefs option.
-
- - Changed the VERBOSE output a little bit.
-
- V1.5
- - Implemented palette per frame (ILBM CMAPs per frame).
- (animation.datatype 40.7 does not support these colormap changes
- per frame (it's output may look like a color trash). Custom
- animation players which uses animation.datatype subclasses for
- loading (like my DBufDTAnim) don't have this problem.
- animation.datatype will support these colormaps-per-frame in one
- of the next updates.)
-
- - Internal changes to be able to support up to 12 planes in an anim.
- The animation.datatype 40.7 supports only anims up to 8 planes,
- otherwise the machine will crash. My animation.datatype V41 will
- support this.
-
- - The generic IFF ANNO, AUTH, FVER, NAME and "(C) " chunks are now
- moved to the corresponsing DataTypes attributes if they appear in
- a FORM ILBM.
- The data will be moved like this:
- ANNO -> DTA_ObjAnnotation
- AUTH -> DTA_ObjAuthor
- FVER -> DTA_ObjVersion
- NAME -> DTA_ObjName
- (C) -> DTA_ObjCopyright
-
- - DTA_Title equals now to DTA_ObjName (e.g. a given NAME chunk). If
- this is NULL, DTA_Name is used instead.
-
- - If a DPAN (DPaint Anim) chunk occurs, the FPS rate is taken from
- the "flags" field.
- Thanks to Brian Jones (bjones@cadvision.com) for reporting this.
- If the value taken is 0, the old, fixed rate (5 fps) is used
- again.
-
- - Fixed a hole in the state machine which causes problems when an
- animation contains no frames. Should work now.
- Fixed.
-
- - An error in the prefs-file will now force the VERBOSE option.
-
- - Implemented sound. A sample can now be attached to the animation
- using the SAMPLE/VERBOSE options.
- Note that anim.datatype is still a GID_ANIMATION (anim WITHOUT
- sound) type datatype.
- The GID_#? idetifiers belongs to the source data, not the
- modifications done by a datatype code (a IFF ANIM does not contain
- any sound data, the sound is attached later).
-
- V1.6
- - Disabled the optimizer. This fixes a mysterious System-Crash
- when resizing the parent application window. Don't know why this
- works now :-((
-
- V1.7
- - Reorganisation of source (includes small cleanup).
-
- - Fixed a silly hole in the state machine which causes the
- datatype to return errors on colormap changes (e.g. ILBM CMAPs).
- Error codes were returned like this:
- (Number_of_colors_in_CMAP * 3).
-
- - Enabled the optimizer (see V1.6) again. Since reorganisation of
- the src, the problem never occured again. Any hint ?
-
- - Fixed a bug in LibExpunge (didn't check lib_OpenCnt), which is
- also present in all my other external BOOSI classes (and
- datatypes).
- Thanks to Guenter Niki (gniki@informatik.uni-rostok.de) for
- reporting this bug.
-
- V1.8
- * Shareware
- Starting with V1.8, anim.datatype is Shareware.
-
- - Added experimental stack swapping code. The "Need more stack"-
- requester has been removed for this reason.
- This also fixes a possible deadlock of "input.device" because
- the GM_LAYOUT method was running with low stack.
-
- - Uses OpenFromLock when obtaining a fh for random frame access.
- This allows the usage of "virtual filesystems" (datatypes.library
- V45 allows such things).
-
- - Now supports saving in the local format (e.g. IFF ANIM,
- currently only ANIM-3).
- Note that saveing begins with the __current__ frame and can be
- controlled with the ADTA_Frame, ADTA_Frames and
- ADTA_FrameIncrement attributes.
-
- - Now support DTST_RAM (creates an empty anim.datatype object).
-
- - Now supports subclasses of anim.datatype, mainly to fill in
- the ADTM_LOADFRAME/ADTM_UNLOADFRAME methods when using an empty
- (e.g. created with DTST_RAM) anim.datatype object.
-
- - Now the high order bits of each color gun are replicated through
- the whole INT32 in the colormap.
-
- V1.9
- - Fixed a bug which prevents saving in local (IFF ANIM-3) format
- using an (created using DTST_RAM) empty object (like "DTConvert"
- does).
- Fixed.
-
- V1.10
- - Moved IFF ANIM defines etc. to classdata.h include file.
-
- - Reworked file scan. This fixes problems with many animations
- where the second frame was treated as an ILBM instead of an DLTA.
- Fixed.
-
- - Implemented ADTM_START, ADTM_STOP and ADTM_PAUSE to get a more
- smoothly start and stop, see method autodocs for details.
-
- - Implemented Martin Tailefer's AsyncIO code (currenty broken,
- has been disabled for now).
-
- - Removed unnecessary GM_LAYOUT code; DTA_Total(Vert|Horiz) are now
- set in OM_NEW.
-
- - Fixed ADTM_LOADFRAME that if a frame can't be loaded (seek error,
- or timestamp not found) now a matching error code will be
- returned in Result2.
-
- - Removed NOREMAP feature and matching DTM_FRAMEBOX code because
- this was an ugly hack...
-
- - XORBitMap has been rewritten, XOR mode for
- ANIM-2/-3/-4/-5/-6/-7-/8 should now be a little bit faster;
- this also fixes two bugs:
- - The bitmaps were incorrectly merged together when the bitmap
- size grows over 64k per plane (for example 1280 * 512)
- Fixed.
- - Due rounding errors the last 8 pixels were not processed
- Fixed.
-
- - Plane pointers are now on a quad-long boundary to get more speed
- on a mc68040.
-
- - Internal CopyBitMap has been optimized to use CopyMemQuick if
- possible.
-
- - Added compatibility code for DPaint ANIM Brushes, compressed with
- ANIM-5 and XOR mode, but which don't have the XOR bit set.
- Added NODPAINTBRUSHPATCH to disable this function.
- This fixes the problems with the animations I found in the CanDo
- distribution.
-
- - Added support for GRAB chunk (grabbing point of animation).
- Does only work with animation.datatype V41 (which implements
- PDTA_Grab attribute).
-
- - Stack swapping code has been improved; the stack is now only
- swapped if stacksize falls below 16384 / 2 bytes; this saves
- the stack allocation for ADTM_LOADFRAME / ADTM_UNLOADFRAME
- in animation.datatype V41.
-
- - Added WaitBlit in OM_DISPOSE to wait for blitter which may
- use our bitmaps.
-
- - Added seperate memory pool for frame bitmaps, which is
- set up to have the correct size for this job.
- This should speed up bitmap memory allocations.
- The pool's size is reduced if there is not enougth memory.
- The other "misc usage" pool is increased to 32k get the
- correct size for DLTA temp mem usage.
- The datatype now uses AllocVecPooled instead of AllocVec
- for delta buffers.
-
- - Cut some chars from the AnimHeader dump output. Now it fits
- on a single-line in a 640 pixel CON: window (topaz 8 font).
-
- - Added NOLOADALL and CMAPS switch for multi-line prefs using
- the MATCHPROJECT option.
-
- - Added additional checking code for CAMG chunk data. Invalid
- flags are now removed.
-
- - Added support for dynamic timing, e.g. anim.datatype now uses
- AnimHeader's ah_AbsTime and ah_RelTime fields. Does only work
- properly with animation.datatype V41 (for animation.datatype
- V40 this option is turned off per default and turned on if
- superclass is animation.datatype V41); matching NODYNAMICTIMING
- and DYNAMICTIMING options have been added; modifications
- have been made in AttachSamples and ADTM_LOADFRAME, too.
-
- - Fixed the bug that the last sample's length wasn't calculated
- correctly, which may have caused Enforcer read-hits (never
- seen, but...).
-
- - Added SAMPLESPERFRAME option to override own calculations.
- This allows to get rid of rounding errors in such cases.
-
- - Added "wanted" message for IFF ANIM-4 animations. If you have
- such an animation, and if you are the FIRST who send's me a VALID
- IFF ANIM-4 compressed animation, you'll get $10. No joke.
-
- - ANIM-3 encoder has been cut down in functionality to get
- (temporary) rid of a bug in run-length encoding (DPaint IV AGA
- does not like this !?).
-
- - The encoder does not not fail if a subclass returns
- ERROR_OBJECT_NOT_FOUND for ADTM_LOADFRAME. It simply tries
- to load the next frame. This fixes some problems with dynamic
- timing.
-
- - The encoder now checks explicitly for non-planar or interleaved
- planar input bitmaps, which are NOT supported yet (e.g.
- such an attempt results in ERROR_NOT_IMPLEMENTED).
-
- - A fps value greater than 60 fps found in a DPAN chunk is now
- treated as invalid.
-
- V1.11
- - Recompiled with SAS/C 6.58. May fix some mc68060 related
- problems.
-
- - Found the longstanding bug that animation.datatype V40.7
- didn't free some frames. Reason is that ADTM_LOADFRAME
- may be used like "realloc". Now alf_UserData is checked;
- any given frame will be freed (ADTM_UNLOADFRAME).
- Fixed.
-
- - ADTM_UNLOADFRAME now clears alf_UserData to indicate that the
- frame has been freed.
-
- - Now supports anims deeper than 8 planes, but a colormap
- (e.g. a CMAP chunk) is still expected.
-
- - Fixed the bug that a free of the current frame caused an frame
- to be not freed. (The idea was to hold the current frame for
- following delta accesses; this has been replaced by the idea
- of the "posted free").
-
- - Implemented the idea of a "posted free". For delta accesses,
- it's not very usefull to free the frame when the next frame
- needs it for it's delta access. Therefore, the anim.datatype
- now manages a "free list", where the free of the previous
- and the previous-previous frame will be posted until
- it is really not longer in use.
-
- - Fixed a bug in the LOADALL mode that the wrong previous
- frame was used (due a change in V1.10).
-
- - The single framenodes now caches a pointer to their previous
- frame. This should speed up loading a little bit.
-
- - If an animation has dynamic timing and the superclass
- (animation.datatype) has the ADTA_AdaptiveFPS flag set,
- the playback speed now defaults to 60 fps.
-
- - Saved an AllocVecPooled in ADTM_LOADFRAME by merging multiple
- delta buffer allocations to one allocation (which can hold the
- largest delta).
-
- - The stack swapping code now allocates it's memory without
- the MEMF_CLEAR flags, which should speed up things.
-
- - Removed BestModeIDA code, because animation.datatype does
- the same.
-
- - The options setting for DPaint brush compatibility patch
- worked wrong (the order was wrong). Now the options
- work as described.
- Fixed.
-
- - Fixed a bug in the encoder that the last color of a dynamic
- pallete as not copied (GetRGB32 got numcolors - 1 instead
- of numcolors).
- Fixed.
-
- V1.12
- - Replaced the custom stack swapping code by my "standard" module.
-
- - Now the default FPS rate is 10 if animation.datatype is
- < V41. If V41 is running with ADTA_AdaptiveFPS, the
- fps is set to 60.
-
- - Fixed ModeID handling. The previous behaviour was that
- a 0 mode id causes the datatype to select it's own mode id.
- But 0 means LORES. Now the default is -1 (which means
- INVALID_ID), which causes the datatype to do it's own
- calculations.
- Fixed.
-
- - OM_DISPOSE now preserves Result2 (IoErr()) to avoid that an
- error code may get lost.
-
- NOTES
- This datatype first scans the whole animation to get index
- information (if the LOADALL switch was set in the prefs-file,
- the entire animation will be loaded), colormaps will be loaded
- immediately.
-
- SEE ALSO
- animation.datatype,
- mpegsystem.datatype, mpegvideo.datatype,
- picmovie.datatype,
- cdxl.datatype. avi.datatype, quicktime.datatype,
- moviesetter.datatype,
- film.datatype,
- directory.datatype,
- markabletextdtclass
-
- anim.datatype/--input_format-- anim.datatype/--input_format--
-
- NAME
- IFF ANIM -- IFF animation format
-
- DESCRIPTION
- <Not written yet, sorry>
-
- acmpILBM -- ILBM BODY
- acmpXORILBM -- XOR
- acmpLongDelta -- Long Delta
- acmpShortDelta -- Short Delta
- acmpDelta -- General Delta
- acmpByteDelta -- Byte Vertical
- acmpStereoByteDelta -- Stereo Byte Vertical (left/right channel)
- acmpAnim7 -- Anim7 (nonstandard format)
- acmpAnim8 -- Anim5 compression using LONG/WORD data
- acmpAnimJ -- Eric Grahams compression format
-
-
- SEE ALSO
- - "ANIM.DOC" IFF Animspecs,
- "ANIM.BRUSH.DOC" Anim specs,
- "ANIM.OP6" Anim specs,
- "ANIM7.DOC" Anim specs
- "ANIM.OP8" Anim specs
-
- - ARKM Devices (Addison Wesley): IFF part
-
- - iffparse.library autodocs
-
- - AAP/AAC docs (for a complete description of the Anim7 format)
-
- - Viewtek (VT) distribution for Anim 7 info
-
- anim.datatype/ADTM_LOADFRAME anim.datatype/ADTM_LOADFRAME
-
- NAME
- ADTM_LOADFRAME -- Load frame
-
- FUNCTION
- The ADTM_LOADFRAME method is used to obtain the bitmap and timing
- data of the animation.
- The given timestamp will be used to find a matching timestamp
- in the internal FrameNode list. If it was found, the corresponding
- timing, bitmap and colormap data are stored into the struct
- adtFrame. If the bitmap wasn't loaded at this time, this method
- attempts to load it from disk.
-
- RESULT
- Returns the bitmap ptr if a bitmap was found, 0UL otherwise;
- in case of failure Result2 contains the cause:
- ERROR_OBJECT_NOT_FOUND: Given timestamp does not exist
- ERROR_NO_FREE_STORE: No memory
- and so on...
-
- NOTE
- It is expected that a 0 return code (error) causes an
- ADTM_UNLOADFRAME that the invalid bitmap etc. will be freed.
-
- anim.datatype/ADTM_PAUSE anim.datatype/ADTM_PAUSE
-
- NAME
- ADTM_PAUSE -- Pause playback
-
- FUNCTION
- ADTM_PAUSE tells the subclass (use) to pause playback.
-
- The method is passed to animation.datatype first, which pauses the
- playback clock.
-
- RESULT
- Returns result from superclass (animation.datatype)
-
- NOTE
-
- anim.datatype/ADTM_START anim.datatype/ADTM_START
-
- NAME
- ADTM_START -- Prepare for playback
-
- FUNCTION
- ADTM_START tells the subclass (us) to prepare for continous
- playback. To avoid a long "search" for a full frame during the
- playback clock is running, we load here the given timestamp
- (asa_Frame) manually (and preseves it using a small trick, see
- source).
-
- After all, the method is passed to superclass, which starts the
- playback (and the master clock).
-
- RESULT
- Returns result from superclass (animation.datatype)
-
- NOTE
-
- anim.datatype/ADTM_STOP anim.datatype/ADTM_STOP
-
- NAME
- ADTM_STOP -- Stop playback
-
- FUNCTION
- ADTM_STOP tells the subclass (use) to stop playback.
-
- The method is passed to animation.datatype first, which stops the
- playback clock.
-
- After clock has been stopped, we search for frames which have a
- 0 UseCount and have not been unloaded yet (a small cleaup to get
- rid of frames which are loaded using the "trick" in ADTM_START
- code).
-
- RESULT
- Returns result from superclass (animation.datatype)
-
- NOTE
-
- anim.datatype/ADTM_UNLOADFRAME anim.datatype/ADTM_UNLOADFRAME
-
- NAME
- ADTM_UNLOADFRAME -- Load frame contents
-
- FUNCTION
- The ADTM_UNLOADFRAME method is used to release the contents of a
- animation frame.
-
- This method frees the bitmap data found in adtFrame.
-
- RESULT
- Returns always 0UL.
-
- anim.datatype/DTM_WRITE anim.datatype/DTM_WRITE
-
- NAME
- DTM_WRITE -- Save data
-
- FUNCTION
- This method saves the object's contents to disk.
-
- If dtw_Mode is DTWM_IFF, the method is passed unchanged to the
- superclass, animation.datatype, which writes a single IFF ILBM
- picture.
-
- If dtw_mode is DTWM_RAW, the object saved an IFF ANIM stream to
- the filehandle given, starting with the current frame until
- the end is reached.
- The sequence saved can be controlled by the ADTA_Frame, ADTA_Frames
- and ADTA_FrameIncrement attributes (see TAGS section below).
-
- TAGS
- When writing the local ("raw") format, IFF ANIM, the following
- attributes are recognized:
-
- ADTA_Frame (ULONG) - start frame, saving starts here.
- Defaults to the current frame displayed.
-
- ADTA_Frames (ULONG) - the number of frames to be saved,
- Defaults to (max_num_of_frames - curr_frame).
-
- ADTA_FrameIncrement (ULONG) - frame increment when saving.
- Defaults to 1, which means: "jump to next frame".
-
- NOTE
- - Any sound attached to the animation will NOT be saved.
-
- - A CTRL-D signal to the writing process aborts the save.
-
- RESULT
- Returns 0 for failure (IoErr() returns result2), non-zero
- for success.
-
- anim.datatype/MAIN anim.datatype/MAIN
-
- INTRODUCTION
- Datatypes class for IFF ANIM animations. Based on the CBM datatypes
- example source/ documents written by David Junod and the public
- domain Anim5 code by Jim Kent.
-
- SHAREWARE
- Starting with V1.8, anim.datatype is Shareware.
-
- "anim.datatype" is this version and it's contributed files
- are Copyright 1995/96/97 by Roland Mainz except otherwise noted.
- All rights reserved.
-
- You are allowed to use anim.datatype for 30 days. If you
- want to use it after this time, please register.
- The registration fee is 15 DM, 10 US-$ or equivalent.
- There is no different registered version, this version of
- anim.datatype is fully functional.
-
- Payment my be done using bank transfer (prefereed; see AUTHOR
- section below for my bank account), euro-scheques (on my name)
- or cash money in an envelope (ON YOUR OWN RISK !).
-
- New versions are released through the Aminet.
-
- As a service for registered users I will notify you about
- new versions if I get your email address.
- To be able to do this, you should fill in the following form
- and send this to my email/snail-mail address:
-
- -- snip --
-
- Product/Version: anim.datatype 1.10 (4.8.97)_______________________
-
- Name: _________________________________________________________
-
- Street: _________________________________________________________
-
- City/ID: _________________________________________________________
-
- Country: _________________________________________________________
-
- Phone: _________________________________________________________
-
- EMail: _________________________________________________________
-
- Shareware fee: _ 10 US-$
- _ 15 DM
- _ other (in a amount which equals to the US-$ fee)
-
- Payed by _ cash money in envelope (on your own risk !)
- _ euro-scheque (on my name)
- _ bank transfer
-
- Comments: _________________________________________________________
-
- _________________________________________________________
-
- _________________________________________________________
-
- -- snip --
-
- REQUIREMENTS
- - You need at least Kick/WB 3.0.
- | Many people wrote me that they cannot find an
- | "animation.datatype" class.
- | Only the 3.1 release contains it. (Subclasses of)
- | animation.datatype can run under 3.0.
-
- - "datatypes/animation.datatype", >= V39.
- "animation.datatype 40.7 (28.09.93)" requires itself some
- libraries/boopsi classes:
- - "realtime.library", >= V39 - for timing
- - "gadgets/tapedeck.gadget" (any version) - for the controls
-
- If you want to attach samples, you need "sound.datatype" >= V39
- and your prefereed subclass (8svx.datatype for IFF 8SVX samples
- etc.).
-
- USAGE
- If the datatypes descriptor file was activated, any attempt to load
- an IFF anim stream using GMultiView, MultiView, AmigaGuide or
- SwitchWindow will load and play the animation. If the source was a
- file, anim.datatype loads frames dynamically from disk, if the
- source was the clipboard, anim.datatype caches the whole anim.
-
- anim.datatype supports also the clipboard as input, e.g.
- "MultiView CLIPBOARD", ClipView or SwitchWindow are able to show
- IFF ANIMs from clipboard.
-
- If you want to save the current animation in anim.datatype's local
- format, use MultiView's "Project/Save As..." menu (or GMultiView's
- "Project/Save As Raw...").
- anim.datatype saves the current animation, stating with the current
- frame as IFF ANIM-3.
- Other compression formats such as ANIM-0/1/2/4/5/7/8/J will
- be implemeted later.
-
- If you want to attach samples to the animation, you must edit the
- prefs file (ENV:Classes/DataTypes/anim.prefs) and add the following
- line:
- VERBOSE SAMPLE="ram:have_a_nice_day.8svx"
- Which loads and attaches the sample "ram:have_a_nice_day.8svx" to the
- animation. See anim.datatype.doc/preferences for a complete
- description of the prefs file.
-
- INSTALLATION
- After unpacking this archive:
- Because this version does not include an Installer script, you have
- to do the installation manually through the shell:
-
- - Unpack this archive and copy the "anim.datatype" to
- SYS:Classes/DataTypes:
-
- Copy CLONE FROM "anim.datatype" TO "SYS:Classes/DataTypes/anim.datatype"
-
- - Then copy the datatypes descriptor into the DEVS:DataTypes
- directory.
- If the descriptor already exists, you should not replace it,
- otherwise you may loose "toolnodes" and other settings stored in
- the existing descriptor.
-
- Copy CLONE FROM "ANIM(%|.info)" TO DEVS:Datatypes/
-
- SOURCE
- Partial source is included as an example how to write an
- animation.datatype subclass which deals with things like
- "delta-compression" techniques.
-
- AUTHOR
- If you want to blame me, report any bugs, or wants a new version
- send your letter to:
- Roland Mainz
- Hohenstaufenstraße 8
- 52388 Nörvenich
- GERMANY
-
- Phone: (+49)(0)2426/901568
- Fax: (+49)(0)2426/901569
-
- Bank account: Kto. 4866 02-508
- At: Postbank Köln,
- BLZ 37010050
-
- EMAIL is also available (if you want to send me attachments
- larger than 1MB (up to 5MB, more with my permission):
-
- GISBURN@w-specht.rhein-ruhr.de
-
- Up to December 1997 I'm reachable using this email address, too:
- Reinhold.A.Mainz@KBV.DE
-
- | Please put your name and address in your mails !
- | German mailers should add their phone numbers.
- | See BUGS section above when submitting bug reports.
-
- Sorry, but I can only look once a week for mails.
- If you don't hear something from me within three weeks, please
- send your mail again (but watch about new releases) (problems with
- this email port are caused by reconfigurations, hackers, network
- problems etc.).
-
- The entire "anim.datatype" package may be noncommercially
- redistributed, provided that the package is always distributed
- in it's complete form (including it's documentation). A small
- copy fee for media costs is okay but any kind of commercial
- distribution is strictly forbidden without my permission !
- Comments and suggestions how to improve this program are
- generally appreciated!
-
- Thanks to David Junod, who wrote the animation.datatype and lots of
- the datatypes example code, Jim Kent, Eric Graham and other people
- for their compression formats, Matt Dillon for his DICE, Olaf
- 'Olsen' Barthel for his help, ideas and some text clips from his
- documentations.
-
- anim.datatype/OM_DISPOSE anim.datatype/OM_DISPOSE
-
- NAME
- OM_DISPOSE -- Delete a anim.datatype object.
-
- FUNCTION
- The OM_DISPOSE method is used to delete an instance of the
- anim.datatype class. This method is passed to the superclass when
- it has completed.
- This method frees all frame nodes and their contents (bitmaps,
- colormaps, samples etc.)
-
- RESULT
- The object is deleted. 0UL is returned.
-
- anim.datatype/OM_NEW anim.datatype/OM_NEW
-
- NAME
- OM_NEW -- Create a anim.datatype object.
-
- FUNCTION
- The OM_NEW method is used to create an instance of the anim.datatype
- class. This method is passed to the superclass first. After this,
- anim.datatype parses the prefs file and makes a scan through
- the data to get index information. Frame bitmaps are loaded if the
- input stream isn't seekable (e.g. IFF handle/clipboard),
- colormaps and the first frame are loaded immediately.
- If a sample was set in the prefs, it will be loaded and attached
- to the animation.
-
- ATTRIBUTES
- The following attributes can be specified at creation time.
-
- DTA_SourceType (ULONG) -- Determinates the type of DTA_Handle
- attribute. DTST_FILE, DTST_CLIPBOARD and DTST_RAM are supported.
- If any other type was set in a given DTA_SourceType,
- OM_NEW will be rejected.
- A sourcetype of DTST_CLIPBOARD forces the LOADALL prefs
- switch (can't seek on clipboard).
- Defaults to DTST_FILE.
-
- DTA_Handle -- For both DTST_FILE and DTST_CLIPBOARD, a
- (struct IFFHandle *) is expected. This handle will be
- created by datatypesclass depeding on the DTF_#? flag, which
- is DTF_IFF here. DTST_FILE, datatypesclass creates
- a IFF handle from the given DTA_Name and DTA_Handle (a
- BPTR returned by Lock), if DTST_CLIPBOARD, datatypesclass
- passes the given (IFF) handle through.
- A DTST_RAM (create empty object) source type requires a NULL
- handle.
-
- RESULT
- If the object was created a pointer to the object is returned,
- otherwise NULL is returned.
-
- anim.datatype/preferences anim.datatype/preferences
-
- NAME
- preferences
-
- DESCRIPTION
- The "ENV:Classes/DataTypes/anim.prefs" file contains global
- settings for the datatype.
- The preferences file is an ASCII file containing one line where the
- preferences can be set.
- It can be superset by a local variable with the same name.
-
- Each line can contain settings, special settings for some projects
- can be set using the MATCHPROJECT option.
- Lines beginning with a '#' or ';' chars are treated as comments.
- Lines are limitted to 256 chars.
-
- TEMPLATE
- MATCHPROJECT/K,VERBOSE/S,MODEID/K/N,CMAPS/S,NOCMAPS/S,
- DPAINTBRUSHPATCH/S,NODPAINTBRUSHPATCH/S,FPS/K/N,DYNAMICTIMING/S,
- NODYNAMICTIMING/S,SAMPLE/K,SAMPLESPERFRAME=SPF/K/N,VOLUME/K/N,
- LOADALL/S,NOLOADALL/S
-
- MATCHPROJECT -- The settings in this line belongs only to this
- project(s), e.g. if the case-insensitive pattern does not match,
- this line is ignored.
- The maximum length of the pattern is 128 chars.
- Defaults to #?, which matches any project.
-
- VERBOSE -- Print information about the animation. Currently
- the frame numbers and the used compression are printed, after all
- number of scanned/loaded frames, set FPS rate, dimensions (width/
- height/depth), sample information etc.
-
- MODEID -- Select screen mode id of datatype (will be stored in
- ADTA_ModeID). Note that the DOS ReadArgs function used for parsing
- fetches a SIGNED long. The bit 31 will be represented by minus
- '-'. (example: "MODEID=266240" sets the mode to the A2024 screen
- mode id)
- Defaults to 0, which means: Use the screen mode from CAMG chunk,
- if missing use the best screenmode available for the given width,
- height and depth.
-
- CMAPS -- Use colormaps per frame. This switch is set per default,
- and can be turned off by the NOCMAPS option, later it can be
- turned on again by this option.
-
- NOCMAPS -- Don't load/use colormaps per frame. Only the initial
- colormap will be used.
- The current version of animation.datatype (V40.7 (28.09.93)) does
- not implement per frame colormaps, it's output may look trashed.
- Custom players like "DBufDTAnim" does support
- "per frame colormaps",
- animation.datatype V41 will implement "per frame colormaps".
-
- DPAINTBRUSHPATCH -- If frames of ANIM-5 with an interleave of 1
- occurs, the XOR mode is forced, even if the XOR bit is not set.
- This fixes problems with some DPaint brush animations.
- This option is ON per default and can be turned off by the
- NODPAINTBRUSHPATCH option.
-
- NODPAINTBRUSHPATCH -- Turns off the DPaint brush patch. See
- DPAINTBRUSHPATCH option for details.
-
- FPS -- Frames Per Second
- Defaults to FPS set by DPAN chunk. If the DPAN chunk is missing
- a fixed 5 fps rate is used.
- A value of 0 here means: Use default FPS.
-
- DYNAMICTIMING -- Turns dynamic timing on. Default if superclass
- is animation.datatype V41, otherwise this option must
- be explicitly set.
-
- NODYNAMICTIMING -- Turn dynamic timing off. Default if superclass
- is animation.datatype < V41 (e.g. V40.6).
-
- SAMPLE -- Attach the given sample to the animation. The sample will
- be loaded using datatypes (GID_SOUND).
- Only one sample can be attached to one animationstream, any
- following attempt to attach a sample will be ignored.
-
- SAMPLESPERFRAME -- Set samples per frame rate for sound. This
- overrides the own internal calculations to get rid of rounding
- errors.
-
- VOLUME -- Volume of the sound when playing.
- Defaults to 64, which is the maximum. A value greater than 64 will
- be set to 64.
-
- LOADALL -- Load all frames into memory. If the source input is a
- clipboard, this option is always set.
-
- NOLOADALL -- Turns off the LOADALL flag, which may be set in a prefs-
- line before. This switch is set per default, and can be turned off
- by the LOADALL option, later it can be turned on again by this
- option.
-
- REGISTERED -- Turns off the shareware notice requester.
-
- NOTE
- An invalid prefs file line will be ignored and forces the VERBOSE
- output.
-
- BUGS
- - Low memory may cause that the prefs file won't be parsed.
-
- - Lines are limitted to 256 chars
-
- - An invalid prefs file line will be ignored.
-
- - The sample path length is limitted to 200 chars. A larger
- value may crash the machine if an error occurs.
-
-