X-Git-Url: http://git.tdb.fi/?p=libs%2Fcore.git;a=blobdiff_plain;f=source%2Fcore%2Fandroid%2Fmainthread.h;h=ab587ff0e879f8cc3cee12309c000255d2b8a7eb;hp=9d139bc5863f5c0e4a0adac443b969f02eac3ea1;hb=991fabc1956b73a4007859058fb44171000b452e;hpb=211c503e709ffa8bec7b71b8004ecdeadf776c4c diff --git a/source/core/android/mainthread.h b/source/core/android/mainthread.h index 9d139bc..ab587ff 100644 --- a/source/core/android/mainthread.h +++ b/source/core/android/mainthread.h @@ -2,6 +2,9 @@ #define MSP_CORE_ANDROID_MAINTHREAD_H_ #include +#include +#include +#include "mutex.h" #include "thread.h" namespace Msp { @@ -9,14 +12,45 @@ namespace Android { class MainThread: public Thread { +public: + sigc::signal signal_native_window_created; + sigc::signal signal_native_window_resized; + sigc::signal signal_native_window_destroyed; + sigc::signal signal_input_queue_created; + sigc::signal signal_input_queue_destroyed; + private: - ANativeActivity *activity; + ANativeActivity *activity = nullptr; + AAssetManager *asset_manager = nullptr; + FS::Path int_data_path; + bool starting_up = true; + 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(); + + JavaVM *get_java_vm() const; + 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(); + void main() override; + + 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