mxOmfEventInfo_t

 

 "Event" (ie: "cell, or segment, on track of timeline") data structure

 for input or output

 

 Represents an Event on a Track

 

 See mxOmfClearEventInfo() for default values

 See mxOmfEventAndSourceInfo_t for additional documentation and usage

 

 See mxOmfGetNextEventAndSourceInfo()

 See mxOmfGetNextEventInfo()

 See CMaxOmfSdkDemoOmfDoc::GetMxOmfInfo()

 See Edit Data Representation

 

 

typedef struct tagMxOmfEventInfo_t

{

 

  // --- Event types and flags ---

  unsigned short m_eEventType; // default: MXOMF_EVENT_ERROR. See MXOMF_EVENT_

  BOOL m_bEventIsFill; // TRUE if this event is a FILL (black or silence)

                     // If TRUE, only m_tcRIn, m_tcROut, m_bEventIsTran,

                     // m_lTransDur, m_usWipePattern values are valid -

                     // ignor all others (a FILL has no source)

  BOOL m_bEventIsTran; // TRUE if this event begins with a transition

  signed long m_lTransDur; // duration of transition, default 0

  unsigned short m_usWipePattern; // Wipe pattern if tranition is wipe

 

  // --- Channel (track)  assignment ---

  MXOMF_CH m_chanFileOfMaster;  // channel of file on master

 

  // --- Timecode positions ---

  // Timeline position timecode

  MXOMF_TCT m_tctRtctype;

  MXOMF_TIMECODE m_tcRIn;

  MXOMF_TIMECODE m_tcROut;

  MXOMF_TIMECODE m_tcRKeyOut;        // for 2nd line when key

 

  // Source position timecode

  MXOMF_TCT m_tctStctype;

  MXOMF_TIMECODE m_tcSIn;

  MXOMF_TIMECODE m_tcSOutSpeedCorrected; // valid only if speed event – see SPEED

 

  // ---- SPEED ----

  // source speed represented in signed long as:

  // 1000000 = play

  // 500000 = 1/2 speed

  // 250000 = 1/4 speed

  // 0 = freeze

  // -1000000 = play reverse

  // -500000 = 1/2 speed reverse

  // - 250000 = 1/4 speed reverse

  // this allows 1/1,000,000 steps between play and freeze

  // and approx X 2147 and X -2146 play speed

  //

  // If no speed effect is applicable, speed is MXOMF_NOSPEED

  // #define MXOMF_NOSPEED 2147483686  // 2147483687-1 LONG_MIN

  // this is maximum reverse speed (approx X 2,147 reverse)

  // and ASSUMED never used; that is, if speed == MX_NO_SPEED,

  // no speed event is created - the source runs at play speed

  // Do not set speed to 1000000 if the event is normal play

  // speed - use MXOMF_NOSPEED instead.

  //

  // ON OUTPUT - m_tcSOutSpeedCorrected carries the OUT

  // point of the source as calculated for speed.

  // m_tcSOutSpeedCorrected is valid only when m_lSpeed != MXOMF_NOSPEED

  //

  // mxEventInfo->m_tcSIn == first visible frame

  // mxEventInfo->m_tcSOutSpeedCorrected == last visible frame (+1)

  //

  // Note - The duration of the source (m_tcSIn - m_tcSOutSpeedCorrected)

  // will *not* match the duration of the event (m_tcROut - m_tcRIn)

  //

  // For reverse speeds m_tcSOutSpeedCorrected will be a *lower*

  // TC value than m_tcSIn.

 

  signed long m_lSpeed; // default MXOMF_NOSPEED

 

  // --- Audio values ---

  float m_fDbLevel; // Gain in db, 0.0 == unity, default 0.0f;

  signed long m_lPan; // 200 steps -100 to 100 , 0 == Middle, 666 == not set

                   // default 666 not set

 

  // --- Event strings ---

  char m_sEventName[256];

  char m_sEffectName[256];

  char m_sSpecialEffectName[256];

 

  // --- Associated Strings ---

  char m_sNotes[256]; // user string when available

  char m_sAudit[256]; // Trail of objects leading to this event.

                   // Useful for debugging, Active in release versions

 

  // --- Omf/Bento object reference ---

  // The Bento container maintains an index (the TOC) to all stored objects

  // and values in the file.

  // These variables retain a link to, and/or record of, the Bento

  // object from which the information came from or is related to.

  //

  // Note - there are no omfUIDs on SCLPs etc, as there is on "MOBs"

  //

  // These links are sometimes used internally by the SDK - leave them alone!

  //

  // They also provide the client app with access to the underlying

  // Bento/Omf file objects themselves - you can address them with

  // Avid OmfToolkit calls if you need to, but the SDK provides no protection

  // or guarentees about its behavior - we do not recommend you try this. If you

  // do, a warning - dont change the files contents if you expect the SDK

  // to continue operating correctly on it!

  void* m_objEvent;        // pointer to Bento/Omf object in open Omf file

  unsigned long m_ulEventBentoID; // Bento index value of this object

                              // in the current file

  char m_sEventBentoID[50]; // ascii number (string integer) of Bento Index

                         // value of this object

                         // Used only for debugging purposes

  unsigned long m_ulUniqueIndex;  // Unique integer index value of this

                              // object in the current instantiation

} mxOmfEventInfo_t;