g_object_unref(mp_libHomeScreenHomescreen_Proxy);
}
-sRectangle LibHomeScreen::getLayoutRenderAreaForSurfaceId(int surfaceId)
+std::vector<int> LibHomeScreen::getAllSurfacesOfProcess(int pid)
{
- sRectangle result;
+ std::vector<int> result;
+
+ GError *err = NULL;
+
+ GVariant *out_surfaceIds;
+
+ lib_home_screen_homescreen_call_get_all_surfaces_of_process_sync(
+ mp_libHomeScreenHomescreen_Proxy,
+ pid,
+ &out_surfaceIds,
+ NULL,
+ &err);
+
+ if (NULL != err)
+ {
+ fprintf(stderr, "Unable to call getAllSurfacesOfProcess: %s\n", err->message);
+ }
+
+
+ GVariant *element;
+ GVariantIter iter;
+ int i;
+
+ if (g_variant_iter_init(&iter, out_surfaceIds))
+ {
+ while ((element = g_variant_iter_next_value(&iter)) != NULL)
+ {
+ g_variant_get(element, "i", &i);
+ result.push_back(i);
+ g_variant_unref(element);
+ }
+ }
+
+ return result;
+}
+
+int LibHomeScreen::getSurfaceStatus(int surfaceId)
+{
+ int result;
GError *err = NULL;
GVariant *out_renderArea;
- lib_home_screen_homescreen_call_get_layout_render_area_for_surface_id_sync(
+ lib_home_screen_homescreen_call_get_surface_status_sync(
mp_libHomeScreenHomescreen_Proxy,
surfaceId,
- &out_renderArea,
+ &result,
NULL,
&err);
if (NULL != err)
{
- fprintf(stderr, "Unable to call getLayoutRenderAreaForSurfaceId: %s\n", err->message);
+ fprintf(stderr, "Unable to call getSurfaceStatus: %s\n", err->message);
}
- g_variant_get(out_renderArea, "(iiii)", result.x, result.y, result.width, result.height);
-
return result;
}
}
}
-void LibHomeScreen::renderSurfaceToArea(int surfaceId, const sRectangle &renderArea)
+void LibHomeScreen::renderSurfaceToArea(int surfaceId, int layoutArea)
{
GError *err = NULL;
- GVariant *variant;
- GVariantBuilder *builder;
- builder = g_variant_builder_new(G_VARIANT_TYPE("(iiii)"));
- g_variant_builder_add(builder, "(iiii)", renderArea.x, renderArea.y, renderArea.width, renderArea.height);
- variant = g_variant_new("(iiii)", builder);
- g_variant_builder_unref(builder);
-
lib_home_screen_homescreen_call_render_surface_to_area_sync(
mp_libHomeScreenHomescreen_Proxy,
surfaceId,
- variant,
+ layoutArea,
NULL,
&err);
}
}
+bool LibHomeScreen::renderAppToAreaAllowed(int appCategory, int layoutArea)
+{
+ gboolean result = true;
+ GError *err = NULL;
+
+ lib_home_screen_homescreen_call_render_app_to_area_allowed_sync(
+ mp_libHomeScreenHomescreen_Proxy,
+ appCategory,
+ layoutArea,
+ &result,
+ NULL,
+ &err);
+
+ if (NULL != err)
+ {
+ fprintf(stderr, "Unable to call renderAppToAreaAllowed: %s\n", err->message);
+ }
+
+ return result;
+}
+
void LibHomeScreen::requestSurfaceIdToFullScreen(int surfaceId)
{
GError *err = NULL;