mirror of
https://github.com/elasota/Aerofoil.git
synced 2025-12-13 19:49:36 +00:00
Remove glue drivers, use Gp drivers instead
This commit is contained in:
@@ -158,9 +158,6 @@
|
|||||||
<ClCompile Include="GpMain_Win32.cpp" />
|
<ClCompile Include="GpMain_Win32.cpp" />
|
||||||
<ClCompile Include="GpMemoryBuffer.cpp" />
|
<ClCompile Include="GpMemoryBuffer.cpp" />
|
||||||
<ClCompile Include="GpMutex_Win32.cpp" />
|
<ClCompile Include="GpMutex_Win32.cpp" />
|
||||||
<ClCompile Include="GpPLGlueAudioChannel.cpp" />
|
|
||||||
<ClCompile Include="GpPLGlueAudioDriver.cpp" />
|
|
||||||
<ClCompile Include="GpPLGlueDisplayDriver.cpp" />
|
|
||||||
<ClCompile Include="GpSystemServices_Win32.cpp" />
|
<ClCompile Include="GpSystemServices_Win32.cpp" />
|
||||||
<ClCompile Include="GpFiberStarter_Win32.cpp" />
|
<ClCompile Include="GpFiberStarter_Win32.cpp" />
|
||||||
<ClCompile Include="GpThreadEvent_Win32.cpp" />
|
<ClCompile Include="GpThreadEvent_Win32.cpp" />
|
||||||
@@ -193,9 +190,6 @@
|
|||||||
<ClInclude Include="GpMain.h" />
|
<ClInclude Include="GpMain.h" />
|
||||||
<ClInclude Include="GpMemoryBuffer.h" />
|
<ClInclude Include="GpMemoryBuffer.h" />
|
||||||
<ClInclude Include="GpMutex_Win32.h" />
|
<ClInclude Include="GpMutex_Win32.h" />
|
||||||
<ClInclude Include="GpPLGlueAudioChannel.h" />
|
|
||||||
<ClInclude Include="GpPLGlueAudioDriver.h" />
|
|
||||||
<ClInclude Include="GpPLGlueDisplayDriver.h" />
|
|
||||||
<ClInclude Include="GpRingBuffer.h" />
|
<ClInclude Include="GpRingBuffer.h" />
|
||||||
<ClInclude Include="GpSystemServices_Win32.h" />
|
<ClInclude Include="GpSystemServices_Win32.h" />
|
||||||
<ClInclude Include="GpFiberStarter.h" />
|
<ClInclude Include="GpFiberStarter.h" />
|
||||||
|
|||||||
@@ -3,8 +3,6 @@
|
|||||||
#include "GpAppInterface.h"
|
#include "GpAppInterface.h"
|
||||||
#include "GpDisplayDriverTickStatus.h"
|
#include "GpDisplayDriverTickStatus.h"
|
||||||
#include "GpFontHandlerFactory.h"
|
#include "GpFontHandlerFactory.h"
|
||||||
#include "GpPLGlueAudioDriver.h"
|
|
||||||
#include "GpPLGlueDisplayDriver.h"
|
|
||||||
#include "HostSuspendCallArgument.h"
|
#include "HostSuspendCallArgument.h"
|
||||||
#include "IGpDisplayDriver.h"
|
#include "IGpDisplayDriver.h"
|
||||||
#include "IGpFiber.h"
|
#include "IGpFiber.h"
|
||||||
@@ -137,15 +135,12 @@ void GpAppEnvironment::AppThreadFunc()
|
|||||||
|
|
||||||
void GpAppEnvironment::InitializeApplicationState()
|
void GpAppEnvironment::InitializeApplicationState()
|
||||||
{
|
{
|
||||||
GpAppInterface_Get()->PL_HostDisplayDriver_SetInstance(GpPLGlueDisplayDriver::GetInstance());
|
GpAppInterface_Get()->PL_HostDisplayDriver_SetInstance(m_displayDriver);
|
||||||
GpAppInterface_Get()->PL_HostAudioDriver_SetInstance(GpPLGlueAudioDriver::GetInstance());
|
GpAppInterface_Get()->PL_HostAudioDriver_SetInstance(m_audioDriver);
|
||||||
GpAppInterface_Get()->PL_InstallHostSuspendHook(GpAppEnvironment::StaticSuspendHookFunc, this);
|
GpAppInterface_Get()->PL_InstallHostSuspendHook(GpAppEnvironment::StaticSuspendHookFunc, this);
|
||||||
|
|
||||||
GpAppInterface_Get()->PL_HostFontHandler_SetInstance(m_fontHandler);
|
GpAppInterface_Get()->PL_HostFontHandler_SetInstance(m_fontHandler);
|
||||||
GpAppInterface_Get()->PL_HostVOSEventQueue_SetInstance(m_vosEventQueue);
|
GpAppInterface_Get()->PL_HostVOSEventQueue_SetInstance(m_vosEventQueue);
|
||||||
|
|
||||||
GpPLGlueDisplayDriver::GetInstance()->SetGpDisplayDriver(m_displayDriver);
|
|
||||||
GpPLGlueAudioDriver::GetInstance()->SetGpAudioDriver(m_audioDriver);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void GpAppEnvironment::SynchronizeState()
|
void GpAppEnvironment::SynchronizeState()
|
||||||
|
|||||||
@@ -1,54 +0,0 @@
|
|||||||
#include "GpPLGlueAudioChannel.h"
|
|
||||||
#include "ClientAudioChannelContext.h"
|
|
||||||
#include "IGpAudioChannel.h"
|
|
||||||
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <new>
|
|
||||||
|
|
||||||
void GpPLGlueAudioChannel::SetClientAudioChannelContext(PortabilityLayer::ClientAudioChannelContext *context)
|
|
||||||
{
|
|
||||||
m_clientContext = context;
|
|
||||||
m_audioChannel->SetAudioChannelContext(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
void GpPLGlueAudioChannel::PostBuffer(const void *buffer, size_t bufferSize)
|
|
||||||
{
|
|
||||||
m_audioChannel->PostBuffer(buffer, bufferSize);
|
|
||||||
}
|
|
||||||
|
|
||||||
void GpPLGlueAudioChannel::Stop()
|
|
||||||
{
|
|
||||||
m_audioChannel->Stop();
|
|
||||||
}
|
|
||||||
|
|
||||||
void GpPLGlueAudioChannel::Destroy()
|
|
||||||
{
|
|
||||||
this->~GpPLGlueAudioChannel();
|
|
||||||
free(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
void GpPLGlueAudioChannel::NotifyBufferFinished()
|
|
||||||
{
|
|
||||||
if (m_clientContext)
|
|
||||||
m_clientContext->NotifyBufferFinished();
|
|
||||||
}
|
|
||||||
|
|
||||||
GpPLGlueAudioChannel *GpPLGlueAudioChannel::Create(IGpAudioChannel *audioChannel)
|
|
||||||
{
|
|
||||||
void *storage = malloc(sizeof(GpPLGlueAudioChannel));
|
|
||||||
if (!storage)
|
|
||||||
return nullptr;
|
|
||||||
|
|
||||||
return new (storage) GpPLGlueAudioChannel(audioChannel);
|
|
||||||
}
|
|
||||||
|
|
||||||
GpPLGlueAudioChannel::GpPLGlueAudioChannel(IGpAudioChannel *audioChannel)
|
|
||||||
: m_audioChannel(audioChannel)
|
|
||||||
, m_clientContext(nullptr)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
GpPLGlueAudioChannel::~GpPLGlueAudioChannel()
|
|
||||||
{
|
|
||||||
m_audioChannel->Destroy();
|
|
||||||
}
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#include "HostAudioChannel.h"
|
|
||||||
#include "IGpAudioChannelCallbacks.h"
|
|
||||||
|
|
||||||
struct IGpAudioChannel;
|
|
||||||
|
|
||||||
class GpPLGlueAudioChannel final : public PortabilityLayer::HostAudioChannel, public IGpAudioChannelCallbacks
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
void SetClientAudioChannelContext(PortabilityLayer::ClientAudioChannelContext *context) override;
|
|
||||||
void PostBuffer(const void *buffer, size_t bufferSize) override;
|
|
||||||
void Stop() override;
|
|
||||||
void Destroy() override;
|
|
||||||
|
|
||||||
void NotifyBufferFinished() override;
|
|
||||||
|
|
||||||
static GpPLGlueAudioChannel *Create(IGpAudioChannel *audioChannel);
|
|
||||||
|
|
||||||
private:
|
|
||||||
explicit GpPLGlueAudioChannel(IGpAudioChannel *audioChannel);
|
|
||||||
~GpPLGlueAudioChannel();
|
|
||||||
|
|
||||||
PortabilityLayer::ClientAudioChannelContext *m_clientContext;
|
|
||||||
IGpAudioChannel *m_audioChannel;
|
|
||||||
};
|
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
#include "GpPLGlueAudioDriver.h"
|
|
||||||
|
|
||||||
#include "GpPLGlueAudioChannel.h"
|
|
||||||
#include "IGpAudioChannel.h"
|
|
||||||
#include "IGpAudioDriver.h"
|
|
||||||
|
|
||||||
GpPLGlueAudioDriver::GpPLGlueAudioDriver()
|
|
||||||
: m_audioDriver(nullptr)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
PortabilityLayer::HostAudioChannel *GpPLGlueAudioDriver::CreateChannel()
|
|
||||||
{
|
|
||||||
IGpAudioChannel *channel = m_audioDriver->CreateChannel();
|
|
||||||
if (!channel)
|
|
||||||
return nullptr;
|
|
||||||
|
|
||||||
PortabilityLayer::HostAudioChannel *glueChannel = GpPLGlueAudioChannel::Create(channel);
|
|
||||||
if (!glueChannel)
|
|
||||||
{
|
|
||||||
channel->Destroy();
|
|
||||||
return nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
return glueChannel;
|
|
||||||
}
|
|
||||||
|
|
||||||
void GpPLGlueAudioDriver::SetMasterVolume(uint32_t vol, uint32_t maxVolume)
|
|
||||||
{
|
|
||||||
m_audioDriver->SetMasterVolume(vol, maxVolume);
|
|
||||||
}
|
|
||||||
|
|
||||||
GpPLGlueAudioDriver *GpPLGlueAudioDriver::GetInstance()
|
|
||||||
{
|
|
||||||
return &ms_instance;
|
|
||||||
}
|
|
||||||
|
|
||||||
void GpPLGlueAudioDriver::SetGpAudioDriver(IGpAudioDriver *audioDriver)
|
|
||||||
{
|
|
||||||
m_audioDriver = audioDriver;
|
|
||||||
}
|
|
||||||
|
|
||||||
GpPLGlueAudioDriver GpPLGlueAudioDriver::ms_instance;
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#include "HostAudioDriver.h"
|
|
||||||
|
|
||||||
struct IGpAudioDriver;
|
|
||||||
|
|
||||||
class GpPLGlueAudioDriver final : public PortabilityLayer::HostAudioDriver
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
GpPLGlueAudioDriver();
|
|
||||||
|
|
||||||
PortabilityLayer::HostAudioChannel *CreateChannel() override;
|
|
||||||
void SetMasterVolume(uint32_t vol, uint32_t maxVolume) override;
|
|
||||||
|
|
||||||
void SetGpAudioDriver(IGpAudioDriver *audioDriver);
|
|
||||||
|
|
||||||
static GpPLGlueAudioDriver *GetInstance();
|
|
||||||
|
|
||||||
private:
|
|
||||||
IGpAudioDriver *m_audioDriver;
|
|
||||||
|
|
||||||
static GpPLGlueAudioDriver ms_instance;
|
|
||||||
};
|
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
#include "GpPLGlueDisplayDriver.h"
|
|
||||||
#include "VirtualDirectory.h"
|
|
||||||
#include "IGpDisplayDriver.h"
|
|
||||||
|
|
||||||
GpPLGlueDisplayDriver::GpPLGlueDisplayDriver()
|
|
||||||
: m_displayDriver(nullptr)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void GpPLGlueDisplayDriver::GetDisplayResolution(unsigned int *width, unsigned int *height, GpPixelFormat_t *bpp)
|
|
||||||
{
|
|
||||||
m_displayDriver->GetDisplayResolution(width, height, bpp);
|
|
||||||
}
|
|
||||||
|
|
||||||
IGpColorCursor *GpPLGlueDisplayDriver::LoadColorCursor(int cursorID)
|
|
||||||
{
|
|
||||||
return m_displayDriver->LoadColorCursor(cursorID);
|
|
||||||
}
|
|
||||||
|
|
||||||
void GpPLGlueDisplayDriver::SetColorCursor(IGpColorCursor *colorCursor)
|
|
||||||
{
|
|
||||||
m_displayDriver->SetColorCursor(colorCursor);
|
|
||||||
}
|
|
||||||
|
|
||||||
void GpPLGlueDisplayDriver::SetStandardCursor(EGpStandardCursor_t standardCursor)
|
|
||||||
{
|
|
||||||
m_displayDriver->SetStandardCursor(standardCursor);
|
|
||||||
}
|
|
||||||
|
|
||||||
GpPLGlueDisplayDriver *GpPLGlueDisplayDriver::GetInstance()
|
|
||||||
{
|
|
||||||
return &ms_instance;
|
|
||||||
}
|
|
||||||
|
|
||||||
void GpPLGlueDisplayDriver::SetGpDisplayDriver(IGpDisplayDriver *displayDriver)
|
|
||||||
{
|
|
||||||
m_displayDriver = displayDriver;
|
|
||||||
}
|
|
||||||
|
|
||||||
GpPLGlueDisplayDriver GpPLGlueDisplayDriver::ms_instance;
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#include "HostDisplayDriver.h"
|
|
||||||
|
|
||||||
struct IGpDisplayDriver;
|
|
||||||
|
|
||||||
class GpPLGlueDisplayDriver final : public PortabilityLayer::HostDisplayDriver
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
GpPLGlueDisplayDriver();
|
|
||||||
|
|
||||||
void GetDisplayResolution(unsigned int *width, unsigned int *height, GpPixelFormat_t *bpp) override;
|
|
||||||
IGpColorCursor *LoadColorCursor(int id) override;
|
|
||||||
void SetColorCursor(IGpColorCursor *colorCursor) override;
|
|
||||||
void SetStandardCursor(EGpStandardCursor_t standardCursor) override;
|
|
||||||
|
|
||||||
void SetGpDisplayDriver(IGpDisplayDriver *displayDriver);
|
|
||||||
|
|
||||||
static GpPLGlueDisplayDriver *GetInstance();
|
|
||||||
|
|
||||||
private:
|
|
||||||
IGpDisplayDriver *m_displayDriver;
|
|
||||||
|
|
||||||
static GpPLGlueDisplayDriver ms_instance;
|
|
||||||
};
|
|
||||||
@@ -12,6 +12,7 @@
|
|||||||
#include "Environ.h"
|
#include "Environ.h"
|
||||||
#include "HostDisplayDriver.h"
|
#include "HostDisplayDriver.h"
|
||||||
#include "IGpColorCursor.h"
|
#include "IGpColorCursor.h"
|
||||||
|
#include "IGpDisplayDriver.h"
|
||||||
|
|
||||||
|
|
||||||
#define rAcurID 128
|
#define rAcurID 128
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
#include "Environ.h"
|
#include "Environ.h"
|
||||||
#include "HostDisplayDriver.h"
|
#include "HostDisplayDriver.h"
|
||||||
#include "HostSystemServices.h"
|
#include "HostSystemServices.h"
|
||||||
|
#include "IGpDisplayDriver.h"
|
||||||
|
|
||||||
|
|
||||||
#define kSwitchDepthAlert 130
|
#define kSwitchDepthAlert 130
|
||||||
|
|||||||
@@ -19,9 +19,9 @@ public:
|
|||||||
void PL_IncrementTickCounter(uint32_t count) override;
|
void PL_IncrementTickCounter(uint32_t count) override;
|
||||||
void PL_Render(IGpDisplayDriver *displayDriver) override;
|
void PL_Render(IGpDisplayDriver *displayDriver) override;
|
||||||
void PL_HostFileSystem_SetInstance(PortabilityLayer::HostFileSystem *instance) override;
|
void PL_HostFileSystem_SetInstance(PortabilityLayer::HostFileSystem *instance) override;
|
||||||
void PL_HostDisplayDriver_SetInstance(PortabilityLayer::HostDisplayDriver *instance) override;
|
void PL_HostDisplayDriver_SetInstance(IGpDisplayDriver *instance) override;
|
||||||
void PL_HostSystemServices_SetInstance(PortabilityLayer::HostSystemServices *instance) override;
|
void PL_HostSystemServices_SetInstance(PortabilityLayer::HostSystemServices *instance) override;
|
||||||
void PL_HostAudioDriver_SetInstance(PortabilityLayer::HostAudioDriver *instance) override;
|
void PL_HostAudioDriver_SetInstance(IGpAudioDriver *instance) override;
|
||||||
void PL_HostFontHandler_SetInstance(PortabilityLayer::HostFontHandler *instance) override;
|
void PL_HostFontHandler_SetInstance(PortabilityLayer::HostFontHandler *instance) override;
|
||||||
void PL_HostVOSEventQueue_SetInstance(PortabilityLayer::HostVOSEventQueue *instance) override;
|
void PL_HostVOSEventQueue_SetInstance(PortabilityLayer::HostVOSEventQueue *instance) override;
|
||||||
void PL_InstallHostSuspendHook(PortabilityLayer::HostSuspendHook_t hook, void *context) override;
|
void PL_InstallHostSuspendHook(PortabilityLayer::HostSuspendHook_t hook, void *context) override;
|
||||||
@@ -49,7 +49,7 @@ void GpAppInterfaceImpl::PL_HostFileSystem_SetInstance(PortabilityLayer::HostFil
|
|||||||
PortabilityLayer::HostFileSystem::SetInstance(instance);
|
PortabilityLayer::HostFileSystem::SetInstance(instance);
|
||||||
}
|
}
|
||||||
|
|
||||||
void GpAppInterfaceImpl::PL_HostDisplayDriver_SetInstance(PortabilityLayer::HostDisplayDriver *instance)
|
void GpAppInterfaceImpl::PL_HostDisplayDriver_SetInstance(IGpDisplayDriver *instance)
|
||||||
{
|
{
|
||||||
PortabilityLayer::HostDisplayDriver::SetInstance(instance);
|
PortabilityLayer::HostDisplayDriver::SetInstance(instance);
|
||||||
}
|
}
|
||||||
@@ -59,7 +59,7 @@ void GpAppInterfaceImpl::PL_HostSystemServices_SetInstance(PortabilityLayer::Hos
|
|||||||
PortabilityLayer::HostSystemServices::SetInstance(instance);
|
PortabilityLayer::HostSystemServices::SetInstance(instance);
|
||||||
}
|
}
|
||||||
|
|
||||||
void GpAppInterfaceImpl::PL_HostAudioDriver_SetInstance(PortabilityLayer::HostAudioDriver *instance)
|
void GpAppInterfaceImpl::PL_HostAudioDriver_SetInstance(IGpAudioDriver *instance)
|
||||||
{
|
{
|
||||||
PortabilityLayer::HostAudioDriver::SetInstance(instance);
|
PortabilityLayer::HostAudioDriver::SetInstance(instance);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,12 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#include <stdint.h>
|
|
||||||
|
|
||||||
namespace PortabilityLayer
|
|
||||||
{
|
|
||||||
class ClientAudioChannelContext
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
virtual void NotifyBufferFinished() = 0;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
#include "DialogManager.h"
|
#include "DialogManager.h"
|
||||||
#include "HostDisplayDriver.h"
|
#include "HostDisplayDriver.h"
|
||||||
#include "IconLoader.h"
|
#include "IconLoader.h"
|
||||||
|
#include "IGpDisplayDriver.h"
|
||||||
#include "ResourceManager.h"
|
#include "ResourceManager.h"
|
||||||
#include "PLArrayView.h"
|
#include "PLArrayView.h"
|
||||||
#include "PLBigEndian.h"
|
#include "PLBigEndian.h"
|
||||||
|
|||||||
@@ -19,9 +19,10 @@
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
struct IGpAudioDriver;
|
||||||
|
|
||||||
namespace PortabilityLayer
|
namespace PortabilityLayer
|
||||||
{
|
{
|
||||||
class HostAudioDriver;
|
|
||||||
class HostFileSystem;
|
class HostFileSystem;
|
||||||
class HostDisplayDriver;
|
class HostDisplayDriver;
|
||||||
class HostSystemServices;
|
class HostSystemServices;
|
||||||
@@ -38,12 +39,13 @@ public:
|
|||||||
virtual void PL_IncrementTickCounter(uint32_t count) = 0;
|
virtual void PL_IncrementTickCounter(uint32_t count) = 0;
|
||||||
virtual void PL_Render(IGpDisplayDriver *displayDriver) = 0;
|
virtual void PL_Render(IGpDisplayDriver *displayDriver) = 0;
|
||||||
virtual void PL_HostFileSystem_SetInstance(PortabilityLayer::HostFileSystem *instance) = 0;
|
virtual void PL_HostFileSystem_SetInstance(PortabilityLayer::HostFileSystem *instance) = 0;
|
||||||
virtual void PL_HostDisplayDriver_SetInstance(PortabilityLayer::HostDisplayDriver *instance) = 0;
|
virtual void PL_HostDisplayDriver_SetInstance(IGpDisplayDriver *instance) = 0;
|
||||||
virtual void PL_HostSystemServices_SetInstance(PortabilityLayer::HostSystemServices *instance) = 0;
|
virtual void PL_HostSystemServices_SetInstance(PortabilityLayer::HostSystemServices *instance) = 0;
|
||||||
virtual void PL_HostAudioDriver_SetInstance(PortabilityLayer::HostAudioDriver *instance) = 0;
|
|
||||||
virtual void PL_HostFontHandler_SetInstance(PortabilityLayer::HostFontHandler *instance) = 0;
|
virtual void PL_HostFontHandler_SetInstance(PortabilityLayer::HostFontHandler *instance) = 0;
|
||||||
virtual void PL_HostVOSEventQueue_SetInstance(PortabilityLayer::HostVOSEventQueue *instance) = 0;
|
virtual void PL_HostVOSEventQueue_SetInstance(PortabilityLayer::HostVOSEventQueue *instance) = 0;
|
||||||
virtual void PL_InstallHostSuspendHook(PortabilityLayer::HostSuspendHook_t hook, void *context) = 0;
|
virtual void PL_InstallHostSuspendHook(PortabilityLayer::HostSuspendHook_t hook, void *context) = 0;
|
||||||
|
|
||||||
|
virtual void PL_HostAudioDriver_SetInstance(IGpAudioDriver *instance) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
GP_APP_DLL_EXPORT_API GpAppInterface *GpAppInterface_Get();
|
GP_APP_DLL_EXPORT_API GpAppInterface *GpAppInterface_Get();
|
||||||
|
|||||||
@@ -1,15 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
namespace PortabilityLayer
|
|
||||||
{
|
|
||||||
class ClientAudioChannelContext;
|
|
||||||
|
|
||||||
class HostAudioChannel
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
virtual void SetClientAudioChannelContext(ClientAudioChannelContext *context) = 0;
|
|
||||||
virtual void PostBuffer(const void *buffer, size_t bufferSize) = 0;
|
|
||||||
virtual void Stop() = 0;
|
|
||||||
virtual void Destroy() = 0;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -2,15 +2,15 @@
|
|||||||
|
|
||||||
namespace PortabilityLayer
|
namespace PortabilityLayer
|
||||||
{
|
{
|
||||||
HostAudioDriver *HostAudioDriver::GetInstance()
|
IGpAudioDriver *HostAudioDriver::GetInstance()
|
||||||
{
|
{
|
||||||
return ms_instance;
|
return ms_instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
void HostAudioDriver::SetInstance(HostAudioDriver *instance)
|
void HostAudioDriver::SetInstance(IGpAudioDriver *instance)
|
||||||
{
|
{
|
||||||
ms_instance = instance;
|
ms_instance = instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
HostAudioDriver *HostAudioDriver::ms_instance;
|
IGpAudioDriver *HostAudioDriver::ms_instance;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,21 +1,16 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <stdint.h>
|
struct IGpAudioDriver;
|
||||||
|
|
||||||
namespace PortabilityLayer
|
namespace PortabilityLayer
|
||||||
{
|
{
|
||||||
class HostAudioChannel;
|
|
||||||
|
|
||||||
class HostAudioDriver
|
class HostAudioDriver
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual HostAudioChannel *CreateChannel() = 0;
|
static IGpAudioDriver *GetInstance();
|
||||||
virtual void SetMasterVolume(uint32_t vol, uint32_t maxVolume) = 0;
|
static void SetInstance(IGpAudioDriver *instance);
|
||||||
|
|
||||||
static HostAudioDriver *GetInstance();
|
|
||||||
static void SetInstance(HostAudioDriver *instance);
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static HostAudioDriver *ms_instance;
|
static IGpAudioDriver *ms_instance;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,15 +2,15 @@
|
|||||||
|
|
||||||
namespace PortabilityLayer
|
namespace PortabilityLayer
|
||||||
{
|
{
|
||||||
HostDisplayDriver *HostDisplayDriver::GetInstance()
|
IGpDisplayDriver *HostDisplayDriver::GetInstance()
|
||||||
{
|
{
|
||||||
return ms_instance;
|
return ms_instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
void HostDisplayDriver::SetInstance(HostDisplayDriver *instance)
|
void HostDisplayDriver::SetInstance(IGpDisplayDriver *instance)
|
||||||
{
|
{
|
||||||
ms_instance = instance;
|
ms_instance = instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
HostDisplayDriver *HostDisplayDriver::ms_instance;
|
IGpDisplayDriver *HostDisplayDriver::ms_instance;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,22 +6,18 @@
|
|||||||
#include "EGpStandardCursor.h"
|
#include "EGpStandardCursor.h"
|
||||||
|
|
||||||
struct IGpColorCursor;
|
struct IGpColorCursor;
|
||||||
|
struct IGpDisplayDriver;
|
||||||
|
|
||||||
namespace PortabilityLayer
|
namespace PortabilityLayer
|
||||||
{
|
{
|
||||||
class HostDisplayDriver
|
class HostDisplayDriver
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual void GetDisplayResolution(unsigned int *width, unsigned int *height, GpPixelFormat_t *pixelFormat) = 0;
|
static void SetInstance(IGpDisplayDriver *instance);
|
||||||
virtual IGpColorCursor *LoadColorCursor(int id) = 0;
|
static IGpDisplayDriver *GetInstance();
|
||||||
virtual void SetColorCursor(IGpColorCursor *colorCursor) = 0;
|
|
||||||
virtual void SetStandardCursor(EGpStandardCursor_t standardCursor) = 0;
|
|
||||||
|
|
||||||
static void SetInstance(HostDisplayDriver *instance);
|
|
||||||
static HostDisplayDriver *GetInstance();
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static HostDisplayDriver *ms_instance;
|
static IGpDisplayDriver *ms_instance;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -19,6 +19,7 @@
|
|||||||
#include "HostSystemServices.h"
|
#include "HostSystemServices.h"
|
||||||
#include "HostVOSEventQueue.h"
|
#include "HostVOSEventQueue.h"
|
||||||
#include "IGpColorCursor.h"
|
#include "IGpColorCursor.h"
|
||||||
|
#include "IGpDisplayDriver.h"
|
||||||
#include "InputManager.h"
|
#include "InputManager.h"
|
||||||
#include "ResourceManager.h"
|
#include "ResourceManager.h"
|
||||||
#include "MacFileInfo.h"
|
#include "MacFileInfo.h"
|
||||||
|
|||||||
@@ -1,12 +1,13 @@
|
|||||||
#include "PLSound.h"
|
#include "PLSound.h"
|
||||||
|
|
||||||
#include "ClientAudioChannelContext.h"
|
|
||||||
#include "HostAudioChannel.h"
|
|
||||||
#include "HostAudioDriver.h"
|
#include "HostAudioDriver.h"
|
||||||
#include "MemoryManager.h"
|
#include "MemoryManager.h"
|
||||||
#include "HostMutex.h"
|
#include "HostMutex.h"
|
||||||
#include "HostSystemServices.h"
|
#include "HostSystemServices.h"
|
||||||
#include "HostThreadEvent.h"
|
#include "HostThreadEvent.h"
|
||||||
|
#include "IGpAudioChannel.h"
|
||||||
|
#include "IGpAudioChannelCallbacks.h"
|
||||||
|
#include "IGpAudioDriver.h"
|
||||||
#include "WaveFormat.h"
|
#include "WaveFormat.h"
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
@@ -36,10 +37,10 @@ namespace PortabilityLayer
|
|||||||
AudioCommandParam m_param;
|
AudioCommandParam m_param;
|
||||||
};
|
};
|
||||||
|
|
||||||
class AudioChannelImpl final : public AudioChannel, public ClientAudioChannelContext
|
class AudioChannelImpl final : public AudioChannel, public IGpAudioChannelCallbacks
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
explicit AudioChannelImpl(PortabilityLayer::HostAudioChannel *channel, HostThreadEvent *threadEvent, HostMutex *mutex);
|
explicit AudioChannelImpl(IGpAudioChannel *channel, HostThreadEvent *threadEvent, HostMutex *mutex);
|
||||||
~AudioChannelImpl();
|
~AudioChannelImpl();
|
||||||
|
|
||||||
void Destroy(bool wait) override;
|
void Destroy(bool wait) override;
|
||||||
@@ -70,7 +71,7 @@ namespace PortabilityLayer
|
|||||||
void DigestQueueItems();
|
void DigestQueueItems();
|
||||||
void DigestBufferCommand(const void *dataPointer);
|
void DigestBufferCommand(const void *dataPointer);
|
||||||
|
|
||||||
PortabilityLayer::HostAudioChannel *m_audioChannel;
|
IGpAudioChannel *m_audioChannel;
|
||||||
|
|
||||||
HostMutex *m_mutex;
|
HostMutex *m_mutex;
|
||||||
HostThreadEvent *m_threadEvent;
|
HostThreadEvent *m_threadEvent;
|
||||||
@@ -83,7 +84,7 @@ namespace PortabilityLayer
|
|||||||
bool m_isIdle;
|
bool m_isIdle;
|
||||||
};
|
};
|
||||||
|
|
||||||
AudioChannelImpl::AudioChannelImpl(PortabilityLayer::HostAudioChannel *channel, HostThreadEvent *threadEvent, HostMutex *mutex)
|
AudioChannelImpl::AudioChannelImpl(IGpAudioChannel *channel, HostThreadEvent *threadEvent, HostMutex *mutex)
|
||||||
: m_audioChannel(channel)
|
: m_audioChannel(channel)
|
||||||
, m_threadEvent(threadEvent)
|
, m_threadEvent(threadEvent)
|
||||||
, m_mutex(mutex)
|
, m_mutex(mutex)
|
||||||
@@ -93,7 +94,7 @@ namespace PortabilityLayer
|
|||||||
, m_state(State_Idle)
|
, m_state(State_Idle)
|
||||||
, m_isIdle(false)
|
, m_isIdle(false)
|
||||||
{
|
{
|
||||||
m_audioChannel->SetClientAudioChannelContext(this);
|
m_audioChannel->SetAudioChannelContext(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
AudioChannelImpl::~AudioChannelImpl()
|
AudioChannelImpl::~AudioChannelImpl()
|
||||||
@@ -357,8 +358,8 @@ namespace PortabilityLayer
|
|||||||
if (!storage)
|
if (!storage)
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
||||||
PortabilityLayer::HostAudioDriver *audioDriver = PortabilityLayer::HostAudioDriver::GetInstance();
|
IGpAudioDriver *audioDriver = PortabilityLayer::HostAudioDriver::GetInstance();
|
||||||
PortabilityLayer::HostAudioChannel *audioChannel = audioDriver->CreateChannel();
|
IGpAudioChannel *audioChannel = audioDriver->CreateChannel();
|
||||||
if (!audioChannel)
|
if (!audioChannel)
|
||||||
{
|
{
|
||||||
mm->Release(storage);
|
mm->Release(storage);
|
||||||
|
|||||||
@@ -147,7 +147,6 @@
|
|||||||
<ClInclude Include="ByteSwap.h" />
|
<ClInclude Include="ByteSwap.h" />
|
||||||
<ClInclude Include="ByteUnpack.h" />
|
<ClInclude Include="ByteUnpack.h" />
|
||||||
<ClInclude Include="CFileStream.h" />
|
<ClInclude Include="CFileStream.h" />
|
||||||
<ClInclude Include="ClientAudioChannelContext.h" />
|
|
||||||
<ClInclude Include="DataTypes.h" />
|
<ClInclude Include="DataTypes.h" />
|
||||||
<ClInclude Include="DeflateCodec.h" />
|
<ClInclude Include="DeflateCodec.h" />
|
||||||
<ClInclude Include="DialogManager.h" />
|
<ClInclude Include="DialogManager.h" />
|
||||||
@@ -161,7 +160,6 @@
|
|||||||
<ClInclude Include="FontRenderer.h" />
|
<ClInclude Include="FontRenderer.h" />
|
||||||
<ClInclude Include="GpAppInterface.h" />
|
<ClInclude Include="GpAppInterface.h" />
|
||||||
<ClInclude Include="GPArchive.h" />
|
<ClInclude Include="GPArchive.h" />
|
||||||
<ClInclude Include="HostAudioChannel.h" />
|
|
||||||
<ClInclude Include="HostAudioDriver.h" />
|
<ClInclude Include="HostAudioDriver.h" />
|
||||||
<ClInclude Include="HostDirectoryCursor.h" />
|
<ClInclude Include="HostDirectoryCursor.h" />
|
||||||
<ClInclude Include="HostFont.h" />
|
<ClInclude Include="HostFont.h" />
|
||||||
|
|||||||
@@ -285,15 +285,9 @@
|
|||||||
<ClInclude Include="HostAudioDriver.h">
|
<ClInclude Include="HostAudioDriver.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="ClientAudioChannelContext.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="HostMutex.h">
|
<ClInclude Include="HostMutex.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="HostAudioChannel.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="HostThreadEvent.h">
|
<ClInclude Include="HostThreadEvent.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
|||||||
Reference in New Issue
Block a user