Mesen-X/Core/HdAudioDevice.h

36 lines
834 B
C
Raw Normal View History

2017-08-19 16:46:57 -04:00
#pragma once
#include "stdafx.h"
#include "IMemoryHandler.h"
#include "SoundMixer.h"
#include "OggMixer.h"
#include "Snapshotable.h"
2017-08-19 16:46:57 -04:00
struct HdPackData;
class Console;
2017-08-19 16:46:57 -04:00
class HdAudioDevice : public IMemoryHandler, public Snapshotable
2017-08-19 16:46:57 -04:00
{
private:
HdPackData *_hdData;
uint8_t _album;
uint8_t _playbackOptions;
2017-08-19 16:46:57 -04:00
bool _trackError;
OggMixer* _oggMixer;
int32_t _lastBgmTrack;
uint8_t _bgmVolume;
uint8_t _sfxVolume;
2017-08-19 16:46:57 -04:00
bool PlayBgmTrack(uint8_t track, uint32_t startOffset);
2017-08-19 16:46:57 -04:00
bool PlaySfx(uint8_t sfxNumber);
void ProcessControlFlags(uint8_t flags);
protected:
void StreamState(bool saving) override;
2017-08-19 16:46:57 -04:00
public:
HdAudioDevice(shared_ptr<Console> console, HdPackData *hdData);
2017-08-19 16:46:57 -04:00
void GetMemoryRanges(MemoryRanges &ranges) override;
void WriteRAM(uint16_t addr, uint8_t value) override;
uint8_t ReadRAM(uint16_t addr) override;
};