weston-10: Trunk add surface set plane mute API [1/1]
PD#TV-129835
Problem:
add surface set plane mute API
Solution:
add surface set plane mute API
Verify:
AH212
Change-Id: I141aa271042b7324ded384fd87def1127f917cf2
Signed-off-by: chen.wang1 <chen.wang1@amlogic.com>
diff --git a/aml-weston/aml-backend.c b/aml-weston/aml-backend.c
index 2356439..0bd41c3 100644
--- a/aml-weston/aml-backend.c
+++ b/aml-weston/aml-backend.c
@@ -260,6 +260,17 @@
return rc;
}
+int drm_set_plane_mute(struct weston_compositor *compositor, unsigned int plane_mute)
+{
+ struct drm_backend* b = to_drm_backend(compositor);
+
+ int res = meson_drm_setPlaneMute(b->drm.fd, 1, plane_mute);
+ if (res) {
+ weston_log("%s %d set plane mute fail! return value %d",__FUNCTION__,__LINE__,res);
+ }
+ return res;
+}
+
static int drm_get_scaling(struct weston_output *output)
{
int ret = 100;
@@ -1168,6 +1179,7 @@
b->base.get_frame_time = drm_get_frame_time;
b->base.close_video_plane = drm_close_video_plane;
b->base.update_frame_rate = drm_backend_update_rate;
+ b->base.set_plane_mute = drm_set_plane_mute;
}
struct weston_plane *
diff --git a/aml-weston/aml-compositor.c b/aml-weston/aml-compositor.c
index 0195931..1e83513 100644
--- a/aml-weston/aml-compositor.c
+++ b/aml-weston/aml-compositor.c
@@ -657,6 +657,16 @@
surface->video_plane = video_plane;
}
+static void surface_set_plane_mute(struct wl_client *client,
+ struct wl_resource *resource,unsigned int plane_mute)
+{
+ struct weston_surface *surface = wl_resource_get_user_data(resource);
+ struct weston_compositor *compositor = surface->compositor;
+ weston_log("%s %d surface_set_plane_mute plane_mute: %d",__FUNCTION__,__LINE__, plane_mute);
+ if (surface->compositor->backend->set_plane_mute)
+ compositor->backend->set_plane_mute(compositor,plane_mute);
+}
+
static void surface_keep_last_frame(struct wl_client *client,
struct wl_resource *resource,
int32_t keep_last_frame)
diff --git a/libweston/backend-drm/meson.build b/libweston/backend-drm/meson.build
index debd1d1..4dfddea 100644
--- a/libweston/backend-drm/meson.build
+++ b/libweston/backend-drm/meson.build
@@ -17,6 +17,7 @@
include_directories: include_directories('.')
)
+dep_libdrm_meson = cc.find_library('libdrm_meson')
dep_meson_display = dependency('libweston-drm-helper')
config_h.set('ENABLE_DRM_HELP', '1')
config_h.set('BUILD_DRM_COMPOSITOR', '1')
@@ -47,7 +48,8 @@
dependency('libudev', version: '>= 136'),
dep_backlight,
dep_meson_display,
- dep_modepolicy
+ dep_modepolicy,
+ dep_libdrm_meson
]
if get_option('renderer-gl')
diff --git a/libweston/backend.h b/libweston/backend.h
index 3939cff..b86a737 100644
--- a/libweston/backend.h
+++ b/libweston/backend.h
@@ -114,6 +114,7 @@
int (*get_frame_time)(struct weston_output *output_base, uint64_t*frametime, uint64_t* refresh_interval);
void (*update_frame_rate)(struct weston_compositor *compositor, int frame_rate_value, int frame_rate_scale);
int (*close_video_plane)(struct weston_compositor *ec, struct weston_plane* plane);
+ void (*set_plane_mute)(struct weston_compositor *compositor, unsigned int plane_mute);
};
/* weston_head */
diff --git a/libweston/compositor.c b/libweston/compositor.c
index 94af173..1fd5954 100644
--- a/libweston/compositor.c
+++ b/libweston/compositor.c
@@ -4100,7 +4100,8 @@
surface_set_display_rate,
surface_destroy_callback,
surface_enable_ll_mode,
- surface_set_invisible
+ surface_set_invisible,
+ surface_set_plane_mute
};
static int