22#ifndef AUDIO_MIDIDRV_MS_H
23#define AUDIO_MIDIDRV_MS_H
25#include "common/mutex.h"
27#include "audio/mididrv.h"
104 static const uint16 FADING_DELAY = 25 * 1000;
148 CONTROLLER_DEFAULT_PROGRAM,
149 CONTROLLER_DEFAULT_INSTRUMENT_BANK,
150 CONTROLLER_DEFAULT_DRUMKIT,
151 CONTROLLER_DEFAULT_CHANNEL_PRESSURE,
152 CONTROLLER_DEFAULT_PITCH_BEND,
153 CONTROLLER_DEFAULT_MODULATION,
154 CONTROLLER_DEFAULT_VOLUME,
155 CONTROLLER_DEFAULT_PANNING,
156 CONTROLLER_DEFAULT_EXPRESSION,
157 CONTROLLER_DEFAULT_SUSTAIN,
158 CONTROLLER_DEFAULT_RPN,
159 CONTROLLER_DEFAULT_PITCH_BEND_SENSITIVITY,
160 CONTROLLER_DEFAULT_REVERB,
161 CONTROLLER_DEFAULT_CHORUS
178 uint16 neutralVolume;
180 uint16 fadeStartVolume;
182 uint16 fadeEndVolume;
184 int32 fadePassedTime;
198 int8 channelPressure;
210 int8 pitchBendSensitivity;
221 void send(int8 source, uint32 b)
override = 0;
302 void startFade(uint8 source, uint16 duration, uint16 targetVolume);
429 _timer_param = timer_param;
430 _timer_proc = timer_proc;
460 const byte *_instrumentRemapping;
464 bool _userVolumeScaling;
467 uint16 _userMusicVolume;
468 uint16 _userSfxVolume;
489 bool isOpen()
const override {
return true; }
492 MidiChannel *allocateChannel()
override {
return 0; }
493 MidiChannel *getPercussionChannel()
override {
return 0; }
496 void send(int8 source, uint32 b)
override { }
500 static void timerCallback(
void *data);
void(* TimerProc)(void *refCon)
Definition: timer.h:42
Definition: mididrv.h:541
virtual void stopAllNotes(bool stopSustainedNotes=false)
virtual void send(uint32 b)=0
Definition: mididrv_ms.h:86
void setSourceNeutralVolume(uint16 volume)
bool isFading(uint8 source)
void setSourceVolume(uint16 volume)
void setInstrumentRemapping(const byte *instrumentRemapping)
void setControllerDefaults(ControllerDefaultType type, const int16 *values)
void setControllerDefault(ControllerDefaultType type, int16 value)
void setSourceNeutralVolume(uint8 source, uint16 volume)
void abortFade(uint8 source, FadeAbortType abortType=FADE_ABORT_TYPE_END_VOLUME)
virtual void stopAllNotes(uint8 source, uint8 channel)=0
void startFade(uint8 source, uint16 duration, uint16 targetVolume)
static const uint8 MAXIMUM_SOURCES
Definition: mididrv_ms.h:92
void abortFade(FadeAbortType abortType=FADE_ABORT_TYPE_END_VOLUME)
void setSourceType(SourceType type)
uint32 property(int prop, uint32 param) override
void send(int8 source, uint32 b) override=0
void clearControllerDefault(ControllerDefaultType type)
void setControllerDefault(ControllerDefaultType type)
void setSourceType(uint8 source, SourceType type)
ControllerDefaultType
Definition: mididrv_ms.h:147
void send(uint32 b) override
void setSourceVolume(uint8 source, uint16 volume)
void resetSourceVolume(uint8 source)
void startFade(uint16 duration, uint16 targetVolume)
virtual void deinitSource(uint8 source)
static const uint16 DEFAULT_SOURCE_NEUTRAL_VOLUME
Definition: mididrv_ms.h:100
void setTimerCallback(void *timer_param, Common::TimerManager::TimerProc timer_proc) override
Definition: mididrv_ms.h:428
FadeAbortType
Definition: mididrv_ms.h:128
@ FADE_ABORT_TYPE_START_VOLUME
Definition: mididrv_ms.h:140
@ FADE_ABORT_TYPE_END_VOLUME
Definition: mididrv_ms.h:132
@ FADE_ABORT_TYPE_CURRENT_VOLUME
Definition: mididrv_ms.h:136
virtual void applySourceVolume(uint8 source)=0
SourceType
Definition: mididrv_ms.h:110
@ SOURCE_TYPE_SFX
Definition: mididrv_ms.h:122
@ SOURCE_TYPE_MUSIC
Definition: mididrv_ms.h:118
@ SOURCE_TYPE_UNDEFINED
Definition: mididrv_ms.h:114
Definition: mididrv_ms.h:486
void stopAllNotes(uint8 source, uint8 channel) override
Definition: mididrv_ms.h:498
bool isOpen() const override
Definition: mididrv_ms.h:489
uint32 getBaseTempo() override
Definition: mididrv_ms.h:491
void applySourceVolume(uint8 source) override
Definition: mididrv_ms.h:503
void send(int8 source, uint32 b) override
Definition: mididrv_ms.h:496
Definition: mididrv.h:313
Definition: mididrv_ms.h:193
Definition: mididrv_ms.h:166