mirror of
https://github.com/DaedalusX64/daedalus.git
synced 2025-04-02 10:21:48 -04:00
44 lines
1.7 KiB
C++
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;
|
|
};
|
|
|