37 class SeqSound :
public BasicSound
49 class SeqLoadTask :
public Task
53 typedef void Callback(
bool result,
void const *seqBase,
63 virtual void Execute();
64 virtual void Cancel();
65 virtual void OnCancel();
89 virtual void Shutdown();
90 virtual bool IsPrepared()
const {
return mPreparedFlag; }
91 virtual bool IsAttachedTempSpecialHandle();
92 virtual void DetachTempSpecialHandle();
93 virtual void InitParam();
94 virtual BasicPlayer &GetBasicPlayer() {
return mSeqPlayer; }
95 virtual BasicPlayer
const &GetBasicPlayer()
const {
return mSeqPlayer; }
96 virtual void OnUpdatePlayerPriority();
99 SeqPlayer::SetupResult Setup(SeqTrackAllocator *trackAllocator,
101 NoteOnCallback *callback);
102 void Prepare(
void const *seqBase, s32 seqOffset,
103 SeqPlayer::OffsetType startOffsetType,
int startOffset);
104 void Prepare(ut::FileStream *fileStream, s32 seqOffset,
105 SeqPlayer::OffsetType startOffsetType,
int startOffset);
107 void *GetFileStreamBuffer() {
return mFileStreamBuffer; }
108 s32 GetFileStreamBufferSize() {
return sizeof mFileStreamBuffer; }
110 void SetReleasePriorityFix(
bool fix);
111 void SetTempoRatio(f32 tempo);
112 void SetChannelPriority(
int priority);
113 void SetSeqUserprocCallback(SeqPlayer::SeqUserprocCallback *callback,
116 void Skip(SeqPlayer::OffsetType offsetType,
int offset);
118 bool LoadData(SeqLoadTask::Callback *callback,
121 static void NotifyLoadAsyncEndSeqData(
bool result,
void const *seqBase,
124 void SetTrackMute(ulong trackFlags, SeqMute mute);
125 void SetTrackSilence(ulong trackFlags,
bool silence,
int fadeFrames);
126 void SetTrackVolume(ulong trackFlags, f32 volume);
127 bool ReadVariable(
int varNo, s16 *value)
const;
128 bool WriteVariable(
int varNo, s16 value);
129 static bool WriteGlobalVariable(
int varNo, s16 value);
130 bool WriteTrackVariable(
int trackNo,
int varNo, s16 value);
131 ulong GetTick()
const;
133 static DebugSoundType GetSoundType()
135 return DEBUG_SOUND_TYPE_SEQSOUND;
140 static int const FILE_STREAM_BUFFER_SIZE = 128;
142 static ut::detail::RuntimeTypeInfo
const typeInfo;
147 SeqPlayer mSeqPlayer;
148 SeqSoundHandle *mTempSpecialHandle;
149 SoundInstanceManager<SeqSound> *mManager;
151 SeqPlayer::OffsetType mStartOffsetType;
153 bool volatile mLoadingFlag;
154 bool volatile mPreparedFlag;
156 ut::FileStream *mFileStream;
157 int mFileStreamBuffer[FILE_STREAM_BUFFER_SIZE];
162 friend class snd::SeqSoundHandle;