Skip to content
Snippets Groups Projects
Commit ee8e5830 authored by Nobuhiko Tanibata's avatar Nobuhiko Tanibata Committed by Pekka Paalanen
Browse files

ivi-shell: rewrite controller API


This fixes the breakage caused by "ivi-shell: make ivi-layout.c as a
part of ivi-shell.so"

hmi-controller.c:
A reference implementation of controller module does not use the layout
functions directly. This get function pointers at controller_module_init
which called by ivi-shell.

ivi-layout-export.h:
Definition of interfaces in a struction: ivi_controller_interface.
function pointers are set at ivi-layout.c.

ivi-layout-private.h:
Definition of some interfaces are remove bucause it is implemented in
ivi-layout.c and set it as function pointer. Several interfaces are kept
here because they are implemented in ivi-layout.c/transition.c but used
in other files.

ivi-layout-transition.c:
remove WL_EXPORT because export is not needed anymore.
remove unnesesary unsed method.

ivi-shell.c:
call controller_module_init of hmi-controller to init it and set
function pointers. If the interface_version is equal or
greater than what hmi_controller was built with, things are pass.
If the interface_version is smaller than what the controller expects,
it has to fail because it cannot work. This is followed the manner,

- never remove a function pointer
- never modify an existing function signature
- additions are allowed at the end of struct ivi_controller_interface
- all function pointers must always be populated and working in
  ivi-shell.so (ivi-layout.c etc.)

