mirror of https://github.com/stella-emu/stella.git
libretro: Minor doc updates and code rearrangement.
This commit is contained in:
parent
ce5bd61d85
commit
903be34217
|
@ -24,17 +24,14 @@ class OSystem;
|
||||||
#include "FBBackend.hxx"
|
#include "FBBackend.hxx"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
This class implements a standard LIBRETRO backend. Most of the
|
This class implements a standard LIBRETRO framebuffer backend. Most of
|
||||||
functionality is not used, since libretro has its own rendering system.
|
the functionality is not used, since libretro has its own rendering system.
|
||||||
|
|
||||||
@author Stephen Anthony
|
@author Stephen Anthony
|
||||||
*/
|
*/
|
||||||
class FBBackendLIBRETRO : public FBBackend
|
class FBBackendLIBRETRO : public FBBackend
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
/**
|
|
||||||
Creates a new LIBRETRO framebuffer.
|
|
||||||
*/
|
|
||||||
explicit FBBackendLIBRETRO(OSystem&) { }
|
explicit FBBackendLIBRETRO(OSystem&) { }
|
||||||
~FBBackendLIBRETRO() override { }
|
~FBBackendLIBRETRO() override { }
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
#include "FBSurface.hxx"
|
#include "FBSurface.hxx"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
An FBSurface suitable for the LIBRETRO Render2D API. As with FBBackend,
|
An FBSurface suitable for the LIBRETRO API. As with FBBackend,
|
||||||
most of the functionality here is handled by libretro directly.
|
most of the functionality here is handled by libretro directly.
|
||||||
|
|
||||||
@author Stephen Anthony
|
@author Stephen Anthony
|
||||||
|
|
|
@ -31,15 +31,10 @@
|
||||||
#include "AudioQueue.hxx"
|
#include "AudioQueue.hxx"
|
||||||
#include "EmulationTiming.hxx"
|
#include "EmulationTiming.hxx"
|
||||||
#include "AudioSettings.hxx"
|
#include "AudioSettings.hxx"
|
||||||
#include "StaggeredLogger.hxx"
|
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
SoundLIBRETRO::SoundLIBRETRO(OSystem& osystem, AudioSettings& audioSettings)
|
SoundLIBRETRO::SoundLIBRETRO(OSystem& osystem, AudioSettings& audioSettings)
|
||||||
: Sound(osystem),
|
: Sound(osystem),
|
||||||
myIsInitializedFlag(false),
|
|
||||||
myEmulationTiming(nullptr),
|
|
||||||
myCurrentFragment(nullptr),
|
|
||||||
myUnderrun(false),
|
|
||||||
myAudioSettings(audioSettings)
|
myAudioSettings(audioSettings)
|
||||||
{
|
{
|
||||||
Logger::debug("SoundLIBRETRO::SoundLIBRETRO started ...");
|
Logger::debug("SoundLIBRETRO::SoundLIBRETRO started ...");
|
||||||
|
@ -99,7 +94,6 @@ void SoundLIBRETRO::dequeue(Int16* stream, uInt32* samples)
|
||||||
|
|
||||||
myCurrentFragment = nextFragment;
|
myCurrentFragment = nextFragment;
|
||||||
|
|
||||||
|
|
||||||
for (uInt32 i = 0; i < myAudioQueue->fragmentSize(); ++i)
|
for (uInt32 i = 0; i < myAudioQueue->fragmentSize(); ++i)
|
||||||
{
|
{
|
||||||
Int16 sampleL, sampleR;
|
Int16 sampleL, sampleR;
|
||||||
|
@ -120,9 +114,4 @@ void SoundLIBRETRO::dequeue(Int16* stream, uInt32* samples)
|
||||||
*samples = outIndex / 2;
|
*samples = outIndex / 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
void SoundLIBRETRO::queryHardware(VariantList& devices)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif // SOUND_SUPPORT
|
#endif // SOUND_SUPPORT
|
||||||
|
|
|
@ -44,18 +44,12 @@ class SoundLIBRETRO : public Sound
|
||||||
~SoundLIBRETRO() override;
|
~SoundLIBRETRO() override;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/**
|
|
||||||
Enables/disables the sound subsystem.
|
|
||||||
|
|
||||||
@param enable Either true or false, to enable or disable the sound system
|
|
||||||
*/
|
|
||||||
void setEnabled(bool enable) override { }
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Initializes the sound device. This must be called before any
|
Initializes the sound device. This must be called before any
|
||||||
calls are made to derived methods.
|
calls are made to derived methods.
|
||||||
*/
|
*/
|
||||||
void open(shared_ptr<AudioQueue> audioQueue, EmulationTiming* emulationTiming) override;
|
void open(shared_ptr<AudioQueue> audioQueue,
|
||||||
|
EmulationTiming* emulationTiming) override;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Should be called to close the sound device. Once called the sound
|
Should be called to close the sound device. Once called the sound
|
||||||
|
@ -63,43 +57,6 @@ class SoundLIBRETRO : public Sound
|
||||||
*/
|
*/
|
||||||
void close() override;
|
void close() override;
|
||||||
|
|
||||||
/**
|
|
||||||
Set the mute state of the sound object. While muted no sound is played.
|
|
||||||
|
|
||||||
@param state Mutes sound if true, unmute if false
|
|
||||||
|
|
||||||
@return The previous (old) mute state
|
|
||||||
*/
|
|
||||||
bool mute(bool state) override { return !myIsInitializedFlag; }
|
|
||||||
|
|
||||||
/**
|
|
||||||
Toggles the sound mute state. While muted no sound is played.
|
|
||||||
|
|
||||||
@return The previous (old) mute state
|
|
||||||
*/
|
|
||||||
bool toggleMute() override { return !myIsInitializedFlag; }
|
|
||||||
|
|
||||||
/**
|
|
||||||
Sets the volume of the sound device to the specified level. The
|
|
||||||
volume is given as a percentage from 0 to 100. Values outside
|
|
||||||
this range indicate that the volume shouldn't be changed at all.
|
|
||||||
|
|
||||||
@param percent The new volume percentage level for the sound device
|
|
||||||
*/
|
|
||||||
void setVolume(uInt32 percent) override { }
|
|
||||||
|
|
||||||
/**
|
|
||||||
Adjusts the volume of the sound device based on the given direction.
|
|
||||||
|
|
||||||
@param direction +1 indicates increase, -1 indicates decrease.
|
|
||||||
*/
|
|
||||||
void adjustVolume(int direction = +1) override { }
|
|
||||||
|
|
||||||
/**
|
|
||||||
This method is called to provide information about the sound device.
|
|
||||||
*/
|
|
||||||
string about() const override { return ""; }
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Empties the playback buffer.
|
Empties the playback buffer.
|
||||||
|
|
||||||
|
@ -109,23 +66,29 @@ class SoundLIBRETRO : public Sound
|
||||||
void dequeue(Int16* stream, uInt32* samples);
|
void dequeue(Int16* stream, uInt32* samples);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
/**
|
//////////////////////////////////////////////////////////////////////
|
||||||
This method is called to query the audio devices.
|
// Most methods here aren't used at all. See Sound class for
|
||||||
|
// description, if needed.
|
||||||
|
//////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
@param devices List of device names
|
void setEnabled(bool enable) override { }
|
||||||
*/
|
void queryHardware(VariantList& devices) override { }
|
||||||
void queryHardware(VariantList& devices) override;
|
void setVolume(uInt32 percent) override { }
|
||||||
|
void adjustVolume(int direction = +1) override { }
|
||||||
|
bool mute(bool state) override { return !myIsInitializedFlag; }
|
||||||
|
bool toggleMute() override { return !myIsInitializedFlag; }
|
||||||
|
string about() const override { return ""; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// Indicates if the sound device was successfully initialized
|
// Indicates if the sound device was successfully initialized
|
||||||
bool myIsInitializedFlag;
|
bool myIsInitializedFlag{false};
|
||||||
|
|
||||||
shared_ptr<AudioQueue> myAudioQueue;
|
shared_ptr<AudioQueue> myAudioQueue;
|
||||||
|
|
||||||
EmulationTiming* myEmulationTiming;
|
EmulationTiming* myEmulationTiming{nullptr};
|
||||||
|
|
||||||
Int16* myCurrentFragment;
|
Int16* myCurrentFragment{nullptr};
|
||||||
bool myUnderrun;
|
bool myUnderrun{false};
|
||||||
|
|
||||||
AudioSettings& myAudioSettings;
|
AudioSettings& myAudioSettings;
|
||||||
|
|
||||||
|
|
|
@ -297,12 +297,7 @@ void* StellaLIBRETRO::getVideoBuffer() const
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
bool StellaLIBRETRO::getVideoNTSC() const
|
bool StellaLIBRETRO::getVideoNTSC() const
|
||||||
{
|
{
|
||||||
const ConsoleInfo& console_info = myOSystem->console().about();
|
return myOSystem->console().gameRefreshRate() == 60;
|
||||||
string format = console_info.DisplayFormat;
|
|
||||||
|
|
||||||
return (format == "NTSC") || (format == "NTSC*") ||
|
|
||||||
(format == "PAL60") || (format == "PAL60*") ||
|
|
||||||
(format == "SECAM60") || (format == "SECAM60*");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
|
Loading…
Reference in New Issue