yaze 0.2.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
controller.h
Go to the documentation of this file.
1#ifndef YAZE_APP_CORE_CONTROLLER_H
2#define YAZE_APP_CORE_CONTROLLER_H
3
4#include <SDL.h>
5
6#include <memory>
7
8#include "absl/status/status.h"
11#include "app/editor/editor.h"
13#include "imgui/backends/imgui_impl_sdl2.h"
14#include "imgui/backends/imgui_impl_sdlrenderer2.h"
15#include "imgui/imconfig.h"
16#include "imgui/imgui.h"
17
18int main(int argc, char **argv);
19
20namespace yaze {
21namespace core {
22
30 public:
31 bool IsActive() const { return active_; }
32 absl::Status OnEntry(std::string filename = "");
33 void OnInput();
34 absl::Status OnLoad();
35 absl::Status OnTestLoad();
36 void DoRender() const;
37 void OnExit();
38
39 absl::Status CreateWindow();
40 absl::Status CreateRenderer();
41 absl::Status CreateGuiContext();
42 absl::Status LoadFontFamilies() const;
43 absl::Status LoadAudioDevice();
44 absl::Status LoadConfigFiles();
45
46 void SetupScreen(std::string filename = "") {
47 editor_manager_.Initialize(filename);
48 }
50 auto renderer() -> SDL_Renderer * {
52 }
53 auto window() -> SDL_Window * { return window_.get(); }
55 void set_active(bool active) { active_ = active; }
56 auto active() const { return active_; }
57
58 private:
59 friend int ::main(int argc, char **argv);
60
61 bool active_ = false;
65
66 int audio_frequency_ = 48000;
67 SDL_AudioDeviceID audio_device_;
68 std::shared_ptr<int16_t> audio_buffer_;
69 std::shared_ptr<SDL_Window> window_;
70};
71
72} // namespace core
73} // namespace yaze
74
75#endif // YAZE_APP_CORE_CONTROLLER_H
Main controller for the application.
Definition controller.h:29
absl::Status OnLoad()
Definition controller.cc:91
absl::Status CreateWindow()
absl::Status LoadAudioDevice()
auto window() -> SDL_Window *
Definition controller.h:53
auto active() const
Definition controller.h:56
bool IsActive() const
Definition controller.h:31
SDL_AudioDeviceID audio_device_
Definition controller.h:67
absl::Status CreateGuiContext()
void set_active(bool active)
Definition controller.h:55
absl::Status LoadFontFamilies() const
auto editor_manager() -> editor::EditorManager &
Definition controller.h:49
absl::Status OnTestLoad()
auto renderer() -> SDL_Renderer *
Definition controller.h:50
absl::Status OnEntry(std::string filename="")
Definition controller.cc:21
void SetupScreen(std::string filename="")
Definition controller.h:46
editor::EditorManager editor_manager_
Definition controller.h:64
std::shared_ptr< SDL_Window > window_
Definition controller.h:69
void init_test_editor(editor::Editor *editor)
Definition controller.h:54
absl::Status CreateRenderer()
editor::Editor * test_editor_
Definition controller.h:63
absl::Status LoadConfigFiles()
std::shared_ptr< int16_t > audio_buffer_
Definition controller.h:68
static Renderer & GetInstance()
Definition renderer.h:26
auto renderer() -> SDL_Renderer *
Definition renderer.h:43
The EditorManager controls the main editor window and manages the various editor classes.
Interface for editor classes.
Definition editor.h:49
int main(int argc, char **argv)
Definition emu.cc:20
Editors are the view controllers for the application.
Main namespace for the application.
Definition controller.cc:18