DR Developer's Guide
DR Interfaces | DR Methods | DR Types and Misc API

IMoaDrMediaAccess

Interface ID: IID_IMoaDrMediaAccess
Pointer type: PIMoaDrMediaAccess
Inheritance: IMoaUnknown
Header file: driservc.h

Description

This interface contains the core methods supported by all MediaAccess classes. MediaAccess objects, such as ScoreAccess, handle communication with the media owner object to provide a task-specific interface for accessing its media.

MediaAccess is typically buffered; the MediaAccess interface operates on a copy of media data owned by an associated IMoaDrMediaOwner object. Changes are only reflected in the associated owner object when Commit() is called. Using SetAccessInfo(), the owner object can be changed on-the-fly, allowing you to obtain media data from one object, modify it, and commit it back to a different object.

In Director 5.0, the only type of MediaAccess interface supported is IMoaDrScoreAccess, used for editing score data associated with a filmloop cast member or Director movie. Director API provides three ways to obtain a MediaAccess interface.

Methods

Creating
New()
Editing
Refresh()
Commit()
Access Information
GetAccessInfo()
SetAccessInfo()

Commit()

Syntax
Commit()
Parameters
Returns
MoaError
Description
Commits changes made to the media being accessed back to the object owning the media data. Changes are not reflected in the media-owning object unless this method is called. For example, after creating a sequence of score frames using IMoaDrScoreAccess, calling Commit() updates the corresponding movie or film loop cast member. If no media owner has been set, this call fails and returns kMoaDrErr_OwnerNotSet. The media owner is set automatically if the IMoaDrScoreAccess interface was obtained directly from the owner using a GetScoreAccess() call. If you have created a new ScoreAccess object from scratch (using IMoaDrPlayer::NewScoreAccess()), it is up to you to associate the media owner object using SetAccessInfo() (or SetOwner() in IMoaDrScoreAccess). The owner is the object that gets updates when Commit() is called

GetAccessInfo()

Syntax
GetAccessInfo(PMoaDrAccessInfo pAccessInfo)
Parameters
pAccessInfo
Pointer to MoaDrAccessInfo structure to receive information
Returns
MoaError
Description
Obtains the current accessInfo for the media accessor. pAccessInfo is a pointer to a MoaDrAccessInfo structure to receive the information. This call populates the structure with the PIMoaDrMediaOwner for the media owner, the label symbol for the media being accessed, and the format symbol for the media being accessed. Since an interface is being supplied in this structure (pOwner), the caller is responsible for releasing it.

New()

Syntax
New()
Parameters
Returns
MoaError
Description
Creates new empty media data.

Refresh()

Syntax
Refresh()
Parameters
Returns
MoaError
Description
Disposes of the current working media and obtains a fresh copy of the media data from the associated media owner object. If there is no media owner, the call fails and kMoaDrErr_OwnerNotSet is returned. This call causes you to lose any edits made to your media data since the last Refresh() or Commit() calls.

SetAccessInfo()

Syntax
SetAccessInfo(ConstPMoaDrAccessInfo pAccessInfo)
Parameters
pAccessInfo
Pointer to a MoaDrAccessInfo structure to receive the information
Returns
MoaError
Description
Sets the current accessInfo for the media accessor. pAccessInfo is a pointer to a MoaDrAccessInfo structure containing the new access information to be used. This call sets a new media owner, media label, and media format for the media being accessed. If a mediaOwner is already set, the media accessor's hold on the previous owner interface is released. The caller owns the owner interface (pOwner) provided in the structure.

You may change the accessInfo during an editing session. For example, you could obtain an IMoaDrScoreAccess interface for a film loop cast member, edit the score, set the access information to different film loop cast member (or movie), and call Commit(). This leaves the original film loop untouched, and updates the new filmloop or movie with the edited version of the source film loop score.

Copyright © 1995-2008 Adobe Macromedia Software LLC, Inc.