2012-12-19 09:30:18 +00:00
|
|
|
/****************************************************************************
|
|
|
|
* *
|
|
|
|
* Project 64 - A Nintendo 64 emulator. *
|
|
|
|
* http://www.pj64-emu.com/ *
|
|
|
|
* Copyright (C) 2012 Project64. All rights reserved. *
|
|
|
|
* *
|
|
|
|
* License: *
|
|
|
|
* GNU/GPLv2 http://www.gnu.org/licenses/gpl-2.0.html *
|
|
|
|
* *
|
|
|
|
****************************************************************************/
|
|
|
|
#pragma once
|
|
|
|
|
2012-11-29 11:23:35 +00:00
|
|
|
class CAudio
|
2010-05-22 04:47:15 +00:00
|
|
|
{
|
2013-01-04 22:48:25 +00:00
|
|
|
enum {
|
|
|
|
ai_full = 0x80000000,
|
|
|
|
ai_busy = 0x40000000,
|
|
|
|
};
|
2008-09-18 03:15:49 +00:00
|
|
|
public:
|
2010-05-22 04:47:15 +00:00
|
|
|
CAudio (void);
|
2010-06-14 21:14:58 +00:00
|
|
|
~CAudio (void);
|
2008-09-18 03:15:49 +00:00
|
|
|
|
2010-06-14 21:14:58 +00:00
|
|
|
DWORD GetLength ( void );
|
|
|
|
DWORD GetStatus ( void );
|
|
|
|
void LenChanged ( void );
|
2013-01-04 22:48:25 +00:00
|
|
|
void InterruptTimerDone( void );
|
|
|
|
void BusyTimerDone ( void );
|
2010-06-14 21:14:58 +00:00
|
|
|
void Reset ( void );
|
|
|
|
void SetViIntr ( DWORD VI_INTR_TIME );
|
2010-06-29 02:11:22 +00:00
|
|
|
void SetFrequency ( DWORD Dacrate, DWORD System );
|
2010-06-14 21:14:58 +00:00
|
|
|
|
2010-05-22 04:47:15 +00:00
|
|
|
private:
|
2010-06-14 21:14:58 +00:00
|
|
|
DWORD m_SecondBuff;
|
|
|
|
DWORD m_Status;
|
2010-06-29 02:11:22 +00:00
|
|
|
DWORD m_BytesPerSecond;
|
2010-06-30 21:35:44 +00:00
|
|
|
int m_CountsPerByte;
|
2010-06-29 02:11:22 +00:00
|
|
|
int m_FramesPerSecond;
|
2010-05-22 04:47:15 +00:00
|
|
|
};
|