]> git.tdb.fi Git - libs/core.git/blobdiff - source/core/android/mainthread.h
Expose window flags and set fullscreen mode by default
[libs/core.git] / source / core / android / mainthread.h
index 9d139bc5863f5c0e4a0adac443b969f02eac3ea1..22309eee3d3d2ca47584573210ebb7a8935f7234 100644 (file)
@@ -2,6 +2,9 @@
 #define MSP_CORE_ANDROID_MAINTHREAD_H_
 
 #include <android/native_activity.h>
+#include <sigc++/signal.h>
+#include <msp/fs/path.h>
+#include "mutex.h"
 #include "thread.h"
 
 namespace Msp {
@@ -9,14 +12,44 @@ namespace Android {
 
 class MainThread: public Thread
 {
+public:
+       sigc::signal<void, ANativeWindow *> signal_native_window_created;
+       sigc::signal<void, ANativeWindow *> signal_native_window_resized;
+       sigc::signal<void, ANativeWindow *> signal_native_window_destroyed;
+       sigc::signal<void, AInputQueue *> signal_input_queue_created;
+       sigc::signal<void, AInputQueue *> signal_input_queue_destroyed;
+
 private:
        ANativeActivity *activity;
+       AAssetManager *asset_manager;
+       FS::Path int_data_path;
+       bool starting_up;
+       Mutex startup_mutex;
 
 public:
        MainThread(ANativeActivity *);
 
+       void attach_to_activity(ANativeActivity *);
+       bool is_starting_up() const { return starting_up; }
+       void wait_for_app_created();
+       void resume_startup();
+
+       AAssetManager *get_asset_manager() const { return asset_manager; }
+       const FS::Path &get_internal_data_path() const { return int_data_path; }
+
+       void set_window_flags(unsigned, unsigned);
+
 private:
        virtual void main();
+
+       static void app_created(void *);
+       static void activity_destroyed(ANativeActivity *);
+       static void native_window_created(ANativeActivity *, ANativeWindow *);
+       static void native_window_resized(ANativeActivity *, ANativeWindow *);
+       static void native_window_destroyed(ANativeActivity *, ANativeWindow *);
+       static void input_queue_created(ANativeActivity *, AInputQueue *);
+       static void input_queue_destroyed(ANativeActivity *, AInputQueue *);
+       static void end_process(ANativeActivity *);
 };
 
 } // namespace Android