~ppsspp/ppsspp/ppsspp_1.3.0

« back to all changes in this revision

Viewing changes to Core/Host.h

  • Committer: Sérgio Benjamim
  • Date: 2017-01-02 00:12:05 UTC
  • Revision ID: sergio_br2@yahoo.com.br-20170102001205-cxbta9za203nmjwm
1.3.0 source (from ppsspp_1.3.0-r160.p5.l1762.a165.t83~56~ubuntu16.04.1.tar.xz).

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
// Copyright (c) 2012- PPSSPP Project.
 
2
 
 
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.
 
6
 
 
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.
 
11
 
 
12
// A copy of the GPL 2.0 should have been included with the program.
 
13
// If not, see http://www.gnu.org/licenses/
 
14
 
 
15
// Official git repository and contact information can be found at
 
16
// https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/.
 
17
 
 
18
#pragma once
 
19
 
 
20
#include <string>
 
21
#include "Common/CommonTypes.h"
 
22
 
 
23
struct InputState;
 
24
class GraphicsContext;
 
25
 
 
26
// TODO: Whittle this down. Collecting a bunch of random stuff like this isn't good design :P
 
27
class Host {
 
28
public:
 
29
        virtual ~Host() {}
 
30
        virtual void UpdateUI() {}
 
31
 
 
32
        virtual void UpdateMemView() {}
 
33
        virtual void UpdateDisassembly() {}
 
34
 
 
35
        virtual void SetDebugMode(bool mode) { }
 
36
 
 
37
        virtual bool InitGraphics(std::string *error_string, GraphicsContext **ctx) = 0;
 
38
        virtual void ShutdownGraphics() = 0;
 
39
 
 
40
        virtual void InitSound() = 0;
 
41
        virtual void UpdateSound() {}
 
42
        virtual void GoFullscreen(bool) {}
 
43
        virtual void ShutdownSound() = 0;
 
44
        virtual void PollControllers(InputState &input_state) {}
 
45
        virtual void ToggleDebugConsoleVisibility() {}
 
46
 
 
47
        //this is sent from EMU thread! Make sure that Host handles it properly!
 
48
        virtual void BootDone() {}
 
49
 
 
50
        virtual bool IsDebuggingEnabled() {return true;}
 
51
        virtual bool AttemptLoadSymbolMap();
 
52
        virtual void SaveSymbolMap() {}
 
53
        virtual void SetWindowTitle(const char *message) {}
 
54
 
 
55
        virtual void SendCoreWait(bool) {}
 
56
 
 
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) {}
 
63
 
 
64
        virtual bool CanCreateShortcut() {return false;}
 
65
        virtual bool CreateDesktopShortcut(std::string argumentPath, std::string title) {return false;}
 
66
 
 
67
        virtual void NotifyUserMessage(const std::string &message, float duration = 1.0f, u32 color = 0x00FFFFFF, const char *id = nullptr) {}
 
68
 
 
69
        // Used for headless.
 
70
        virtual bool ShouldSkipUI() { return false; }
 
71
        virtual void SendDebugOutput(const std::string &output) {}
 
72
        virtual void SendDebugScreenshot(const u8 *pixbuf, u32 w, u32 h) {}
 
73
};
 
74
 
 
75
extern Host *host;