Add connection status overlay for DXVA2 and SDL

This commit is contained in:
Cameron Gutman
2019-03-17 15:08:21 -07:00
parent 9a6f5ba1a8
commit c75b9c9221
9 changed files with 186 additions and 95 deletions

View File

@@ -39,7 +39,8 @@ CONNECTION_LISTENER_CALLBACKS Session::k_ConnCallbacks = {
nullptr,
nullptr,
Session::clLogMessage,
Session::clRumble
Session::clRumble,
Session::clConnectionStatusUpdate
};
AUDIO_RENDERER_CALLBACKS Session::k_AudioCallbacks = {
@@ -114,6 +115,21 @@ void Session::clRumble(unsigned short controllerNumber, unsigned short lowFreqMo
SDL_AtomicUnlock(&s_ActiveSession->m_InputHandlerLock);
}
void Session::clConnectionStatusUpdate(int connectionStatus)
{
switch (connectionStatus)
{
case CONN_STATUS_POOR:
strcpy(s_ActiveSession->m_OverlayManager.getOverlayText(Overlay::OverlayStatusUpdate), "Poor network connection");
s_ActiveSession->m_OverlayManager.setOverlayTextUpdated(Overlay::OverlayStatusUpdate);
s_ActiveSession->m_OverlayManager.setOverlayState(Overlay::OverlayStatusUpdate, true);
break;
case CONN_STATUS_OKAY:
s_ActiveSession->m_OverlayManager.setOverlayState(Overlay::OverlayStatusUpdate, false);
break;
}
}
#define CALL_INITIALIZE(dec) (dec)->initialize(vds, window, videoFormat, width, height, frameRate, enableVsync, enableFramePacing)
bool Session::chooseDecoder(StreamingPreferences::VideoDecoderSelection vds,