home *** CD-ROM | disk | FTP | other *** search
- TABLE OF CONTENTS
-
- anim.datatype/--datasheed--
- anim.datatype/--input_format--
- anim.datatype/ADTM_LOADFRAME
- anim.datatype/ADTM_UNLOADFRAME
- anim.datatype/DTM_FRAMEBOX
- anim.datatype/DTM_WRITE
- anim.datatype/GM_LAYOUT
- 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.
-
- 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.
-
- GM_LAYOUT -- Collect information from superclass, set up
- struct DTSpecialInfo and send an OM_NOTIFY containing usefull
- attributes.
-
- DTM_FRAMEBOX -- Set up object for a specified environment if
- FRAMEF_SPECIFY was set in (dtf -> dtf_FrameFlags).
-
- DTM_WRITE -- Save object's contents in local (IFF ANIM-3) or
- superclass (IFF ILBM) format.
-
- 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:
- 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
- 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_NominalVert -- same as ADTA_Width
- DTA_NominalHoriz -- same as ADTA_Height
-
- 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.
-
- - Currently, after a full playback mainly all frames are cached
- because animation.datatype does not flush enougth frames during
- playback. This is not a bug of animation.datatype. I don't know that
- return codes of the ADTM_LOADFRAME method which causes
- animation.datatype to flush unused frames. Without information from
- CBM, Amiga Technologies or David Junod I cannot fix this bug.
- Comments welcome !
- Custom animation players which uses animation.datatype subclasses
- for loading (like my own "DBufDTAnim", Aminet:gfx/show/DBufDTAnim)
- don't have this problem because they're using a
- ADTM_LODAFRAME-draw bitmap-ADTM_UNLODAFRAME-cycle.
-
- - Animations with more than 8 planes will crash the system
- (anim.datatype handels 12 bit animations, but animation.datatype
- 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.
-
- - If no DPAN chunk occurs in the file, the FPS-Rate (Frames Per
- Second) is hard-coded to 5. Other FPS-Rates can be set by the
- prefs-file (per project if you use the MATCHPROJECT option).
-
- - Any entries in the ANHD (AnimHeader) ah_AbsTime and ah_RelTime are
- ignored.
-
- - Loading from disk is slower than it could be because internal
- buffers are allocated using the MEMF_CLEAR flag (Relict; for
- debugging).
-
- - 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.
-
- - If the sample is too short to fit into the animation, at the end of
- the sample a small part of noise occurs. This is caused by
- the buffer size set in ADTM_LOADFRAME (e.g. full SamplesPerFrame-
- length), but the buffer contains only a part of valid data.
-
- 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.
-
- - Add a way how to calculate the FPS rate from stream data when a
- DPAN chunk is missing or contains a 0 FPS.
-
- - PERIOD/SAMPLESPERFRAME options to modify the given sound.
-
- - 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.
-
- 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,
- "ANIM.OP8" Anim specs
-
- - ARKM Devices (Addison Wesley): IFF part
-
- - iffparse.library autodocs
-
- - AAP/AAC docs (for a complete description of the Anim7 format)
-
- 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, this method attempts to
- load it from disk.
-
- RESULT
- Returns always non-zero,
- the bitmap ptr if a bitmap was found,
- 1UL otherwise.
-
- 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_FRAMEBOX anim.datatype/DTM_FRAMEBOX
-
- NAME
- DTM_FRAMEBOX -- Set up object for a specified environment
-
- FUNCTION
- The DTM_FRAMEBOX method is used to set up for a specified
- environment. This method is passed to the superclass after
- anim.datatype instance finished it's work.
-
- Only if FRAMEF_SPECIFY is set in (dtf -> dtf_FrameFlags), the
- anim.datatype instance will modify the ADTA_Remap to FALSE if
- the NOREMAP switch in the prefs file was set and the animation
- depth matches the given (frameinfo -> fri_Screen -> BitMap . Depth)
- depth.
-
- RESULT
- The value from the superclass is returned.
-
- SEE ALSO
- 3.1_Examples2:DataTypes/Src/ClipView/clipview.c
-
- 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/GM_LAYOUT anim.datatype/GM_LAYOUT
-
- NAME
- GM_LAYOUT -- Layout animation object
- DTM_PROCLAYOUT -- Layout animation object on appliaction's
- process
-
- FUNCTION
- This method is passed to the superclass first.
- Then it collects information from superclass, set up
- struct DTSpecialInfo and send an OM_NOTIFY containing the following
- attributes:
- DTA_VisibleVert, (DTA_Domain -> Height)
- DTA_TotalVert, (same as ADTA_Height)
- DTA_NominalVert, (same as ADTA_Height)
- DTA_VertUnit, 1UL,
- DTA_VisibleHoriz, (DTA_Domain -> Width),
- DTA_TotalHoriz, (same as ADTA_Width),
- DTA_NominalHoriz, (same as ADTA_Width),
- DTA_HorizUnit, 1UL,
- GA_ID, (GadgetID),
- DTA_Title, (same as DTA_ObjName, if missing, DTA_Name is
- used),
- DTA_Busy, FALSE,
- DTA_Sync, TRUE
-
- RESULT
- The value from the superclass is returned.
-
- 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.
- 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.9 (22.05.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
-
- 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 July 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.
-
- Subclasses of anim.datatype are not supported. Any attempt to
- create a subclass object of anim.datatype will be rejected by this
- method.
-
- 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,MODEID/K/N,NOCMAPS/S,NOREMAP/S,FPS/K/N,SAMPLE/K,
- VOLUME/K/N,LOADALL/S,VERBOSE/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.
-
- 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.
-
- 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".
-
- 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.
-
- 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.
-
- 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.
-
- 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.
-
- 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.
-
-