aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTadao Tanikawa <tanikawa.tadao@jp.panasonic.com>2017-12-11 20:39:21 +0900
committerTadao Tanikawa <tanikawa.tadao@jp.panasonic.com>2017-12-11 20:39:21 +0900
commit9f9abc58011121722a82759124d061a645cee112 (patch)
treee0c2c0fe27fefaa755ecd238e03e41855e72c203
parent6aaba1066fe89f324d4bae67497f4035fe997d5f (diff)
Revert "Add APIs which can get information of display and area"
This reverts commit 6aaba1066fe89f324d4bae67497f4035fe997d5f. To fix double posts to Gerrit Review and repository directly. Signed-off-by: Tadao Tanikawa <tanikawa.tadao@jp.panasonic.com>
-rw-r--r--doc/ApplicationGuide.md59
-rw-r--r--generate-binding-glue.py10
-rw-r--r--src/afb_binding_api.cpp17
-rw-r--r--src/app.cpp106
-rw-r--r--src/app.hpp20
-rwxr-xr-x[-rw-r--r--]src/main.cpp13
-rw-r--r--src/wayland.cpp3
-rw-r--r--src/wayland.hpp5
8 files changed, 16 insertions, 217 deletions
diff --git a/doc/ApplicationGuide.md b/doc/ApplicationGuide.md
index d66f20b..7888292 100644
--- a/doc/ApplicationGuide.md
+++ b/doc/ApplicationGuide.md
@@ -517,10 +517,6 @@ This is the public interface of the class `LibWindowmanager`.
int activateSurface(json_object *object);
int deactivateSurface(json_object *object);
int endDraw(json_object *object);
- int getDisplayInfo(json_object *object);
- int getAreaInfo(json_object *in_obj, json_object *out_obj);
-
- int getAreaInfo(const char *label, json_object *out_obj);
void set_event_handler(enum EventType et, handler_fun f);
@@ -584,56 +580,6 @@ It is not crucial to make this call at every time a drawing is finished
drawing in case of layout switch. The exact semantics are explained in
the next [Events](#_events) Section.
-### getDisplayInfo(json_object *object)
-
-**args: `{ }`**
-This function gets the display information as follows:
- - width[pixel]
- - height[pixel]
- - width[mm]
- - height[mm]
-
-It outputs the display information for json_object in the argument as follows:
- `{"width_pixel": int value of width[pixel], "height_pixel": int value of height[pixel],
- "width_mm": int value of width[mm], "height_mm": int value of height[mm]}`
-
-It should be called after calling init().
-It should not be called in the event handler because it occurs hang-up.
-
-#### NOTE
-It uses wl_output::geometry() for getting physical width[mm] and height[mm] of the display,
-but the value is different with measured value.
-
- - value from wl_output::geometry(): width:320 height:520
- - measured value : width:193 height:343
-
-### getAreaInfo(json_object *in_obj, json_object *out_obj)
-
-**args1: `{ 'kKeyDrawingName': 'application name' }`**
-**args2: `{ }`**
-This function gets the information of area drawn by the application as follows:
- - x-coordinate
- - y-coordinate
- - width
- - height
-
-It outputs the area information for json_object in the 2nd argument as follows:
- `{"x": int value of x-coordinate, "y": int value of y-coordinate,
- "width": int value of width, "height": int value of height}`
-
-It should be called after calling activateSurface().
-It should not be called in the event handler because it occurs hang-up.
-
-#### NOTE
-The same information can given by SyncDraw event.
-
-### getAreaInfo(const char *label, json_object *out_obj)
-
-**args1: String of application name**
-**args2: `{ }`**
-This function is same with `getAreaInfo(json_object *in_obj, json_object *out_obj)`,
-but only has difference of 1st argument.
-
### set\_event\_handler(enum EventType et, handler_fun f)
This method needs to be used to register event handlers for the WM
@@ -759,14 +705,11 @@ contents - again, this is handled implicitly by the wayland protocol.
that is *signal* the compositor that its surface contains new content.
- `SyncDraw(json_object *object)`
- args: { 'kKeyDrawingName': 'application name', 'kKeyDrawingArea': 'layout',
- 'kKeyDrawingRect': { "x": int value of x-coordinate, "y": int value of y-coordinate,
- "width": int value of width, "height": int value of height } }
+ args: { 'kKeyDrawingName': 'application name', 'kKeyDrawingArea': 'layout' }
Signal applications, that the
surface with name `kKeyDrawingArea` needs to redraw its content
in the layout with name `kKeyDrawingArea` - this
usually is sent when the surface geometry changed.
- And the area position and size are included with name `kKeyDrawingRect`.
- `FlushDraw(json_object *object)`
args: { 'kKeyDrawingName': 'application name' }
diff --git a/generate-binding-glue.py b/generate-binding-glue.py
index 790ef40..376350a 100644
--- a/generate-binding-glue.py
+++ b/generate-binding-glue.py
@@ -112,7 +112,7 @@ def emit_afb_api(api):
p(' typedef wm::result<json_object *> result_type;')
p(' struct wm::App *app;')
p(' void send_event(char const *evname, char const *label);')
- p(' void send_event(char const *evname, char const *label, char const *area, int x, int y, int w, int h);')
+ p(' void send_event(char const *evname, char const *label, char const *area);')
for f in api['functions']:
p(' result_type %(name)s(' % f + ', '.join(map(lambda x: '%(type)s %(name)s' % x, f.get('args', []))) + ');')
p('};', '')
@@ -151,14 +151,6 @@ API = {
{ 'name': 'drawing_name', 'type': 'char const*', 'jtype': 'string' },
],
},
-
- { 'name': 'getdisplayinfo', },
- {
- 'name': 'getareainfo',
- 'args': [
- { 'name': 'drawing_name', 'type': 'char const*', 'jtype': 'string' },
- ],
- },
{ 'name': 'wm_subscribe', },
{ 'name': 'list_drawing_names', },
diff --git a/src/afb_binding_api.cpp b/src/afb_binding_api.cpp
index 825bc99..3c75524 100644
--- a/src/afb_binding_api.cpp
+++ b/src/afb_binding_api.cpp
@@ -69,23 +69,6 @@ binding_api::result_type binding_api::enddraw(char const* drawing_name) {
return Ok(json_object_new_object());
}
-binding_api::result_type binding_api::getdisplayinfo() {
- auto r = this->app->api_get_display_info();
- if (r.is_err()) {
- return Err<json_object *>(r.unwrap_err());
- }
- return Ok(r.unwrap());
-}
-
-binding_api::result_type binding_api::getareainfo(
- char const *drawing_name) {
- auto r = this->app->api_get_area_info(drawing_name);
- if (r.is_err()) {
- return Err<json_object *>(r.unwrap_err());
- }
- return Ok(r.unwrap());
-}
-
binding_api::result_type binding_api::list_drawing_names() {
HMI_DEBUG("wm", "%s", __func__);
json j = this->app->id_alloc.name2id;
diff --git a/src/app.cpp b/src/app.cpp
index 39ccfa8..307217e 100644
--- a/src/app.cpp
+++ b/src/app.cpp
@@ -209,8 +209,6 @@ int App::init_layers() {
// Write output dimensions to ivi controller...
c->output_size = compositor::size{uint32_t(o->width), uint32_t(o->height)};
- c->physical_size = compositor::size{uint32_t(o->physical_width),
- uint32_t(o->physical_height)};
// Clear scene
layers.clear();
@@ -301,10 +299,6 @@ void App::surface_set_layout(int surface_id, optional<int> sub_surface_id) {
// set destination to the display rectangle
ss->set_destination_rectangle(x + x_off, y + y_off, w, h);
- this->area_info[*sub_surface_id].x = x;
- this->area_info[*sub_surface_id].y = y;
- this->area_info[*sub_surface_id].w = w;
- this->area_info[*sub_surface_id].h = h;
}
HMI_DEBUG("wm", "surface_set_layout for surface %u on layer %u", surface_id,
@@ -318,12 +312,6 @@ void App::surface_set_layout(int surface_id, optional<int> sub_surface_id) {
// set destination to the display rectangle
s->set_destination_rectangle(x, y, w, h);
- // update area information
- this->area_info[surface_id].x = x;
- this->area_info[surface_id].y = y;
- this->area_info[surface_id].w = w;
- this->area_info[surface_id].h = h;
-
HMI_DEBUG("wm", "Surface %u now on layer %u with rect { %d, %d, %d, %d }",
surface_id, layer_id, x, y, w, h);
}
@@ -405,9 +393,7 @@ char const *App::api_activate_surface(char const *drawing_name, char const *draw
}
std::string str_area = std::string(kNameLayoutNormal) + "." + std::string(kNameAreaFull);
- compositor::rect area_rect = this->area_info[*surface_id];
- this->emit_syncdraw(drawing_name, str_area.c_str(),
- area_rect.x, area_rect.y, area_rect.w, area_rect.h);
+ this->emit_syncdraw(drawing_name, str_area.c_str());
this->enqueue_flushdraw(state.main);
});
} else {
@@ -416,9 +402,7 @@ char const *App::api_activate_surface(char const *drawing_name, char const *draw
state, LayoutState{*surface_id}, [&] (LayoutState const &nl) {
HMI_DEBUG("wm", "Layout: %s", kNameLayoutNormal);
std::string str_area = std::string(kNameLayoutNormal) + "." + std::string(kNameAreaFull);
- compositor::rect area_rect = this->area_info[*surface_id];
- this->emit_syncdraw(drawing_name, str_area.c_str(),
- area_rect.x, area_rect.y, area_rect.w, area_rect.h);
+ this->emit_syncdraw(drawing_name, str_area.c_str());
this->enqueue_flushdraw(state.main);
});
} else {
@@ -441,7 +425,7 @@ char const *App::api_activate_surface(char const *drawing_name, char const *draw
}
state = nl;
- // Commit for configuration and visibility(0)
+ // Commit for configuraton and visibility(0)
this->layout_commit();
// Wait for configuration listener
@@ -452,14 +436,8 @@ char const *App::api_activate_surface(char const *drawing_name, char const *draw
std::string str_area_main = std::string(kNameLayoutSplit) + "." + std::string(kNameAreaMain);
std::string str_area_sub = std::string(kNameLayoutSplit) + "." + std::string(kNameAreaSub);
- compositor::rect area_rect_main = this->area_info[state.main];
- compositor::rect area_rect_sub = this->area_info[*surface_id];
- this->emit_syncdraw(main.c_str(), str_area_main.c_str(),
- area_rect_main.x, area_rect_main.y,
- area_rect_main.w, area_rect_main.h);
- this->emit_syncdraw(drawing_name, str_area_sub.c_str(),
- area_rect_sub.x, area_rect_sub.y,
- area_rect_sub.w, area_rect_sub.h);
+ this->emit_syncdraw(main.c_str(), str_area_main.c_str());
+ this->emit_syncdraw(drawing_name, str_area_sub.c_str());
this->enqueue_flushdraw(state.main);
this->enqueue_flushdraw(state.sub);
});
@@ -491,9 +469,7 @@ char const *App::api_activate_surface(char const *drawing_name, char const *draw
}
std::string str_area = std::string(kNameLayoutNormal) + "." + std::string(kNameAreaFull);
- compositor::rect area_rect = this->area_info[*surface_id];
- this->emit_syncdraw(drawing_name, str_area.c_str(),
- area_rect.x, area_rect.y, area_rect.w, area_rect.h);
+ this->emit_syncdraw(drawing_name, str_area.c_str());
this->enqueue_flushdraw(state.main);
});
}
@@ -546,9 +522,7 @@ char const *App::api_deactivate_surface(char const *drawing_name) {
this->layout_commit();
std::string str_area = std::string(kNameLayoutNormal) + "." + std::string(kNameAreaFull);
- compositor::rect area_rect = this->area_info[state.sub];
- this->emit_syncdraw(sub.c_str(), str_area.c_str(),
- area_rect.x, area_rect.y, area_rect.w, area_rect.h);
+ this->emit_syncdraw(sub.c_str(), str_area.c_str());
this->enqueue_flushdraw(state.sub);
});
} else {
@@ -569,9 +543,7 @@ char const *App::api_deactivate_surface(char const *drawing_name) {
this->layout_commit();
std::string str_area = std::string(kNameLayoutNormal) + "." + std::string(kNameAreaFull);
- compositor::rect area_rect = this->area_info[state.main];
- this->emit_syncdraw(main.c_str(), str_area.c_str(),
- area_rect.x, area_rect.y, area_rect.w, area_rect.h);
+ this->emit_syncdraw(main.c_str(), str_area.c_str());
this->enqueue_flushdraw(state.main);
});
} else {
@@ -669,8 +641,8 @@ void App::emit_deactivated(char const *label) {
this->api.send_event(kListEventName[Event_Inactive], label);
}
-void App::emit_syncdraw(char const *label, char const *area, int x, int y, int w, int h) {
- this->api.send_event(kListEventName[Event_SyncDraw], label, area, x, y, w, h);
+void App::emit_syncdraw(char const *label, char const *area) {
+ this->api.send_event(kListEventName[Event_SyncDraw], label, area);
}
void App::emit_flushdraw(char const *label) {
@@ -714,64 +686,6 @@ result<int> App::api_request_surface(char const *drawing_name) {
return Err<int>("Surface already present");
}
-result<json_object *> App::api_get_display_info() {
- // Check controller
- if (!this->controller) {
- return Err<json_object *>("ivi_controller global not available");
- }
-
- // Set display info
- compositor::size o_size = this->controller->output_size;
- compositor::size p_size = this->controller->physical_size;
-
- json_object *object = json_object_new_object();
- json_object_object_add(object, kKeyWidthPixel, json_object_new_int(o_size.w));
- json_object_object_add(object, kKeyHeightPixel, json_object_new_int(o_size.h));
- json_object_object_add(object, kKeyWidthMm, json_object_new_int(p_size.w));
- json_object_object_add(object, kKeyHeightMm, json_object_new_int(p_size.h));
-
- return Ok<json_object *>(object);
-}
-
-result<json_object *> App::api_get_area_info(char const *drawing_name) {
- HMI_DEBUG("wm", "called");
-
- // Check drawing name, surface/layer id
- auto const &surface_id = this->lookup_id(drawing_name);
- if (!surface_id) {
- return Err<json_object *>("Surface does not exist");
- }
-
- if (!this->controller->surface_exists(*surface_id)) {
- return Err<json_object *>("Surface does not exist in controller!");
- }
-
- auto layer_id = this->layers.get_layer_id(*surface_id);
- if (!layer_id) {
- return Err<json_object *>("Surface is not on any layer!");
- }
-
- auto o_state = *this->layers.get_layout_state(*surface_id);
- if (o_state == nullptr) {
- return Err<json_object *>("Could not find layer for surface");
- }
-
- struct LayoutState &state = *o_state;
- if ((state.main != *surface_id) && (state.sub != *surface_id)) {
- return Err<json_object *>("Surface is inactive");
- }
-
- // Set area rectangle
- compositor::rect area_info = this->area_info[*surface_id];
- json_object *object = json_object_new_object();
- json_object_object_add(object, kKeyX, json_object_new_int(area_info.x));
- json_object_object_add(object, kKeyY, json_object_new_int(area_info.y));
- json_object_object_add(object, kKeyWidth, json_object_new_int(area_info.w));
- json_object_object_add(object, kKeyHeight, json_object_new_int(area_info.h));
-
- return Ok<json_object *>(object);
-}
-
void App::activate(int id) {
auto ip = this->controller->sprops.find(id);
if (ip != this->controller->sprops.end()) {
diff --git a/src/app.hpp b/src/app.hpp
index 11ae8a7..413d1c9 100644
--- a/src/app.hpp
+++ b/src/app.hpp
@@ -57,17 +57,6 @@ static const char *kNameAreaSub = "sub";
/* Key for json obejct */
static const char *kKeyDrawingName = "drawing_name";
static const char *kKeyDrawingArea = "drawing_area";
-static const char *kKeyDrawingRect = "drawing_rect";
-static const char *kKeyX = "x";
-static const char *kKeyY = "y";
-static const char *kKeyWidth = "width";
-static const char *kKeyHeight = "height";
-static const char *kKeyWidthPixel = "width_pixel";
-static const char *kKeyHeightPixel = "height_pixel";
-static const char *kKeyWidthMm = "width_mm";
-static const char *kKeyHeightMm = "height_mm";
-
-
struct id_allocator {
unsigned next = 1;
@@ -123,9 +112,6 @@ struct id_allocator {
};
struct App {
-
- typedef std::unordered_map<uint32_t, struct compositor::rect> rect_map;
-
enum EventType {
Event_Val_Min = 0,
@@ -176,8 +162,6 @@ struct App {
std::map<const char *, struct afb_event> map_afb_event;
- rect_map area_info;
-
explicit App(wl::display *d);
~App() = default;
@@ -197,8 +181,6 @@ struct App {
char const *api_activate_surface(char const *drawing_name, char const *drawing_area);
char const *api_deactivate_surface(char const *drawing_name);
char const *api_enddraw(char const *drawing_name);
- result<json_object *> api_get_display_info();
- result<json_object *> api_get_area_info(char const *drawing_name);
char const *api_subscribe(afb_req *req, char const *event_name);
void api_ping();
@@ -223,7 +205,7 @@ private:
// TMC WM Events to clients
void emit_activated(char const *label);
void emit_deactivated(char const *label);
- void emit_syncdraw(char const *label, char const *area, int x, int y, int w, int h);
+ void emit_syncdraw(char const *label, char const *area);
void emit_flushdraw(char const *label);
void emit_visible(char const *label, bool is_visible);
void emit_invisible(char const *label);
diff --git a/src/main.cpp b/src/main.cpp
index 395fa62..c615d3a 100644..100755
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -170,21 +170,12 @@ void binding_api::send_event(char const *evname, char const *label) {
}
}
-void binding_api::send_event(char const *evname, char const *label, char const *area,
- int x, int y, int w, int h) {
- HMI_DEBUG("wm", "%s: %s(%s, %s) x:%d y:%d w:%d h:%d",
- __func__, evname, label, area, x, y, w, h);
-
- json_object *j_rect = json_object_new_object();
- json_object_object_add(j_rect, kKeyX, json_object_new_int(x));
- json_object_object_add(j_rect, kKeyY, json_object_new_int(y));
- json_object_object_add(j_rect, kKeyWidth, json_object_new_int(w));
- json_object_object_add(j_rect, kKeyHeight, json_object_new_int(h));
+void binding_api::send_event(char const *evname, char const *label, char const *area) {
+ HMI_DEBUG("wm", "%s: %s(%s, %s)", __func__, evname, label, area);
json_object *j = json_object_new_object();
json_object_object_add(j, kKeyDrawingName, json_object_new_string(label));
json_object_object_add(j, kKeyDrawingArea, json_object_new_string(area));
- json_object_object_add(j, kKeyDrawingRect, j_rect);
int ret = afb_event_push(g_afb_instance->app.map_afb_event[evname], j);
if (ret != 0) {
diff --git a/src/wayland.cpp b/src/wayland.cpp
index 9361b74..53668d2 100644
--- a/src/wayland.cpp
+++ b/src/wayland.cpp
@@ -148,8 +148,6 @@ void output::geometry(int32_t x, int32_t y, int32_t pw, int32_t ph,
HMI_DEBUG("wm",
"wl::output %s @ %p x %i y %i w %i h %i spel %x make %s model %s tx %i",
__func__, this->proxy.get(), x, y, pw, ph, subpel, make, model, tx);
- this->physical_width = pw;
- this->physical_height = ph;
this->transform = tx;
}
@@ -171,7 +169,6 @@ void output::done() {
this->transform == WL_OUTPUT_TRANSFORM_FLIPPED_90 ||
this->transform == WL_OUTPUT_TRANSFORM_FLIPPED_270) {
std::swap(this->width, this->height);
- std::swap(this->physical_width, this->physical_height);
}
}
diff --git a/src/wayland.hpp b/src/wayland.hpp
index df5d198..59d7ade 100644
--- a/src/wayland.hpp
+++ b/src/wayland.hpp
@@ -96,8 +96,6 @@ struct display {
struct output : wayland_proxy<struct wl_output> {
int width{};
int height{};
- int physical_width{};
- int physical_height{};
int refresh{};
int transform{};
@@ -252,8 +250,7 @@ struct controller : public wayland_proxy<struct ivi_controller> {
layer_map_type layers;
screen_map_type screens;
- size output_size; // Display size[pixel]
- size physical_size; // Display size[mm]
+ size output_size;
wm::controller_hooks *chooks;