drm: fbdev: separate libinput creation code from drm & fbdev backends
authorJunghoon <jh13.son@samsung.com>
Tue, 28 Jul 2015 04:37:12 +0000 (13:37 +0900)
committerGerrit Code Review <root@ap3>
Tue, 28 Jul 2015 05:10:29 +0000 (14:10 +0900)
Change-Id: Ib3b4fc3b26ccaedd1e86e8ab52c6d72290e03e4e

configure.ac
src/lib/drm/drm-common.c
src/lib/drm/drm-internal.h
src/lib/drm/pepper-drm.h
src/lib/fbdev/fbdev-common.c
src/lib/fbdev/fbdev-internal.h
src/lib/fbdev/pepper-fbdev.h
src/samples/drm-backend.c
src/samples/fbdev-backend.c

index 332fca1..5e80afa 100644 (file)
@@ -155,7 +155,7 @@ AC_SUBST(DOCTOR_CFLAGS)
 AC_SUBST(DOCTOR_LIBS)
 
 # sample
-SAMPLES_REQUIRES="wayland-server wayland-client"
+SAMPLES_REQUIRES="wayland-server wayland-client libudev"
 PKG_CHECK_MODULES(SAMPLES, $[SAMPLES_REQUIRES])
 
 SAMPLES_CFLAGS="$PEPPER_DIR $PEPPER_DESKTOP_SHELL_DIR $PEPPER_RENDER_DIR $SAMPLES_CFLAGS"
index 2088bac..967c971 100644 (file)
@@ -6,7 +6,8 @@
 #include "drm-internal.h"
 
 PEPPER_API pepper_drm_t *
-pepper_drm_create(pepper_compositor_t *compositor, const char *device, const char *renderer)
+pepper_drm_create(pepper_compositor_t *compositor, struct udev *udev,
+                  const char *device, const char *renderer)
 {
     pepper_drm_t    *drm;
 
@@ -17,22 +18,8 @@ pepper_drm_create(pepper_compositor_t *compositor, const char *device, const cha
         goto error;
     }
 
-    drm->udev = udev_new();
-    if (!drm->udev)
-    {
-        PEPPER_ERROR("Failed to create udev context in %s\n", __FUNCTION__);
-        goto error;
-    }
-
     drm->compositor = compositor;
-    drm->input = pepper_libinput_create(compositor, drm->udev);
-
-    if (!drm->input)
-    {
-        PEPPER_ERROR("Failed to create pepper_libinput in %s\n", __FUNCTION__);
-        goto error;
-    }
-
+    drm->udev = udev;
     wl_list_init(&drm->output_list);
 
     if (!pepper_drm_output_create(drm, renderer))
@@ -85,11 +72,5 @@ pepper_drm_destroy(pepper_drm_t *drm)
     if (drm->drm_fd)
         close(drm->drm_fd);
 
-    if (drm->input)
-        pepper_libinput_destroy(drm->input);
-
-    if (drm->udev)
-        udev_unref(drm->udev);
-
     free(drm);
 }
