33 class WsdPlayer :
public BasicPlayer,
42 START_OFFSET_TYPE_SAMPLE,
43 START_OFFSET_TYPE_MILLISEC,
61 void const *waveSoundData,
int index,
63 ulong userData)
const = 0;
79 virtual void Pause(
bool flag);
80 virtual bool IsActive()
const {
return mActiveFlag !=
false; }
81 virtual bool IsStarted()
const {
return mStartedFlag !=
false; }
82 virtual bool IsPause()
const {
return mPauseFlag !=
false; }
85 virtual void InvalidateData(
void const *start,
void const *end);
86 virtual void InvalidateWaveData(
void const *,
void const *) {}
89 virtual void OnUpdateFrameSoundThread() { Update(); }
90 virtual void OnShutdownSoundThread() { Stop(); }
93 bool Prepare(
void const *waveSoundBase,
int index,
94 StartOffsetType startOffsetType,
int startOffset,
98 f32 GetPanRange()
const {
return mPanRange; }
99 int GetVoiceOutCount()
const {
return mVoiceOutCount; }
100 int GetChannelPriority()
const {
return mPriority; }
101 void const *GetWsdDataAddress()
const {
return mWsdData; }
103 void SetReleasePriorityFix(
bool flag);
104 void SetChannelPriority(
int priority);
106 bool IsChannelActive()
const
108 return mChannel !=
nullptr && mChannel->IsActive();
110 bool ReadWsdDataInfo(WsdDataInfo*)
const;
111 ulong GetPlaySamplePosition()
const;
114 static void ChannelCallbackFunc(Channel *dropChannel,
115 Channel::ChannelCallbackStatus status,
118 void InitParam(
int voiceOutCount,
WsdCallback const *callback,
123 bool StartChannel(
WsdCallback const *callback, ulong callbackData);
124 void UpdateChannel();
131 static int const DEFAULT_PRIORITY = 64;
132 static int const MUTE_RELEASE_VALUE;
133 static int const PAUSE_RELEASE_VALUE;
144 bool mReleasePriorityFixFlag;
152 void const *mWsdData;
154 StartOffsetType mStartOffsetType;
157 WaveSoundInfo mWaveSoundInfo;