Signed-off-by: default avatarNobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
Acked-by: Pekka Paalanen's avatarPekka Paalanen <pekka.paalanen@collabora.co.uk>
parent 28dc18c8
No related branches found
No related tags found
No related merge requests found
......@@ -128,6 +128,14 @@ struct launcher_info {
int32_t index;
};
const struct ivi_controller_interface *ivi_controller_interface;
int
controller_module_init(struct weston_compositor *ec,
int *argc, char *argv[],
const struct ivi_controller_interface *interface,
size_t interface_version);
/*****************************************************************************
* local functions
****************************************************************************/
......@@ -154,7 +162,7 @@ static int32_t
is_surf_in_ui_widget(struct hmi_controller *hmi_ctrl,
struct ivi_layout_surface *ivisurf)
{
uint32_t id = ivi_layout_get_id_of_surface(ivisurf);
uint32_t id = ivi_controller_interface->get_id_of_surface(ivisurf);
uint32_t *ui_widget_id = NULL;
wl_array_for_each(ui_widget_id, &hmi_ctrl->ui_widgets) {
......@@ -235,11 +243,11 @@ mode_divided_into_tiling(struct hmi_controller *hmi_ctrl,
surface_y = (int32_t)surface_height;
}
ivi_layout_surface_set_transition(ivisurf,
ivi_controller_interface->surface_set_transition(ivisurf,
IVI_LAYOUT_TRANSITION_VIEW_DEFAULT,
duration);
ivi_layout_surface_set_visibility(ivisurf, true);
ivi_layout_surface_set_destination_rectangle(ivisurf,
ivi_controller_interface->surface_set_visibility(ivisurf, true);
ivi_controller_interface->surface_set_destination_rectangle(ivisurf,
surface_x, surface_y,
(int32_t)surface_width,
(int32_t)surface_height);
......@@ -247,11 +255,11 @@ mode_divided_into_tiling(struct hmi_controller *hmi_ctrl,
num++;
continue;
}
ivi_layout_surface_set_visibility(ivisurf, false);
ivi_controller_interface->surface_set_visibility(ivisurf, false);
}
if (surf_num > 0) {
ivi_layout_layer_set_transition(layer->ivilayer,
ivi_controller_interface->layer_set_transition(layer->ivilayer,
IVI_LAYOUT_TRANSITION_LAYER_VIEW_ORDER,
duration);
}
......@@ -282,11 +290,11 @@ mode_divided_into_sidebyside(struct hmi_controller *hmi_ctrl,
continue;
if (num == 1) {
ivi_layout_surface_set_transition(ivisurf,
ivi_controller_interface->surface_set_transition(ivisurf,
IVI_LAYOUT_TRANSITION_VIEW_DEFAULT,
duration);
ivi_layout_surface_set_visibility(ivisurf, true);
ivi_layout_surface_set_destination_rectangle(ivisurf,
ivi_controller_interface->surface_set_visibility(ivisurf, true);
ivi_controller_interface->surface_set_destination_rectangle(ivisurf,
0, 0,
surface_width,
surface_height);
......@@ -294,11 +302,11 @@ mode_divided_into_sidebyside(struct hmi_controller *hmi_ctrl,
num++;
continue;
} else if (num == 2) {
ivi_layout_surface_set_transition(ivisurf,
ivi_controller_interface->surface_set_transition(ivisurf,
IVI_LAYOUT_TRANSITION_VIEW_DEFAULT,
duration);
ivi_layout_surface_set_visibility(ivisurf, true);
ivi_layout_surface_set_destination_rectangle(ivisurf,
ivi_controller_interface->surface_set_visibility(ivisurf, true);
ivi_controller_interface->surface_set_destination_rectangle(ivisurf,
surface_width, 0,
surface_width,
surface_height);
......@@ -306,10 +314,10 @@ mode_divided_into_sidebyside(struct hmi_controller *hmi_ctrl,
num++;
continue;
}
ivi_layout_surface_set_transition(ivisurf,
ivi_controller_interface->surface_set_transition(ivisurf,
IVI_LAYOUT_TRANSITION_VIEW_FADE_ONLY,
duration);
ivi_layout_surface_set_visibility(ivisurf, false);
ivi_controller_interface->surface_set_visibility(ivisurf, false);
}
}
......@@ -332,11 +340,11 @@ mode_fullscreen_someone(struct hmi_controller *hmi_ctrl,
if (is_surf_in_ui_widget(hmi_ctrl, ivisurf))
continue;
ivi_layout_surface_set_transition(ivisurf,
ivi_controller_interface->surface_set_transition(ivisurf,
IVI_LAYOUT_TRANSITION_VIEW_DEFAULT,
duration);
ivi_layout_surface_set_visibility(ivisurf, true);
ivi_layout_surface_set_destination_rectangle(ivisurf, 0, 0,
ivi_controller_interface->surface_set_visibility(ivisurf, true);
ivi_controller_interface->surface_set_destination_rectangle(ivisurf, 0, 0,
surface_width,
surface_height);
}
......@@ -363,14 +371,14 @@ mode_random_replace(struct hmi_controller *hmi_ctrl,
if (is_surf_in_ui_widget(hmi_ctrl, ivisurf))
continue;
ivi_layout_surface_set_transition(ivisurf,
ivi_controller_interface->surface_set_transition(ivisurf,
IVI_LAYOUT_TRANSITION_VIEW_DEFAULT,
duration);
ivi_layout_surface_set_visibility(ivisurf, true);
ivi_controller_interface->surface_set_visibility(ivisurf, true);
surface_x = rand() % (layer->width - surface_width);
surface_y = rand() % (layer->height - surface_height);
ivi_layout_surface_set_destination_rectangle(ivisurf,
ivi_controller_interface->surface_set_destination_rectangle(ivisurf,
surface_x,
surface_y,
surface_width,
......@@ -417,7 +425,7 @@ switch_mode(struct hmi_controller *hmi_ctrl,
hmi_ctrl->layout_mode = layout_mode;
ret = ivi_layout_get_surfaces(&surface_length, &pp_surface);
ret = ivi_controller_interface->get_surfaces(&surface_length, &pp_surface);
assert(!ret);
if (!has_application_surface(hmi_ctrl, pp_surface, surface_length)) {
......@@ -445,7 +453,7 @@ switch_mode(struct hmi_controller *hmi_ctrl,
break;
}
ivi_layout_commit_changes();
ivi_controller_interface->commit_changes();
free(pp_surface);
}
......@@ -463,11 +471,11 @@ hmi_controller_fade_run(struct hmi_controller *hmi_ctrl, uint32_t is_fade_in,
fade->is_fade_in = is_fade_in;
wl_list_for_each(linklayer, &fade->layer_list, link) {
ivi_layout_layer_set_transition(linklayer->layout_layer,
ivi_controller_interface->layer_set_transition(linklayer->layout_layer,
IVI_LAYOUT_TRANSITION_LAYER_FADE,
duration);
ivi_layout_layer_set_fade_info(linklayer->layout_layer,
is_fade_in, 1.0 - tint, tint);
ivi_controller_interface->layer_set_fade_info(linklayer->layout_layer,
is_fade_in, 1.0 - tint, tint);
}
}
......@@ -482,21 +490,21 @@ create_layer(struct ivi_layout_screen *iviscrn,
int32_t ret = 0;
layer->ivilayer =
ivi_layout_layer_create_with_dimension(layer->id_layer,
ivi_controller_interface->layer_create_with_dimension(layer->id_layer,
layer->width,
layer->height);
assert(layer->ivilayer != NULL);
ret = ivi_layout_screen_add_layer(iviscrn, layer->ivilayer);
ret = ivi_controller_interface->screen_add_layer(iviscrn, layer->ivilayer);
assert(!ret);
ret = ivi_layout_layer_set_destination_rectangle(layer->ivilayer,
ret = ivi_controller_interface->layer_set_destination_rectangle(layer->ivilayer,
layer->x, layer->y,
layer->width,
layer->height);
assert(!ret);
ret = ivi_layout_layer_set_visibility(layer->ivilayer, true);
ret = ivi_controller_interface->layer_set_visibility(layer->ivilayer, true);
assert(!ret);
}
......@@ -516,7 +524,7 @@ set_notification_create_surface(struct ivi_layout_surface *ivisurf,
if (is_surf_in_ui_widget(hmi_ctrl, ivisurf))
return;
ret = ivi_layout_layer_add_surface(application_layer, ivisurf);
ret = ivi_controller_interface->layer_add_surface(application_layer, ivisurf);
assert(!ret);
}
......@@ -630,11 +638,11 @@ hmi_controller_create(struct weston_compositor *ec)
hmi_ctrl->hmi_setting = hmi_server_setting_create(ec);
hmi_ctrl->compositor = ec;
ivi_layout_get_screens(&screen_length, &pp_screen);
ivi_controller_interface->get_screens(&screen_length, &pp_screen);
iviscrn = pp_screen[0];
ivi_layout_get_screen_resolution(iviscrn, &screen_width,
ivi_controller_interface->get_screen_resolution(iviscrn, &screen_width,
&screen_height);
/* init base ivi_layer*/
......@@ -669,9 +677,9 @@ hmi_controller_create(struct weston_compositor *ec)
hmi_ctrl->hmi_setting->workspace_background_layer_id;
create_layer(iviscrn, &hmi_ctrl->workspace_background_layer);
ivi_layout_layer_set_opacity(
ivi_controller_interface->layer_set_opacity(
hmi_ctrl->workspace_background_layer.ivilayer, 0);
ivi_layout_layer_set_visibility(
ivi_controller_interface->layer_set_visibility(
hmi_ctrl->workspace_background_layer.ivilayer, false);
/* init workspace ivi_layer */
......@@ -685,8 +693,8 @@ hmi_controller_create(struct weston_compositor *ec)
hmi_ctrl->hmi_setting->workspace_layer_id;
create_layer(iviscrn, &hmi_ctrl->workspace_layer);
ivi_layout_layer_set_opacity(hmi_ctrl->workspace_layer.ivilayer, 0);
ivi_layout_layer_set_visibility(hmi_ctrl->workspace_layer.ivilayer,
ivi_controller_interface->layer_set_opacity(hmi_ctrl->workspace_layer.ivilayer, 0);
ivi_controller_interface->layer_set_visibility(hmi_ctrl->workspace_layer.ivilayer,
false);
wl_list_init(&hmi_ctrl->workspace_fade.layer_list);
......@@ -700,11 +708,11 @@ hmi_controller_create(struct weston_compositor *ec)
wl_list_insert(&hmi_ctrl->workspace_fade.layer_list,
&tmp_link_layer->link);
ivi_layout_add_notification_create_surface(
ivi_controller_interface->add_notification_create_surface(
set_notification_create_surface, hmi_ctrl);
ivi_layout_add_notification_remove_surface(
ivi_controller_interface->add_notification_remove_surface(
set_notification_remove_surface, hmi_ctrl);
ivi_layout_add_notification_configure_surface(
ivi_controller_interface->add_notification_configure_surface(
set_notification_configure_surface, hmi_ctrl);
hmi_ctrl->destroy_listener.notify = hmi_controller_destroy;
......@@ -744,17 +752,17 @@ ivi_hmi_controller_set_background(struct hmi_controller *hmi_ctrl,
sizeof(*add_surface_id));
*add_surface_id = id_surface;
ivisurf = ivi_layout_get_surface_from_id(id_surface);
ivisurf = ivi_controller_interface->get_surface_from_id(id_surface);
assert(ivisurf != NULL);
ret = ivi_layout_layer_add_surface(ivilayer, ivisurf);
ret = ivi_controller_interface->layer_add_surface(ivilayer, ivisurf);
assert(!ret);
ret = ivi_layout_surface_set_destination_rectangle(ivisurf,
ret = ivi_controller_interface->surface_set_destination_rectangle(ivisurf,
dstx, dsty, width, height);
assert(!ret);
ret = ivi_layout_surface_set_visibility(ivisurf, true);
ret = ivi_controller_interface->surface_set_visibility(ivisurf, true);
assert(!ret);
}
......@@ -781,21 +789,21 @@ ivi_hmi_controller_set_panel(struct hmi_controller *hmi_ctrl,
sizeof(*add_surface_id));
*add_surface_id = id_surface;
ivisurf = ivi_layout_get_surface_from_id(id_surface);
ivisurf = ivi_controller_interface->get_surface_from_id(id_surface);
assert(ivisurf != NULL);
ret = ivi_layout_layer_add_surface(ivilayer, ivisurf);
ret = ivi_controller_interface->layer_add_surface(ivilayer, ivisurf);
assert(!ret);
panel_height = hmi_ctrl->hmi_setting->panel_height;
dsty = hmi_ctrl->base_layer.height - panel_height;
ret = ivi_layout_surface_set_destination_rectangle(
ret = ivi_controller_interface->surface_set_destination_rectangle(
ivisurf, dstx, dsty, width, panel_height);
assert(!ret);
ret = ivi_layout_surface_set_visibility(ivisurf, true);
ret = ivi_controller_interface->surface_set_visibility(ivisurf, true);
assert(!ret);
}
......@@ -824,10 +832,10 @@ ivi_hmi_controller_set_button(struct hmi_controller *hmi_ctrl,
sizeof(*add_surface_id));
*add_surface_id = id_surface;
ivisurf = ivi_layout_get_surface_from_id(id_surface);
ivisurf = ivi_controller_interface->get_surface_from_id(id_surface);
assert(ivisurf != NULL);
ret = ivi_layout_layer_add_surface(ivilayer, ivisurf);
ret = ivi_controller_interface->layer_add_surface(ivilayer, ivisurf);
assert(!ret);
panel_height = hmi_ctrl->hmi_setting->panel_height;
......@@ -835,11 +843,11 @@ ivi_hmi_controller_set_button(struct hmi_controller *hmi_ctrl,
dstx = (60 * number) + 15;
dsty = (hmi_ctrl->base_layer.height - panel_height) + 5;
ret = ivi_layout_surface_set_destination_rectangle(
ret = ivi_controller_interface->surface_set_destination_rectangle(
ivisurf,dstx, dsty, width, height);
assert(!ret);
ret = ivi_layout_surface_set_visibility(ivisurf, true);
ret = ivi_controller_interface->surface_set_visibility(ivisurf, true);
assert(!ret);
}
......@@ -866,17 +874,17 @@ ivi_hmi_controller_set_home_button(struct hmi_controller *hmi_ctrl,
sizeof(*add_surface_id));
*add_surface_id = id_surface;
ivisurf = ivi_layout_get_surface_from_id(id_surface);
ivisurf = ivi_controller_interface->get_surface_from_id(id_surface);
assert(ivisurf != NULL);
ret = ivi_layout_layer_add_surface(ivilayer, ivisurf);
ret = ivi_controller_interface->layer_add_surface(ivilayer, ivisurf);
assert(!ret);
ret = ivi_layout_surface_set_destination_rectangle(
ret = ivi_controller_interface->surface_set_destination_rectangle(
ivisurf, dstx, dsty, size, size);
assert(!ret);
ret = ivi_layout_surface_set_visibility(ivisurf, true);
ret = ivi_controller_interface->surface_set_visibility(ivisurf, true);
assert(!ret);
}
......@@ -902,17 +910,17 @@ ivi_hmi_controller_set_workspacebackground(struct hmi_controller *hmi_ctrl,
*add_surface_id = id_surface;
ivilayer = hmi_ctrl->workspace_background_layer.ivilayer;
ivisurf = ivi_layout_get_surface_from_id(id_surface);
ivisurf = ivi_controller_interface->get_surface_from_id(id_surface);
assert(ivisurf != NULL);
ret = ivi_layout_layer_add_surface(ivilayer, ivisurf);
ret = ivi_controller_interface->layer_add_surface(ivilayer, ivisurf);
assert(!ret);
ret = ivi_layout_surface_set_destination_rectangle(ivisurf,
ret = ivi_controller_interface->surface_set_destination_rectangle(ivisurf,
0, 0, width, height);
assert(!ret);
ret = ivi_layout_surface_set_visibility(ivisurf, true);
ret = ivi_controller_interface->surface_set_visibility(ivisurf, true);
assert(!ret);
}
......@@ -1037,17 +1045,17 @@ ivi_hmi_controller_add_launchers(struct hmi_controller *hmi_ctrl,
y = ny * fcell_size_y + space_y;
layout_surface =
ivi_layout_get_surface_from_id(data->surface_id);
ivi_controller_interface->get_surface_from_id(data->surface_id);
assert(layout_surface);
ret = ivi_layout_layer_add_surface(layer, layout_surface);
ret = ivi_controller_interface->layer_add_surface(layer, layout_surface);
assert(!ret);
ret = ivi_layout_surface_set_destination_rectangle(
ret = ivi_controller_interface->surface_set_destination_rectangle(
layout_surface, x, y, icon_size, icon_size);
assert(!ret);
ret = ivi_layout_surface_set_visibility(layout_surface, true);
ret = ivi_controller_interface->surface_set_visibility(layout_surface, true);
assert(!ret);
nx++;
......@@ -1059,7 +1067,7 @@ ivi_hmi_controller_add_launchers(struct hmi_controller *hmi_ctrl,
}
wl_array_release(&launchers);
ivi_layout_commit_changes();
ivi_controller_interface->commit_changes();
}
static void
......@@ -1076,7 +1084,7 @@ ivi_hmi_controller_UI_ready(struct wl_client *client,
ivi_hmi_controller_set_button(hmi_ctrl, hmi_ctrl->ui_setting.random_id, 3);
ivi_hmi_controller_set_home_button(hmi_ctrl, hmi_ctrl->ui_setting.home_id);
ivi_hmi_controller_set_workspacebackground(hmi_ctrl, hmi_ctrl->ui_setting.workspace_background_id);
ivi_layout_commit_changes();
ivi_controller_interface->commit_changes();
ivi_hmi_controller_add_launchers(hmi_ctrl, 256);
hmi_ctrl->is_initialized = 1;
......@@ -1194,7 +1202,7 @@ move_workspace_grab_end(struct move_grab *move, struct wl_resource* resource,
if (200 < from_motion_time)
pointer_v = 0.0;
ivi_layout_layer_get_position(layer, &pos_x, &pos_y);
ivi_controller_interface->layer_get_position(layer, &pos_x, &pos_y);
if (is_flick) {
......@@ -1214,14 +1222,14 @@ move_workspace_grab_end(struct move_grab *move, struct wl_resource* resource,
duration = hmi_ctrl->hmi_setting->transition_duration;
ivi_hmi_controller_send_workspace_end_control(resource, move->is_moved);
ivi_layout_layer_set_transition(layer,
ivi_controller_interface->layer_set_transition(layer,
IVI_LAYOUT_TRANSITION_LAYER_MOVE,
duration);
ivi_layout_layer_set_destination_rectangle(layer,
ivi_controller_interface->layer_set_destination_rectangle(layer,
end_pos, pos_y,
hmi_ctrl->workspace_background_layer.width,
hmi_ctrl->workspace_background_layer.height);
ivi_layout_commit_changes();
ivi_controller_interface->commit_changes();
}
static void
......@@ -1299,8 +1307,8 @@ layer_set_pos(struct ivi_layout_layer *layer, wl_fixed_t pos_x,
layout_pos_x = wl_fixed_to_int(pos_x);
layout_pos_y = wl_fixed_to_int(pos_y);
ivi_layout_layer_set_position(layer, layout_pos_x, layout_pos_y);
ivi_layout_commit_changes();
ivi_controller_interface->layer_set_position(layer, layout_pos_x, layout_pos_y);
ivi_controller_interface->commit_changes();
}
static void
......@@ -1457,7 +1465,7 @@ move_grab_init_workspace(struct move_grab* move,
wl_fixed_t rgn[2][2] = {{0}};
wl_fixed_t grab_pos[2] = { grab_x, grab_y };
ivi_layout_layer_get_position(layer, &layer_pos_x, &layer_pos_y);
ivi_controller_interface->layer_get_position(layer, &layer_pos_x, &layer_pos_y);
start_pos[0] = wl_fixed_from_int(layer_pos_x);
start_pos[1] = wl_fixed_from_int(layer_pos_y);
......@@ -1525,7 +1533,7 @@ ivi_hmi_controller_workspace_control(struct wl_client *client,
layer = hmi_ctrl->workspace_layer.ivilayer;
ivi_layout_transition_move_layer_cancel(layer);
ivi_controller_interface->transition_move_layer_cancel(layer);
switch (device) {
case HMI_GRAB_DEVICE_POINTER:
......@@ -1585,7 +1593,7 @@ ivi_hmi_controller_home(struct wl_client *client,
&hmi_ctrl->workspace_fade);
}
ivi_layout_commit_changes();
ivi_controller_interface->commit_changes();
}
/**
......@@ -1688,14 +1696,24 @@ launch_hmi_client_process(void *data)
/*****************************************************************************
* exported functions
****************************************************************************/
WL_EXPORT int
module_init(struct weston_compositor *ec,
int *argc, char *argv[])
controller_module_init(struct weston_compositor *ec,
int *argc, char *argv[],
const struct ivi_controller_interface *interface,
size_t interface_version)
{
struct hmi_controller *hmi_ctrl = hmi_controller_create(ec);
struct hmi_controller *hmi_ctrl = NULL;
struct wl_event_loop *loop = NULL;
if (interface_version < sizeof(struct ivi_controller_interface)) {
weston_log("ivi-shell: version mismatch of controller interface");
return -1;
}
ivi_controller_interface = interface;
hmi_ctrl = hmi_controller_create(ec);
if (!initialize(hmi_ctrl)) {
return -1;
}
......
This diff is collapsed.
......@@ -158,140 +158,6 @@ ivi_layout_transition_fade_layer(struct ivi_layout_layer *layer,
int32_t
is_surface_transition(struct ivi_layout_surface *surface);
/**
* \brief get ivi_layout_layer from id of layer
*
* \return (struct ivi_layout_layer *)
* if the method call was successful
* \return NULL if the method call was failed
*/
struct ivi_layout_layer *
ivi_layout_get_layer_from_id(uint32_t id_layer);
/**
* \brief Remove a surface
*/
void
ivi_layout_surface_remove(struct ivi_layout_surface *ivisurf);
/**
* \brief Get all Layers of the given screen
*
* \return IVI_SUCCEEDED if the method call was successful
* \return IVI_FAILED if the method call was failed
*/
int32_t
ivi_layout_get_layers_on_screen(struct ivi_layout_screen *iviscrn,
int32_t *pLength,
struct ivi_layout_layer ***ppArray);
/**
* \brief Get all Surfaces which are currently registered to a given
* layer and are managed by the services
*
* \return IVI_SUCCEEDED if the method call was successful
* \return IVI_FAILED if the method call was failed
*/
int32_t
ivi_layout_get_surfaces_on_layer(struct ivi_layout_layer *ivilayer,
int32_t *pLength,
struct ivi_layout_surface ***ppArray);
/**
* \brief Get the visibility of a layer. If a layer is not visible,
* the layer and its surfaces will not be rendered.
*
* \return true if layer is visible
* \return false if layer is invisible or the method call was failed
*/
bool
ivi_layout_layer_get_visibility(struct ivi_layout_layer *ivilayer);
/**
* \brief Get the horizontal and vertical dimension of the layer.
*
* \return IVI_SUCCEEDED if the method call was successful
* \return IVI_FAILED if the method call was failed
*/
int32_t
ivi_layout_layer_get_dimension(struct ivi_layout_layer *ivilayer,
int32_t *dest_width, int32_t *dest_height);
/**
* \brief Set the horizontal and vertical dimension of the layer.
*
* \return IVI_SUCCEEDED if the method call was successful
* \return IVI_FAILED if the method call was failed
*/
int32_t
ivi_layout_layer_set_dimension(struct ivi_layout_layer *ivilayer,
int32_t dest_width, int32_t dest_height);
/**
* \brief Gets the orientation of a layer.
*
* \return (enum wl_output_transform)
* if the method call was successful
* \return WL_OUTPUT_TRANSFORM_NORMAL if the method call was failed
*/
enum wl_output_transform
ivi_layout_layer_get_orientation(struct ivi_layout_layer *ivilayer);
/**
* \brief Set the horizontal and vertical dimension of the surface.
*
* \return IVI_SUCCEEDED if the method call was successful
* \return IVI_FAILED if the method call was failed
*/
int32_t
ivi_layout_surface_set_dimension(struct ivi_layout_surface *ivisurf,
int32_t dest_width, int32_t dest_height);
/**
* \brief Get the horizontal and vertical dimension of the surface.
*
* \return IVI_SUCCEEDED if the method call was successful
* \return IVI_FAILED if the method call was failed
*/
int32_t
ivi_layout_surface_get_dimension(struct ivi_layout_surface *ivisurf,
int32_t *dest_width, int32_t *dest_height);
/**
* \brief Sets the horizontal and vertical position of the surface.
*
* \return IVI_SUCCEEDED if the method call was successful
* \return IVI_FAILED if the method call was failed
*/
int32_t
ivi_layout_surface_set_position(struct ivi_layout_surface *ivisurf,
int32_t dest_x, int32_t dest_y);
/**
* \brief Get the horizontal and vertical position of the surface.
*
* \return IVI_SUCCEEDED if the method call was successful
* \return IVI_FAILED if the method call was failed
*/
int32_t
ivi_layout_surface_get_position(struct ivi_layout_surface *ivisurf,
int32_t *dest_x, int32_t *dest_y);
/**
* \brief Gets the orientation of a surface.
*
* \return (enum wl_output_transform)
* if the method call was successful
* \return WL_OUTPUT_TRANSFORM_NORMAL if the method call was failed
*/
enum wl_output_transform
ivi_layout_surface_get_orientation(struct ivi_layout_surface *ivisurf);
int32_t
ivi_layout_surface_set_transition_duration(
struct ivi_layout_surface *ivisurf,
uint32_t duration);
/**
* methods of interaction between ivi-shell with ivi-layout
*/
......@@ -311,4 +177,50 @@ ivi_layout_surface_get_dimension(struct ivi_layout_surface *ivisurf,
void
ivi_layout_surface_add_configured_listener(struct ivi_layout_surface* ivisurf,
struct wl_listener* listener);
/**
* methods of interaction between transition animation with ivi-layout
*/
int32_t
ivi_layout_commit_changes(void);
uint32_t
ivi_layout_get_id_of_surface(struct ivi_layout_surface *ivisurf);
int32_t
ivi_layout_surface_set_destination_rectangle(struct ivi_layout_surface *ivisurf,
int32_t x, int32_t y,
int32_t width, int32_t height);
int32_t
ivi_layout_surface_set_opacity(struct ivi_layout_surface *ivisurf,
wl_fixed_t opacity);
wl_fixed_t
ivi_layout_surface_get_opacity(struct ivi_layout_surface *ivisurf);
int32_t
ivi_layout_surface_set_visibility(struct ivi_layout_surface *ivisurf,
bool newVisibility);
bool
ivi_layout_surface_get_visibility(struct ivi_layout_surface *ivisurf);
struct ivi_layout_surface *
ivi_layout_get_surface_from_id(uint32_t id_surface);
int32_t
ivi_layout_layer_set_opacity(struct ivi_layout_layer *ivilayer,
wl_fixed_t opacity);
wl_fixed_t
ivi_layout_layer_get_opacity(struct ivi_layout_layer *ivilayer);
int32_t
ivi_layout_layer_set_visibility(struct ivi_layout_layer *ivilayer,
bool newVisibility);
int32_t
ivi_layout_layer_set_position(struct ivi_layout_layer *ivilayer,
int32_t dest_x, int32_t dest_y);
int32_t
ivi_layout_layer_get_position(struct ivi_layout_layer *ivilayer,
int32_t *dest_x, int32_t *dest_y);
int32_t
ivi_layout_layer_set_render_order(struct ivi_layout_layer *ivilayer,
struct ivi_layout_surface **pSurface,
int32_t number);
void
ivi_layout_transition_move_layer_cancel(struct ivi_layout_layer *layer);
int
load_controller_modules(struct weston_compositor *compositor, const char *modules,
int *argc, char *argv[]);
#endif
......@@ -76,7 +76,7 @@ get_transition_from_type_and_id(enum ivi_layout_transition_type type,
return NULL;
}
WL_EXPORT int32_t
int32_t
is_surface_transition(struct ivi_layout_surface *surface)
{
struct ivi_layout *layout = get_instance();
......@@ -156,7 +156,7 @@ layout_transition_frame(void *data)
return 1;
}
WL_EXPORT struct ivi_layout_transition_set *
struct ivi_layout_transition_set *
ivi_layout_transition_set_create(struct weston_compositor *ec)
{
struct ivi_layout_transition_set *transitions;
......@@ -359,7 +359,7 @@ create_move_resize_view_transition(
return transition;
}
WL_EXPORT void
void
ivi_layout_transition_move_resize_view(struct ivi_layout_surface *surface,
int32_t dest_x, int32_t dest_y,
int32_t dest_width, int32_t dest_height,
......@@ -512,7 +512,7 @@ visibility_on_transition_destroy(struct ivi_layout_transition *transition)
transition->user_data = NULL;
}
WL_EXPORT void
void
ivi_layout_transition_visibility_on(struct ivi_layout_surface *surface,
uint32_t duration)
{
......@@ -577,7 +577,7 @@ visibility_off_transition_destroy(struct ivi_layout_transition *transition)
transition->user_data= NULL;
}
WL_EXPORT void
void
ivi_layout_transition_visibility_off(struct ivi_layout_surface *surface,
uint32_t duration)
{
......@@ -703,7 +703,7 @@ create_move_layer_transition(
return transition;
}
WL_EXPORT void
void
ivi_layout_transition_move_layer(struct ivi_layout_layer *layer,
int32_t dest_x, int32_t dest_y,
uint32_t duration)
......@@ -726,7 +726,7 @@ ivi_layout_transition_move_layer(struct ivi_layout_layer *layer,
return;
}
WL_EXPORT void
void
ivi_layout_transition_move_layer_cancel(struct ivi_layout_layer *layer)
{
struct ivi_layout_transition *transition =
......@@ -779,7 +779,7 @@ is_transition_fade_layer_func(struct fade_layer_data *data,
return data->layer == layer;
}
WL_EXPORT void
void
ivi_layout_transition_fade_layer(
struct ivi_layout_layer *layer,
uint32_t is_fade_in,
......
This diff is collapsed.
......@@ -42,8 +42,6 @@
#include "ivi-layout-export.h"
#include "ivi-layout-private.h"
#include "../shared/os-compatibility.h"
/* Representation of ivi_surface protocol object. */
struct ivi_shell_surface
{
......@@ -390,35 +388,6 @@ ivi_shell_setting_create(struct ivi_shell_setting *dest,
/*
* Initialization of ivi-shell.
*/
static int
ivi_load_modules(struct weston_compositor *compositor, const char *modules,
int *argc, char *argv[])
{
const char *p, *end;
char buffer[256];
int (*module_init)(struct weston_compositor *compositor,
int *argc, char *argv[]);
if (modules == NULL)
return 0;
p = modules;
while (*p) {
end = strchrnul(p, ',');
snprintf(buffer, sizeof buffer, "%.*s", (int)(end - p), p);
module_init = weston_load_module(buffer, "module_init");
if (module_init)
module_init(compositor, argc, argv);
p = end;
while (*p == ',')
p++;
}
return 0;
}
WL_EXPORT int
module_init(struct weston_compositor *compositor,
int *argc, char *argv[])
......@@ -450,7 +419,7 @@ module_init(struct weston_compositor *compositor,
/* Call module_init of ivi-modules which are defined in weston.ini */
if (ivi_load_modules(compositor, setting.ivi_module, argc, argv) < 0) {
if (load_controller_modules(compositor, setting.ivi_module, argc, argv) < 0) {
free(setting.ivi_module);
return -1;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment