summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcus Fritzsch <marcus_fritzsch@mentor.com>2017-09-12 11:29:37 +0200
committerMarcus Fritzsch <marcus_fritzsch@mentor.com>2017-09-12 11:29:37 +0200
commit78d6f15eadfdc6d2d4a166e0e559ebad0a34723e (patch)
treeb0aeca2557da7adff53d6a6d1ee92031f05c4a33
parent6a10feaafbe80f7c3738535dfd7ca97f00e1f405 (diff)
App: make a couple of methods private to signal internal use
Signed-off-by: Marcus Fritzsch <marcus_fritzsch@mentor.com>
-rw-r--r--src/afb_binding_api.cpp2
-rw-r--r--src/app.cpp21
-rw-r--r--src/app.hpp33
3 files changed, 35 insertions, 21 deletions
diff --git a/src/afb_binding_api.cpp b/src/afb_binding_api.cpp
index cdd1a19..9fd2430 100644
--- a/src/afb_binding_api.cpp
+++ b/src/afb_binding_api.cpp
@@ -107,7 +107,7 @@ binding_api::result_type binding_api::debug_terminate() {
}
binding_api::result_type binding_api::ping() {
- this->app->dispatch_pending_events();
+ this->app->api_ping();
return Ok(json_object_new_object());
}
diff --git a/src/app.cpp b/src/app.cpp
index e58c85d..cf7b6be 100644
--- a/src/app.cpp
+++ b/src/app.cpp
@@ -169,6 +169,23 @@ int App::dispatch_pending_events() {
return -1;
}
+bool App::pop_pending_events() {
+ bool x{true};
+ return this->pending_events.compare_exchange_strong(
+ x, false, std::memory_order_consume);
+}
+
+void App::set_pending_events() {
+ this->pending_events.store(true, std::memory_order_release);
+}
+
+optional<int> App::lookup_id(char const *name) {
+ return this->id_alloc.lookup(std::string(name));
+}
+optional<std::string> App::lookup_name(int id) {
+ return this->id_alloc.lookup(id);
+}
+
// _ _ _ _ _ ____
// (_)_ __ (_) |_ | | __ _ _ _ ___ _ _| |_ / /\ \
// | | '_ \| | __| | |/ _` | | | |/ _ \| | | | __| | | |
@@ -587,6 +604,10 @@ char const *App::api_enddraw(char const *drawing_name) {
return "No EndDraw pending for surface";
}
+void App::api_ping() {
+ this->dispatch_pending_events();
+}
+
// _ _ _____ _
// _ __ _ __ _____ _(_) ___ __| | | ____|_ _____ _ __ | |_ ___
// | '_ \| '__/ _ \ \/ / |/ _ \/ _` | | _| \ \ / / _ \ '_ \| __/ __|
diff --git a/src/app.hpp b/src/app.hpp
index 5ef7ab4..6e18855 100644
--- a/src/app.hpp
+++ b/src/app.hpp
@@ -120,27 +120,11 @@ struct App {
// ID allocation and proxy methods for lookup
struct id_allocator id_alloc;
- optional<int> lookup_id(char const *name) {
- return this->id_alloc.lookup(std::string(name));
- }
- optional<std::string> lookup_name(int id) {
- return this->id_alloc.lookup(id);
- }
// Set by AFB API when wayland events need to be dispatched
std::atomic<bool> pending_events;
- void set_pending_events() {
- this->pending_events.store(true, std::memory_order_release);
- }
- bool pop_pending_events() {
- bool x{true};
- return this->pending_events.compare_exchange_strong(
- x, false, std::memory_order_consume);
- }
std::vector<int> pending_end_draw;
- void enqueue_flushdraw(int surface_id);
- void check_flushdraw(int surface_id);
explicit App(wl::display *d);
~App();
@@ -151,26 +135,35 @@ struct App {
App &operator=(App &&) = delete;
int init();
- int init_layers();
int dispatch_events();
int dispatch_pending_events();
void surface_set_layout_full(uint32_t surface_id);
void surface_set_layout_split(uint32_t surface_id, uint32_t sub_surface_id);
+ void set_pending_events();
- // Allocate a surface ID for this role
result<int> api_request_surface(char const *drawing_name);
-
- // Activate (i.e. make visible, if allowed!) a surface
char const *api_activate_surface(char const *drawing_name);
char const *api_deactivate_surface(char const *drawing_name);
char const *api_enddraw(char const *drawing_name);
+ void api_ping();
// Events from the compositor we are interested in
void surface_created(uint32_t surface_id);
void surface_removed(uint32_t surface_id);
+private:
+ optional<int> lookup_id(char const *name);
+ optional<std::string> lookup_name(int id);
+
+ bool pop_pending_events();
+
+ void enqueue_flushdraw(int surface_id);
+ void check_flushdraw(int surface_id);
+
+ int init_layers();
+
// TMC WM Events to clients
void emit_activated(char const *label);
void emit_deactivated(char const *label);