Merge pull request #90 from gizmo98/patch-2
[libretro-ppsspp.git] / Core / Host.h
blob58ef4739ad839976f0102feb7a61b3a1c7381473
1 // Copyright (c) 2012- PPSSPP Project.
3 // This program is free software: you can redistribute it and/or modify
4 // it under the terms of the GNU General Public License as published by
5 // the Free Software Foundation, version 2.0 or later versions.
7 // This program is distributed in the hope that it will be useful,
8 // but WITHOUT ANY WARRANTY; without even the implied warranty of
9 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 // GNU General Public License 2.0 for more details.
12 // A copy of the GPL 2.0 should have been included with the program.
13 // If not, see http://www.gnu.org/licenses/
15 // Official git repository and contact information can be found at
16 // https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/.
18 #pragma once
20 #include <string>
21 #include "Common/CommonTypes.h"
23 struct InputState;
25 class Host {
26 public:
27 virtual ~Host() {}
28 //virtual void StartThread()
29 virtual void UpdateUI() {}
31 virtual void UpdateMemView() {}
32 virtual void UpdateDisassembly() {}
34 virtual void SetDebugMode(bool mode) { }
36 virtual bool InitGraphics(std::string *error_string) = 0;
37 virtual void ShutdownGraphics() = 0;
39 virtual void InitSound() = 0;
40 virtual void UpdateSound() {}
41 virtual void UpdateScreen() {}
42 virtual void GoFullscreen(bool) {}
43 virtual void ShutdownSound() = 0;
44 virtual void PollControllers(InputState &input_state) {}
45 virtual void ToggleDebugConsoleVisibility() {}
47 //this is sent from EMU thread! Make sure that Host handles it properly!
48 virtual void BootDone() {}
50 virtual bool IsDebuggingEnabled() {return true;}
51 virtual bool AttemptLoadSymbolMap();
52 virtual void SaveSymbolMap() {}
53 virtual void SetWindowTitle(const char *message) {}
55 virtual void SendCoreWait(bool) {}
57 // While debugging is active, it's perfectly fine for these to block.
58 virtual bool GPUDebuggingActive() { return false; }
59 virtual void GPUNotifyCommand(u32 pc) {}
60 virtual void GPUNotifyDisplay(u32 framebuf, u32 stride, int format) {}
61 virtual void GPUNotifyDraw() {}
62 virtual void GPUNotifyTextureAttachment(u32 addr) {}
64 virtual bool CanCreateShortcut() {return false;}
65 virtual bool CreateDesktopShortcut(std::string argumentPath, std::string title) {return false;}
67 // Used for headless.
68 virtual bool ShouldSkipUI() { return false; }
69 virtual void SendDebugOutput(const std::string &output) {}
70 virtual void SendDebugScreenshot(const u8 *pixbuf, u32 w, u32 h) {}
73 extern Host *host;