CMusicSegment Sample Class
The CMusicSegment sample class represents a segment, and contains methods for downloading and unloading instruments, playing and stopping the segment, and retrieving a style from the segment.
class CMusicSegment
{
protected:
IDirectMusicSegment8* m_pSegment;
IDirectMusicLoader8* m_pLoader;
IDirectMusicPerformance8* m_pPerformance;
IDirectMusicAudioPath8* m_pEmbeddedAudioPath;
BOOL m_bDownloaded;
public:
CMusicSegment(IDirectMusicPerformance8* pPerformance,
IDirectMusicLoader8* pLoader,
IDirectMusicSegment8* pSegment);
virtual ~CMusicSegment();
inline IDirectMusicSegment8* GetSegment() { return m_pSegment; }
HRESULT GetStyle(IDirectMusicStyle8** ppStyle,
DWORD dwStyleIndex = 0);
HRESULT SetRepeats(DWORD dwRepeats);
HRESULT Play(DWORD dwFlags = DMUS_SEGF_SECONDARY,
IDirectMusicAudioPath8* pAudioPath = NULL);
HRESULT Stop(DWORD dwFlags = 0);
HRESULT Download( IDirectMusicAudioPath8* pAudioPath = NULL );
HRESULT Unload(IDirectMusicAudioPath8* pAudioPath = NULL);
BOOL IsPlaying();
};
Constructor
The constructor stores pointers to the performance, loader, and segment objects. It also attempts to create an audiopath from an audiopath configuration embedded in the segment.
Public Methods
The class contains the following public methods, in alphabetical order.
Method | Description |
Download | Downloads the segment's instruments to the supplied audiopath. If no audiopath is supplied, this method downloads to the embedded audiopath if there is one, or to the performance otherwise. |
GetSegment | Retrieves the IDirectMusicSegment8 interface pointer. |
GetStyle | Retrieves a style in the segment, if the segment has a style track. |
IsPlaying | Returns a Boolean variable that specifies whether the segment is playing. This method calls IDirectMusicPerformance8::IsPlaying. |
Play | Plays the segment, using the specified flags and audiopath. If no audiopath is specified, this method plays on the embedded audiopath if there is one, or on the default audiopath otherwise. The method fails if the instruments have not been downloaded. |
SetRepeats | Calls IDirectMusicSegment8::SetRepeats. |
Unload | Unloads instruments from the specified audiopath. If no audiopath is specified, this method unloads from the embedded audiopath if there is one, or from the performance otherwise. |
The class is implemented in (SDK root)\samples\C++\Common\Src\Dmutil.cpp.
See Also