index e17678f..56f2901 100644 (file)
@@ -22,7 +22,6 @@ typedef struct drm_fb           drm_fb_t;
 struct pepper_drm
 {
     pepper_compositor_t        *compositor;
-    pepper_libinput_t          *input;
 
     struct wl_list              output_list;
 
index ffde779..1ad4681 100644 (file)
@@ -1,6 +1,7 @@
 #ifndef PEPPER_DRM_H
 #define PEPPER_DRM_H
 
+#include <libudev.h>
 #include <pepper.h>
 
 #ifdef __cplusplus
@@ -10,7 +11,8 @@ extern "C" {
 typedef struct pepper_drm   pepper_drm_t;
 
 PEPPER_API pepper_drm_t *
-pepper_drm_create(pepper_compositor_t *compositor, const char *device, const char *renderer);
+pepper_drm_create(pepper_compositor_t *compositor, struct udev *udev,
+                  const char *device, const char *renderer);
 
 PEPPER_API void
 pepper_drm_destroy(pepper_drm_t *drm);
index cce211c..da860c5 100644 (file)
@@ -5,7 +5,8 @@
 #include "fbdev-internal.h"
 
 PEPPER_API pepper_fbdev_t *
-pepper_fbdev_create(pepper_compositor_t *compositor, const char *device, const char *renderer)
+pepper_fbdev_create(pepper_compositor_t *compositor, struct udev *udev,
+                    const char *device, const char *renderer)
 {
     pepper_fbdev_t *fbdev;
 
@@ -23,22 +24,8 @@ pepper_fbdev_create(pepper_compositor_t *compositor, const char *device, const c
         goto error;
     }
 
-    fbdev->udev = udev_new();
-    if (!fbdev->udev)
-    {
-        PEPPER_ERROR("Failed to create udev context in %s\n", __FUNCTION__);
-        goto error;
-    }
-
     fbdev->compositor = compositor;
-    fbdev->input = pepper_libinput_create(compositor, fbdev->udev);
-
-    if (!fbdev->input)
-    {
-        PEPPER_ERROR("Failed to create pepper_libinput in %s\n", __FUNCTION__);
-        goto error;
-    }
-
+    fbdev->udev = udev;
     wl_list_init(&fbdev->output_list);
 
     if (!pepper_fbdev_output_create(fbdev, renderer))
@@ -70,11 +57,5 @@ pepper_fbdev_destroy(pepper_fbdev_t *fbdev)
             pepper_fbdev_output_destroy(output);
     }
 
-    if (fbdev->input)
-        pepper_libinput_destroy(fbdev->input);
-
-    if (fbdev->udev)
-        udev_unref(fbdev->udev);
-
     free(fbdev);
 }
index 3d9f3f6..6104796 100644 (file)
@@ -18,7 +18,6 @@ typedef struct fbdev_output     fbdev_output_t;
 struct pepper_fbdev
 {
     pepper_compositor_t        *compositor;
-    pepper_libinput_t          *input;
 
     struct wl_list              output_list;
 
index 5652a2c..e8898b9 100644 (file)
@@ -1,6 +1,7 @@
 #ifndef PEPPER_FBDEV_H
 #define PEPPER_FBDEV_H
 
+#include <libudev.h>
 #include <pepper.h>
 
 #ifdef __cplusplus
@@ -10,7 +11,8 @@ extern "C" {
 typedef struct pepper_fbdev   pepper_fbdev_t;
 
 PEPPER_API pepper_fbdev_t *
-pepper_fbdev_create(pepper_compositor_t *compositor, const char *device, const char *renderer);
+pepper_fbdev_create(pepper_compositor_t *compositor, struct udev *udev,
+                    const char *device, const char *renderer);
 
 PEPPER_API void
 pepper_fbdev_destroy(pepper_fbdev_t *fbdev);
index ccd179f..5e8804f 100644 (file)
@@ -2,7 +2,10 @@
 #include <stdlib.h>
 #include <signal.h>
 
+#include <libudev.h>
+
 #include <pepper.h>
+#include <pepper-libinput.h>
 #include <pepper-drm.h>
 #include <pepper-desktop-shell.h>
 
@@ -44,6 +47,10 @@ main(int argc, char **argv)
 {
     pepper_compositor_t    *compositor = NULL;
     pepper_drm_t           *drm = NULL;
+    pepper_libinput_t      *input = NULL;
+
+    struct udev            *udev = NULL;
+
     struct wl_display      *display = NULL;
     struct wl_event_loop   *loop = NULL;
     struct wl_event_source *sigint = NULL;
@@ -64,7 +71,15 @@ main(int argc, char **argv)
     if (!compositor)
         goto cleanup;
 
-    drm = pepper_drm_create(compositor, ""/*device*/, "gl"/*renderer*/);
+    udev = udev_new();
+    if (!udev)
+        goto cleanup;
+
+    input = pepper_libinput_create(compositor, udev);
+    if (!input)
+        goto cleanup;
+
+    drm = pepper_drm_create(compositor, udev, ""/*device*/, "pixman"/*renderer*/);
     if (!drm)
         goto cleanup;
 
@@ -90,6 +105,12 @@ cleanup:
     if (drm)
         pepper_drm_destroy(drm);
 
+    if (input)
+        pepper_libinput_destroy(input);
+
+    if (udev)
+        udev_unref(udev);
+
     if (compositor)
         pepper_compositor_destroy(compositor);
 
index c2f891d..a2cfc6f 100644 (file)
@@ -2,7 +2,10 @@
 #include <stdlib.h>
 #include <signal.h>
 
+#include <libudev.h>
+
 #include <pepper.h>
+#include <pepper-libinput.h>
 #include <pepper-fbdev.h>
 #include <pepper-desktop-shell.h>
 
@@ -44,6 +47,10 @@ main(int argc, char **argv)
 {
     pepper_compositor_t    *compositor = NULL;
     pepper_fbdev_t         *fbdev = NULL;
+    pepper_libinput_t       *input = NULL;
+
+    struct udev             *udev = NULL;
+
     struct wl_display      *display = NULL;
     struct wl_event_loop   *loop = NULL;
     struct wl_event_source *sigint = NULL;
@@ -66,7 +73,15 @@ main(int argc, char **argv)
     if (!compositor)
         goto cleanup;
 
-    fbdev = pepper_fbdev_create(compositor, "", "pixman");
+    udev = udev_new();
+    if (!udev)
+        goto cleanup;
+
+    input = pepper_libinput_create(compositor, udev);
+    if (!input)
+        goto cleanup;
+
+    fbdev = pepper_fbdev_create(compositor, udev, "", "pixman");
     if (!fbdev)
         goto cleanup;
 
@@ -92,6 +107,12 @@ cleanup:
     if (fbdev)
         pepper_fbdev_destroy(fbdev);
 
+    if (input)
+        pepper_libinput_destroy(input);
+
+    if (udev)
+        udev_unref(udev);
+
     if (compositor)
         pepper_compositor_destroy(compositor);