Mesen/Libretro/LibretroMessageManager.h

38 lines
906 B
C
Raw Permalink Normal View History

2018-01-04 19:03:47 -05:00
#pragma once
#include "libretro.h"
#include "../Core/IMessageManager.h"
#include "../Core/MessageManager.h"
class LibretroMessageManager : public IMessageManager
{
private:
retro_log_printf_t _log = nullptr;
retro_environment_t _retroEnv = nullptr;
2018-01-04 19:03:47 -05:00
public:
LibretroMessageManager(retro_log_printf_t logCallback, retro_environment_t retroEnv)
2018-01-04 19:03:47 -05:00
{
_log = logCallback;
_retroEnv = retroEnv;
2018-01-04 19:03:47 -05:00
MessageManager::RegisterMessageManager(this);
}
2018-12-31 09:43:00 -05:00
virtual ~LibretroMessageManager()
2018-01-04 19:03:47 -05:00
{
MessageManager::RegisterMessageManager(nullptr);
}
// Inherited via IMessageManager
virtual void DisplayMessage(string title, string message) override
{
if(title.empty()) {
if(_log) {
_log(RETRO_LOG_INFO, message.c_str());
}
} else {
string osdMessage = "[" + title + "] " + message;
retro_message msg = { osdMessage.c_str(), 180 };
_retroEnv(RETRO_ENVIRONMENT_SET_MESSAGE, &msg);
2018-01-04 19:03:47 -05:00
}
}
};