daedalus/Source/HLEAudio/SoundDriverInterface.h
2021-12-11 12:55:43 +11:00

44 lines
1.7 KiB
C++

/****************************************************************************
* *
* Azimer's HLE Audio Plugin for Project64 Compatible N64 Emulators *
* http://www.apollo64.com/ *
* Copyright (C) 2000-2019 Azimer. All rights reserved. *
* *
* License: *
* GNU/GPLv2 http://www.gnu.org/licenses/gpl-2.0.html *
* *
****************************************************************************/
#pragma once
#include "common.h"
#include "Configuration.h"
class SoundDriverInterface
{
private:
public:
virtual ~SoundDriverInterface() {};
// Setup and Teardown Functions
virtual Boolean Initialize() = 0;
virtual void DeInitialize() = 0;
// Management functions
virtual void AiUpdate(Boolean Wait) { UNREFERENCED_PARAMETER(Wait); }; // Optional
virtual void StopAudio() = 0; // Stops the Audio PlayBack (as if paused)
virtual void StartAudio() = 0; // Starts the Audio PlayBack (as if unpaused)
virtual void SetFrequency(u32 Frequency) = 0; // Sets the Nintendo64 Game Audio Frequency
// Audio Spec interface methods (new)
virtual void AI_SetFrequency(u32 Frequency) = 0;
virtual void AI_LenChanged(u8 *start, u32 length) = 0;
virtual u32 AI_ReadLength() = 0;
virtual void AI_Startup() = 0;
virtual void AI_Shutdown() = 0;
virtual void AI_ResetAudio() = 0;
virtual void AI_Update(Boolean Wait) = 0;
virtual void SetVolume(u32 volume) = 0;
};