mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-04-02 11:01:50 -04:00
sceAudioSetFrequency is kernel mode only, and it sounds like it changes the audio controller clock (didn't test.) SRC only affects the SRC channel. Currently, this doesn't actually use the sample rate yet, but at least it's tracked appropriately.
58 lines
1.8 KiB
C++
58 lines
1.8 KiB
C++
// Copyright (c) 2012- PPSSPP Project.
|
|
|
|
// This program is free software: you can redistribute it and/or modify
|
|
// it under the terms of the GNU General Public License as published by
|
|
// the Free Software Foundation, version 2.0 or later versions.
|
|
|
|
// This program is distributed in the hope that it will be useful,
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
// GNU General Public License 2.0 for more details.
|
|
|
|
// A copy of the GPL 2.0 should have been included with the program.
|
|
// If not, see http://www.gnu.org/licenses/
|
|
|
|
// Official git repository and contact information can be found at
|
|
// https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/.
|
|
|
|
#pragma once
|
|
|
|
#include "sceAudio.h"
|
|
|
|
struct AudioDebugStats {
|
|
int buffered;
|
|
int watermark;
|
|
int bufsize;
|
|
int underrunCount;
|
|
int overrunCount;
|
|
int instantSampleRate;
|
|
int lastPushSize;
|
|
};
|
|
|
|
// Easy interface for sceAudio to write to, to keep the complexity in check.
|
|
|
|
void __AudioInit();
|
|
void __AudioDoState(PointerWrap &p);
|
|
void __AudioUpdate(bool resetRecording = false);
|
|
void __AudioShutdown();
|
|
void __AudioSetOutputFrequency(int freq);
|
|
void __AudioSetSRCFrequency(int freq);
|
|
|
|
// May return SCE_ERROR_AUDIO_CHANNEL_BUSY if buffer too large
|
|
u32 __AudioEnqueue(AudioChannel &chan, int chanNum, bool blocking);
|
|
void __AudioWakeThreads(AudioChannel &chan, int result, int step);
|
|
void __AudioWakeThreads(AudioChannel &chan, int result);
|
|
|
|
int __AudioMix(short *outstereo, int numSamples, int sampleRate);
|
|
const AudioDebugStats *__AudioGetDebugStats();
|
|
void __PushExternalAudio(const s32 *audio, int numSamples); // Should not be used in-game, only at the menu!
|
|
|
|
// Audio Dumping stuff
|
|
void __StartLogAudio(const std::string& filename);
|
|
void __StopLogAudio();
|
|
|
|
class WAVDump
|
|
{
|
|
public:
|
|
static void Reset();
|
|
};
|