From c1636d620372cea284a2cec0299e1ee8d9580965 Mon Sep 17 00:00:00 2001 From: "jinhyung.jo" Date: Wed, 14 Jan 2015 19:05:16 +0900 Subject: [PATCH] Direct Rendering: New feature added Modified the vigs & the yagl device for the direct rendering Added Qt5 UI for the direct rendering This is a compressed many commits produced by several authors below into one. Change-Id: I455f607c363851c57d0a250f1220ede6027e1ea0 Signed-off-by: GiWoong Kim Signed-off-by: Stanislav Vorobiov Signed-off-by: Vasiliy Ulyanov Signed-off-by: SungMin Ha Signed-off-by: hyunjin816.lee Signed-off-by: Munkyu Im Signed-off-by: SeokYeon Hwang Signed-off-by: Jinhyung Jo --- configure | 49 ++ hw/vigs/Makefile.objs | 13 +- hw/vigs/display.c | 7 +- hw/vigs/vigs_backend.h | 23 +- hw/vigs/vigs_device.c | 84 ++- hw/vigs/vigs_gl_backend.c | 750 +++++++++++++++++---- hw/vigs/vigs_gl_backend.h | 48 +- hw/vigs/vigs_gl_backend_cgl.c | 15 +- hw/vigs/vigs_gl_backend_glx.c | 204 ++++-- hw/vigs/vigs_gl_backend_wgl.c | 38 +- hw/vigs/vigs_inc/GL/gl.h | 4 +- hw/vigs/vigs_offscreen_server.c | 147 ++++ hw/vigs/vigs_offscreen_server.h | 50 ++ hw/vigs/vigs_onscreen_server.c | 190 ++++++ hw/vigs/vigs_onscreen_server.h | 56 ++ hw/vigs/vigs_qt5.cpp | 171 +++++ hw/vigs/vigs_qt5.h | 53 ++ hw/vigs/vigs_qt5_stub.c | 71 ++ hw/vigs/vigs_server.c | 329 ++++----- hw/vigs/vigs_server.h | 67 +- hw/vigs/vigs_sw_backend.c | 35 +- hw/yagl/Makefile.objs | 4 +- hw/yagl/yagl_drivers/egl_cgl/yagl_egl_cgl.c | 2 - hw/yagl/yagl_drivers/egl_glx/yagl_egl_glx.c | 24 + hw/yagl/yagl_drivers/egl_wgl/yagl_egl_wgl.c | 24 + include/sysemu/sysemu.h | 1 + include/ui/console.h | 3 +- tizen/emulator_configure.sh | 5 + tizen/src/Makefile | 8 + tizen/src/Makefile.objs | 3 + tizen/src/display/Makefile.objs | 5 + tizen/src/display/maru_display.c | 40 +- tizen/src/display/maru_display.h | 14 +- tizen/src/display/maru_finger.c | 10 - tizen/src/display/maru_finger.h | 2 - tizen/src/display/maru_shm.c | 1 - tizen/src/display/qt5.c | 184 +++++ tizen/src/display/qt5_supplement.cpp | 546 +++++++++++++++ tizen/src/display/qt5_supplement.h | 50 ++ tizen/src/emul_state.c | 84 ++- tizen/src/emul_state.h | 24 +- tizen/src/emulator.c | 6 +- tizen/src/emulator_legacy.c | 8 +- tizen/src/ns_event.h | 4 + tizen/src/ns_event.m | 32 + tizen/src/skin/maruskin_keymap.h | 4 +- tizen/src/skin/maruskin_operation.c | 15 + tizen/src/skin/maruskin_operation.h | 1 + tizen/src/skin/maruskin_server.c | 3 +- tizen/src/skin/maruskin_server.h | 2 + tizen/src/ui/Makefile.objs | 49 ++ tizen/src/ui/controllerform.cpp | 40 ++ tizen/src/ui/controllerform.h | 55 ++ tizen/src/ui/displaybase.cpp | 190 ++++++ tizen/src/ui/displaybase.h | 77 +++ tizen/src/ui/displayglwidget.cpp | 86 +++ tizen/src/ui/displayglwidget.h | 57 ++ tizen/src/ui/displayswwidget.cpp | 70 ++ tizen/src/ui/displayswwidget.h | 55 ++ tizen/src/ui/dockingcontroller.cpp | 92 +++ tizen/src/ui/dockingcontroller.h | 61 ++ tizen/src/ui/dockingconview.cpp | 152 +++++ tizen/src/ui/dockingconview.h | 65 ++ tizen/src/ui/floatingcontroller.cpp | 95 +++ tizen/src/ui/floatingcontroller.h | 60 ++ tizen/src/ui/floatingconview.cpp | 229 +++++++ tizen/src/ui/floatingconview.h | 66 ++ tizen/src/ui/hardwarekey.cpp | 43 ++ tizen/src/ui/hardwarekey.h | 47 ++ tizen/src/ui/keyboardhelper.cpp | 464 +++++++++++++ tizen/src/ui/keyboardhelper.h | 64 ++ tizen/src/ui/mainform.cpp | 45 ++ tizen/src/ui/mainform.h | 55 ++ tizen/src/ui/mainwindow.cpp | 406 +++++++++++ tizen/src/ui/mainwindow.h | 118 ++++ tizen/src/ui/menu/Makefile.objs | 18 + tizen/src/ui/menu/aboutdialog.cpp | 120 ++++ tizen/src/ui/menu/aboutdialog.h | 47 ++ tizen/src/ui/menu/contextmenu.cpp | 663 ++++++++++++++++++ tizen/src/ui/menu/contextmenu.h | 109 +++ tizen/src/ui/menu/detailedinfodialog.cpp | 241 +++++++ tizen/src/ui/menu/detailedinfodialog.h | 60 ++ tizen/src/ui/menu/screenshot.cpp | 240 +++++++ tizen/src/ui/menu/screenshot.h | 87 +++ tizen/src/ui/menu/screenshotview.cpp | 103 +++ tizen/src/ui/menu/screenshotview.h | 45 ++ tizen/src/ui/resource/about.png | Bin 0 -> 29162 bytes tizen/src/ui/resource/icons/about.png | Bin 0 -> 3600 bytes tizen/src/ui/resource/icons/advanced.png | Bin 0 -> 3527 bytes tizen/src/ui/resource/icons/close.png | Bin 0 -> 3604 bytes tizen/src/ui/resource/icons/control_panel.png | Bin 0 -> 3435 bytes .../ui/resource/icons/copy_screenshot_dialog.png | Bin 0 -> 3267 bytes tizen/src/ui/resource/icons/detailed_info.png | Bin 0 -> 3426 bytes tizen/src/ui/resource/icons/emulator_icon.ico | Bin 0 -> 67646 bytes tizen/src/ui/resource/icons/force_close.png | Bin 0 -> 3295 bytes tizen/src/ui/resource/icons/host_keyboard.png | Bin 0 -> 3436 bytes .../resource/icons/refresh_screenshot_dialog.png | Bin 0 -> 3917 bytes tizen/src/ui/resource/icons/rotate.png | Bin 0 -> 3581 bytes .../ui/resource/icons/save_screenshot_dialog.png | Bin 0 -> 3272 bytes tizen/src/ui/resource/icons/scale.png | Bin 0 -> 3581 bytes tizen/src/ui/resource/icons/screen_shot.png | Bin 0 -> 3434 bytes tizen/src/ui/resource/icons/shell.png | Bin 0 -> 3501 bytes .../ui/resource/mobile-720x1280-3btn/default.dbi | 250 +++++++ .../ui/resource/mobile-720x1280-3btn/default_0.png | Bin 0 -> 84480 bytes .../resource/mobile-720x1280-3btn/default_0_p.png | Bin 0 -> 93387 bytes .../resource/mobile-720x1280-3btn/default_180.png | Bin 0 -> 84336 bytes .../mobile-720x1280-3btn/default_180_p.png | Bin 0 -> 95005 bytes .../resource/mobile-720x1280-3btn/default_L90.png | Bin 0 -> 80062 bytes .../mobile-720x1280-3btn/default_L90_p.png | Bin 0 -> 90873 bytes .../resource/mobile-720x1280-3btn/default_R90.png | Bin 0 -> 79184 bytes .../mobile-720x1280-3btn/default_R90_p.png | Bin 0 -> 91402 bytes .../src/ui/resource/mobile-720x1280-3btn/info.ini | 4 + .../ui/resource/mobile-720x1280-3btn/layout.qml | 147 ++++ tizen/src/ui/resource/resource.qrc | 20 + .../ui/resource/wearable-320x320-1btn/default.dbi | 91 +++ .../resource/wearable-320x320-1btn/default_0.png | Bin 0 -> 16167 bytes .../resource/wearable-320x320-1btn/default_0_p.png | Bin 0 -> 15349 bytes .../resource/wearable-320x320-1btn/default_180.png | Bin 0 -> 15582 bytes .../wearable-320x320-1btn/default_180_p.png | Bin 0 -> 15360 bytes .../resource/wearable-320x320-1btn/default_L90.png | Bin 0 -> 16102 bytes .../wearable-320x320-1btn/default_L90_p.png | Bin 0 -> 15978 bytes .../resource/wearable-320x320-1btn/default_R90.png | Bin 0 -> 16094 bytes .../wearable-320x320-1btn/default_R90_p.png | Bin 0 -> 15966 bytes .../src/ui/resource/wearable-320x320-1btn/info.ini | 4 + .../ui/resource/wearable-320x320-1btn/layout.qml | 67 ++ tizen/src/ui/skinbezelitem.cpp | 54 ++ tizen/src/ui/skinbezelitem.h | 50 ++ tizen/src/ui/skinkeyitem.cpp | 178 +++++ tizen/src/ui/skinkeyitem.h | 80 +++ tizen/src/ui/skinview.cpp | 163 +++++ tizen/src/ui/skinview.h | 63 ++ tizen/src/ui/uiinformation.cpp | 168 +++++ tizen/src/ui/uiinformation.h | 68 ++ tizen/src/ui/uistate.cpp | 93 +++ tizen/src/ui/uistate.h | 72 ++ tizen/src/ui/uiutil.cpp | 41 ++ tizen/src/ui/uiutil.h | 46 ++ tizen/src/ui/xml/Makefile.objs | 26 + tizen/src/ui/xml/emulatoruitype.cpp | 46 ++ tizen/src/ui/xml/emulatoruitype.h | 54 ++ tizen/src/ui/xml/formlisttype.cpp | 46 ++ tizen/src/ui/xml/formlisttype.h | 55 ++ tizen/src/ui/xml/formtype.cpp | 85 +++ tizen/src/ui/xml/formtype.h | 69 ++ tizen/src/ui/xml/hardwarekeytype.cpp | 75 +++ tizen/src/ui/xml/hardwarekeytype.h | 64 ++ tizen/src/ui/xml/keylisttype.cpp | 47 ++ tizen/src/ui/xml/keylisttype.h | 55 ++ tizen/src/ui/xml/regiontype.cpp | 81 +++ tizen/src/ui/xml/regiontype.h | 66 ++ tizen/src/util/Makefile.objs | 8 + tizen/src/util/check_gl_cgl.c | 2 - vl.c | 39 +- 153 files changed, 10015 insertions(+), 449 deletions(-) create mode 100644 hw/vigs/vigs_offscreen_server.c create mode 100644 hw/vigs/vigs_offscreen_server.h create mode 100644 hw/vigs/vigs_onscreen_server.c create mode 100644 hw/vigs/vigs_onscreen_server.h create mode 100644 hw/vigs/vigs_qt5.cpp create mode 100644 hw/vigs/vigs_qt5.h create mode 100644 hw/vigs/vigs_qt5_stub.c create mode 100644 tizen/src/display/qt5.c create mode 100644 tizen/src/display/qt5_supplement.cpp create mode 100644 tizen/src/display/qt5_supplement.h create mode 100644 tizen/src/ui/Makefile.objs create mode 100644 tizen/src/ui/controllerform.cpp create mode 100644 tizen/src/ui/controllerform.h create mode 100644 tizen/src/ui/displaybase.cpp create mode 100644 tizen/src/ui/displaybase.h create mode 100644 tizen/src/ui/displayglwidget.cpp create mode 100644 tizen/src/ui/displayglwidget.h create mode 100644 tizen/src/ui/displayswwidget.cpp create mode 100644 tizen/src/ui/displayswwidget.h create mode 100644 tizen/src/ui/dockingcontroller.cpp create mode 100644 tizen/src/ui/dockingcontroller.h create mode 100644 tizen/src/ui/dockingconview.cpp create mode 100644 tizen/src/ui/dockingconview.h create mode 100644 tizen/src/ui/floatingcontroller.cpp create mode 100644 tizen/src/ui/floatingcontroller.h create mode 100644 tizen/src/ui/floatingconview.cpp create mode 100644 tizen/src/ui/floatingconview.h create mode 100644 tizen/src/ui/hardwarekey.cpp create mode 100644 tizen/src/ui/hardwarekey.h create mode 100644 tizen/src/ui/keyboardhelper.cpp create mode 100644 tizen/src/ui/keyboardhelper.h create mode 100644 tizen/src/ui/mainform.cpp create mode 100644 tizen/src/ui/mainform.h create mode 100644 tizen/src/ui/mainwindow.cpp create mode 100644 tizen/src/ui/mainwindow.h create mode 100644 tizen/src/ui/menu/Makefile.objs create mode 100644 tizen/src/ui/menu/aboutdialog.cpp create mode 100644 tizen/src/ui/menu/aboutdialog.h create mode 100644 tizen/src/ui/menu/contextmenu.cpp create mode 100644 tizen/src/ui/menu/contextmenu.h create mode 100644 tizen/src/ui/menu/detailedinfodialog.cpp create mode 100644 tizen/src/ui/menu/detailedinfodialog.h create mode 100644 tizen/src/ui/menu/screenshot.cpp create mode 100644 tizen/src/ui/menu/screenshot.h create mode 100644 tizen/src/ui/menu/screenshotview.cpp create mode 100644 tizen/src/ui/menu/screenshotview.h create mode 100644 tizen/src/ui/resource/about.png create mode 100644 tizen/src/ui/resource/icons/about.png create mode 100644 tizen/src/ui/resource/icons/advanced.png create mode 100644 tizen/src/ui/resource/icons/close.png create mode 100644 tizen/src/ui/resource/icons/control_panel.png create mode 100644 tizen/src/ui/resource/icons/copy_screenshot_dialog.png create mode 100644 tizen/src/ui/resource/icons/detailed_info.png create mode 100644 tizen/src/ui/resource/icons/emulator_icon.ico create mode 100644 tizen/src/ui/resource/icons/force_close.png create mode 100644 tizen/src/ui/resource/icons/host_keyboard.png create mode 100644 tizen/src/ui/resource/icons/refresh_screenshot_dialog.png create mode 100644 tizen/src/ui/resource/icons/rotate.png create mode 100644 tizen/src/ui/resource/icons/save_screenshot_dialog.png create mode 100644 tizen/src/ui/resource/icons/scale.png create mode 100644 tizen/src/ui/resource/icons/screen_shot.png create mode 100644 tizen/src/ui/resource/icons/shell.png create mode 100644 tizen/src/ui/resource/mobile-720x1280-3btn/default.dbi create mode 100644 tizen/src/ui/resource/mobile-720x1280-3btn/default_0.png create mode 100644 tizen/src/ui/resource/mobile-720x1280-3btn/default_0_p.png create mode 100644 tizen/src/ui/resource/mobile-720x1280-3btn/default_180.png create mode 100644 tizen/src/ui/resource/mobile-720x1280-3btn/default_180_p.png create mode 100644 tizen/src/ui/resource/mobile-720x1280-3btn/default_L90.png create mode 100644 tizen/src/ui/resource/mobile-720x1280-3btn/default_L90_p.png create mode 100644 tizen/src/ui/resource/mobile-720x1280-3btn/default_R90.png create mode 100644 tizen/src/ui/resource/mobile-720x1280-3btn/default_R90_p.png create mode 100644 tizen/src/ui/resource/mobile-720x1280-3btn/info.ini create mode 100644 tizen/src/ui/resource/mobile-720x1280-3btn/layout.qml create mode 100644 tizen/src/ui/resource/resource.qrc create mode 100644 tizen/src/ui/resource/wearable-320x320-1btn/default.dbi create mode 100755 tizen/src/ui/resource/wearable-320x320-1btn/default_0.png create mode 100644 tizen/src/ui/resource/wearable-320x320-1btn/default_0_p.png create mode 100644 tizen/src/ui/resource/wearable-320x320-1btn/default_180.png create mode 100644 tizen/src/ui/resource/wearable-320x320-1btn/default_180_p.png create mode 100644 tizen/src/ui/resource/wearable-320x320-1btn/default_L90.png create mode 100644 tizen/src/ui/resource/wearable-320x320-1btn/default_L90_p.png create mode 100644 tizen/src/ui/resource/wearable-320x320-1btn/default_R90.png create mode 100644 tizen/src/ui/resource/wearable-320x320-1btn/default_R90_p.png create mode 100644 tizen/src/ui/resource/wearable-320x320-1btn/info.ini create mode 100644 tizen/src/ui/resource/wearable-320x320-1btn/layout.qml create mode 100644 tizen/src/ui/skinbezelitem.cpp create mode 100644 tizen/src/ui/skinbezelitem.h create mode 100644 tizen/src/ui/skinkeyitem.cpp create mode 100644 tizen/src/ui/skinkeyitem.h create mode 100644 tizen/src/ui/skinview.cpp create mode 100644 tizen/src/ui/skinview.h create mode 100644 tizen/src/ui/uiinformation.cpp create mode 100644 tizen/src/ui/uiinformation.h create mode 100644 tizen/src/ui/uistate.cpp create mode 100644 tizen/src/ui/uistate.h create mode 100644 tizen/src/ui/uiutil.cpp create mode 100644 tizen/src/ui/uiutil.h create mode 100644 tizen/src/ui/xml/Makefile.objs create mode 100644 tizen/src/ui/xml/emulatoruitype.cpp create mode 100644 tizen/src/ui/xml/emulatoruitype.h create mode 100644 tizen/src/ui/xml/formlisttype.cpp create mode 100644 tizen/src/ui/xml/formlisttype.h create mode 100644 tizen/src/ui/xml/formtype.cpp create mode 100644 tizen/src/ui/xml/formtype.h create mode 100644 tizen/src/ui/xml/hardwarekeytype.cpp create mode 100644 tizen/src/ui/xml/hardwarekeytype.h create mode 100644 tizen/src/ui/xml/keylisttype.cpp create mode 100644 tizen/src/ui/xml/keylisttype.h create mode 100644 tizen/src/ui/xml/regiontype.cpp create mode 100644 tizen/src/ui/xml/regiontype.h diff --git a/configure b/configure index 0a54bb8..8ad78b8 100755 --- a/configure +++ b/configure @@ -337,6 +337,8 @@ libav="no" libpng="no" dxva2="no" vaapi="no" +qt="no" +qtabi="5.0" # glusterfs="" glusterfs_discard="no" @@ -1144,6 +1146,10 @@ for opt do ;; --enable-vaapi) vaapi="yes" ;; + --disable-qt) qt="no" + ;; + --enable-qt) qt="yes" + ;; # --disable-glusterfs) glusterfs="no" ;; @@ -1337,6 +1343,8 @@ Advanced options (experts only): --disable-gtk disable gtk UI --enable-gtk enable gtk UI --with-gtkabi select preferred GTK ABI 2.0 or 3.0 + --disable-qt disable Qt5 UI + --enable-qt enable Qt5 UI --disable-virtfs disable VirtFS --enable-virtfs enable VirtFS --disable-vnc disable VNC @@ -2178,6 +2186,42 @@ if test "$vte" != "no"; then fi ########################################## +# Qt probe + +qtversion="" +if test "$qt" != "no"; then + if test "$qtabi" = "5.0" ; then + qtpackage="Qt5Widgets Qt5Qml Qt5OpenGL Qt5Gui" + qtversion="5.0.0" + + if $pkg_config --exists "$qtpackage >= $qtversion"; then + qt_cflags=`$pkg_config --cflags $qtpackage` + qt_libs=`$pkg_config --libs $qtpackage` + libs_softmmu="$qt_libs $libs_softmmu" + + qt_cflags_private=`pkg-config --modversion Qt5Gui` + if test "$darwin" = "yes" ; then + qt_cflags_private=`pkg-config --cflags Qt5Gui | sed "s,QtGui.framework/Headers,&/$qt_cflags_private/QtGui,g"` + else + qt_cflags_private=`pkg-config --cflags Qt5Gui | sed "s,QtGui,&/$qt_cflags_private/QtGui,g"` + fi + + qt_cflags="$qt_cflags $qt_cflags_private" + if test "$mingw32" = "no" ; then + qt_cflags="$qt_cflags -fPIC" + fi + qt="yes" + elif test "$qt" = "yes"; then + feature_not_found "qt" "Install qt devel" + else + qt="no" + fi + else + qt="no" + fi +fi + +########################################## # SDL probe # Look for sdl configuration program (pkg-config or sdl-config). Try @@ -4499,6 +4543,7 @@ fi echo "pixman $pixman" echo "SDL support $sdl" echo "GTK support $gtk" +echo "Qt support $qt" echo "VTE support $vte" echo "curses support $curses" echo "curl support $curl" @@ -4863,6 +4908,10 @@ if test "$vte" = "yes" ; then echo "CONFIG_VTE=y" >> $config_host_mak echo "VTE_CFLAGS=$vte_cflags" >> $config_host_mak fi +if test "$qt" = "yes" ; then + echo "CONFIG_QT=y" >> $config_host_mak + echo "QT_CFLAGS=$qt_cflags" >> $config_host_mak +fi if test "$xen" = "yes" ; then echo "CONFIG_XEN_BACKEND=y" >> $config_host_mak echo "CONFIG_XEN_CTRL_INTERFACE_VERSION=$xen_ctrl_version" >> $config_host_mak diff --git a/hw/vigs/Makefile.objs b/hw/vigs/Makefile.objs index 967bf46..3ebd185f3 100644 --- a/hw/vigs/Makefile.objs +++ b/hw/vigs/Makefile.objs @@ -1,11 +1,11 @@ # VIGS -QEMU_CFLAGS += -I$(SRC_PATH)/hw/vigs/vigs_inc - obj-y += vigs_log.o obj-y += vigs_device.o libs_softmmu += $(GLX_LIBS) obj-y += vigs_comm.o obj-y += vigs_server.o +obj-y += vigs_onscreen_server.o +obj-y += vigs_offscreen_server.o obj-y += vigs_backend.o obj-y += vigs_surface.o obj-y += vigs_utils.o @@ -15,9 +15,16 @@ obj-y += vigs_fenceman.o obj-y += vigs_gl_pool.o obj-y += vigs_gl_backend.o obj-y += vigs_sw_backend.o +obj-$(CONFIG_QT) += vigs_qt5.o +ifndef CONFIG_QT +obj-y += vigs_qt5_stub.o +endif obj-y += work_queue.o obj-y += winsys.o obj-y += display.o + +$(obj)/vigs_qt5.o: QEMU_CFLAGS += $(QT_CFLAGS) + # GL GLX backend ifdef CONFIG_LINUX obj-y += vigs_gl_backend_glx.o @@ -25,8 +32,10 @@ endif # GL WGL backend ifdef CONFIG_WIN32 obj-y += vigs_gl_backend_wgl.o +$(obj)/%.o: QEMU_CFLAGS += -I$(SRC_PATH)/hw/vigs/vigs_inc endif # GL CGL backend ifdef CONFIG_DARWIN obj-y += vigs_gl_backend_cgl.o +$(obj)/%.o: QEMU_CFLAGS += -I$(SRC_PATH)/hw/vigs/vigs_inc endif diff --git a/hw/vigs/display.c b/hw/vigs/display.c index 961e7aa..65dae3e 100644 --- a/hw/vigs/display.c +++ b/hw/vigs/display.c @@ -1,4 +1,5 @@ #include "display.h" +#include "vigs_qt5.h" #include "qom/object_interfaces.h" #if defined(CONFIG_LINUX) #include @@ -24,7 +25,11 @@ static void displayobject_complete(UserCreatable *obj, Error **errp) XSetErrorHandler(x_error_handler); XInitThreads(); - dobj->dpy = XOpenDisplay(0); + dobj->dpy = (Display*)vigs_qt5_display(); + + if (!dobj->dpy) { + dobj->dpy = XOpenDisplay(0); + } if (!dobj->dpy) { error_setg(errp, "Cannot open X display"); diff --git a/hw/vigs/vigs_backend.h b/hw/vigs/vigs_backend.h index cffcd2b..bbbd90a 100644 --- a/hw/vigs/vigs_backend.h +++ b/hw/vigs/vigs_backend.h @@ -36,16 +36,6 @@ struct winsys_info; struct vigs_surface; struct vigs_plane; -typedef uint8_t *(*vigs_composite_start_cb)(void */*user_data*/, - uint32_t /*width*/, - uint32_t /*height*/, - uint32_t /*stride*/, - vigsp_surface_format /*format*/); - -typedef void (*vigs_composite_end_cb)(void */*user_data*/, - bool /*was_started*/, - bool /*dirty*/); - struct vigs_backend { struct winsys_info *ws_info; @@ -59,14 +49,19 @@ struct vigs_backend vigsp_surface_format /*format*/, vigsp_surface_id /*id*/); - void (*composite)(struct vigs_surface */*surface*/, + bool (*composite)(struct vigs_surface */*surface*/, const struct vigs_plane */*planes*/, - vigs_composite_start_cb /*start_cb*/, - vigs_composite_end_cb /*end_cb*/, - void */*user_data*/); + bool /*planes_dirty*/, + uint8_t */*display_data*/); + + bool (*capture)(struct vigs_surface */*surface*/, + void */*pixels*/); void (*batch_end)(struct vigs_backend */*backend*/); + bool (*display)(struct vigs_backend */*backend*/, + uint8_t */*display_data*/); + void (*destroy)(struct vigs_backend */*backend*/); }; diff --git a/hw/vigs/vigs_device.c b/hw/vigs/vigs_device.c index 562704b..e2b02c4 100644 --- a/hw/vigs/vigs_device.c +++ b/hw/vigs/vigs_device.c @@ -28,10 +28,12 @@ */ #include "vigs_log.h" -#include "vigs_server.h" +#include "vigs_onscreen_server.h" +#include "vigs_offscreen_server.h" #include "vigs_backend.h" #include "vigs_regs.h" #include "vigs_fenceman.h" +#include "vigs_qt5.h" #include "display.h" #include "work_queue.h" #include "winsys.h" @@ -145,6 +147,29 @@ static void vigs_hw_update(void *opaque) } } +static void vigs_hw_display(void *opaque, console_ch_t *text) +{ + VIGSState *s = opaque; + DisplaySurface *ds = qemu_console_surface(s->con); + bool displayed; + + if (!surface_data(ds)) { + return; + } + + if (vigs_server_display(s->server, &displayed)) { + /* + * 'vigs_server_display' could have updated the surface, + * so fetch it again. + */ + ds = qemu_console_surface(s->con); + + dpy_gfx_update(s->con, 0, 0, surface_width(ds), surface_height(ds)); + } + + *text = displayed; +} + static void vigs_hw_invalidate(void *opaque) { VIGSState *s = opaque; @@ -266,10 +291,33 @@ static void vigs_io_write(void *opaque, hwaddr offset, } } +static void vigs_register_capture_request_listener(void *listener, + void (*handler)(void *)) +{ + return vigs_qt5_register_capture_request_listener(listener, handler); +} + +static void vigs_unregister_capture_request_listener(void *listener) +{ + return vigs_qt5_unregister_capture_request_listener(listener); +} + +static void vigs_process_captured(bool captured, void *pixels, + uint32_t width, uint32_t height) +{ + return vigs_qt5_process_captured(captured, pixels, width, height); +} + static struct GraphicHwOps vigs_hw_ops = { .invalidate = vigs_hw_invalidate, - .gfx_update = vigs_hw_update + .gfx_update = vigs_hw_update, + /* + * Hack. use 'graphic_hw_text_update' to do displaying, but + * we have no choice, that's the only way to direct-to-window + * rendering from Qt5. + */ + .text_update = vigs_hw_display, }; static const MemoryRegionOps vigs_io_ops = @@ -288,6 +336,13 @@ static struct vigs_display_ops vigs_dpy_ops = .fence_ack = vigs_fence_ack, }; +static struct vigs_capture_ops capture_ops = +{ + .register_listener = vigs_register_capture_request_listener, + .unregister_listener = vigs_unregister_capture_request_listener, + .process_captured = vigs_process_captured, +}; + static int vigs_device_init(PCIDevice *dev) { VIGSState *s = DO_UPCAST(VIGSState, dev, dev); @@ -421,12 +476,23 @@ static int vigs_device_init(PCIDevice *dev) goto fail; } - s->server = vigs_server_create(memory_region_get_ram_ptr(&s->vram_bar), - memory_region_get_ram_ptr(&s->ram_bar), - &vigs_dpy_ops, - s, - backend, - wqobj->wq); + if (vigs_qt5_onscreen_enabled()) { + s->server = vigs_onscreen_server_create(memory_region_get_ram_ptr(&s->vram_bar), + memory_region_get_ram_ptr(&s->ram_bar), + &vigs_dpy_ops, + &capture_ops, + s, + backend, + wqobj->wq); + } else { + s->server = vigs_offscreen_server_create(memory_region_get_ram_ptr(&s->vram_bar), + memory_region_get_ram_ptr(&s->ram_bar), + &vigs_dpy_ops, + &capture_ops, + s, + backend, + wqobj->wq); + } if (!s->server) { goto fail; @@ -484,7 +550,7 @@ static void vigs_device_exit(PCIDevice *dev) { VIGSState *s = DO_UPCAST(VIGSState, dev, dev); - vigs_server_destroy(s->server); + s->server->destroy(s->server); qemu_bh_delete(s->fence_ack_bh); diff --git a/hw/vigs/vigs_gl_backend.c b/hw/vigs/vigs_gl_backend.c index b27f99a..e0cb37e 100644 --- a/hw/vigs/vigs_gl_backend.c +++ b/hw/vigs/vigs_gl_backend.c @@ -34,25 +34,16 @@ #include "vigs_log.h" #include "vigs_utils.h" #include "vigs_ref.h" +#include "vigs_qt5.h" #include "winsys_gl.h" -#include "work_queue.h" +#include "hw/pci/maru_brightness.h" +#include -struct vigs_gl_surface; - -struct vigs_gl_backend_read_pixels_work_item -{ - struct work_queue_item base; - - struct vigs_gl_backend *backend; +extern uint32_t qt5_window_width; +extern uint32_t qt5_window_height; +extern int qt5_window_angle; - vigs_composite_start_cb start_cb; - vigs_composite_end_cb end_cb; - void *user_data; - uint32_t width; - uint32_t height; - uint32_t stride; - vigsp_surface_format format; -}; +struct vigs_gl_surface; struct vigs_winsys_gl_surface { @@ -203,6 +194,136 @@ static const char *g_fs_color_source_gl3 = " FragColor = color;\n" "}\n"; +static const char *g_fs_dpy_source_gl2 = + "#version 120\n\n" + "uniform sampler2D tex;\n" + "uniform float brightness;\n" + "varying vec2 v_texCoord;\n" + "void main()\n" + "{\n" + " gl_FragColor = texture2D(tex, v_texCoord) * brightness;\n" + "}\n"; + +static const char *g_fs_dpy_source_gl3 = + "#version 140\n\n" + "uniform sampler2D tex;\n" + "uniform float brightness;\n" + "in vec2 v_texCoord;\n" + "out vec4 FragColor;\n" + "void main()\n" + "{\n" + " FragColor = texture(tex, v_texCoord) * brightness;\n" + "}\n"; + +static const char *g_fs_scale_source_gl2 = +"#version 120\n\ +\n\ +uniform sampler2D tex;\n\ +uniform float brightness;\n\ +uniform vec2 texSize;\n\ +varying vec2 v_texCoord;\n\ +vec4 cubic(float x)\n\ +{\n\ + float x2 = x * x;\n\ + float x3 = x2 * x;\n\ + vec4 w;\n\ + w.x = -x3 + 3*x2 - 3*x + 1;\n\ + w.y = 3*x3 - 6*x2 + 4;\n\ + w.z = -3*x3 + 3*x2 + 3*x + 1;\n\ + w.w = x3;\n\ + return w / 6.f;\n\ +}\n\ +void main()\n\ +{\n\ + vec2 texscale = vec2(1.0 / texSize.x, 1.0 / texSize.y);\n\ + vec2 texcoord = vec2(v_texCoord.x * texSize.x, v_texCoord.y * texSize.y);\n\ + float fx = fract(texcoord.x);\n\ + float fy = fract(texcoord.y);\n\ + texcoord.x -= fx;\n\ + texcoord.y -= fy;\n\ +\n\ + vec4 xcubic = cubic(fx);\n\ + vec4 ycubic = cubic(fy);\n\ +\n\ + vec4 c = vec4(texcoord.x - 0.5, texcoord.x + 1.5, texcoord.y -\n\ +0.5, texcoord.y + 1.5);\n\ + vec4 s = vec4(xcubic.x + xcubic.y, xcubic.z + xcubic.w, ycubic.x +\n\ +ycubic.y, ycubic.z + ycubic.w);\n\ + vec4 offset = c + vec4(xcubic.y, xcubic.w, ycubic.y, ycubic.w) /\n\ +s;\n\ +\n\ + vec4 sample0 = texture2D(tex, vec2(offset.x, offset.z) *\n\ +texscale);\n\ + vec4 sample1 = texture2D(tex, vec2(offset.y, offset.z) *\n\ +texscale);\n\ + vec4 sample2 = texture2D(tex, vec2(offset.x, offset.w) *\n\ +texscale);\n\ + vec4 sample3 = texture2D(tex, vec2(offset.y, offset.w) *\n\ +texscale);\n\ +\n\ + float sx = s.x / (s.x + s.y);\n\ + float sy = s.z / (s.z + s.w);\n\ +\n\ + gl_FragColor = mix(\n\ + mix(sample3, sample2, sx),\n\ + mix(sample1, sample0, sx), sy) * brightness;\n\ +}"; + +static const char *g_fs_scale_source_gl3 = +"#version 140\n\ +\n\ +uniform sampler2D tex;\n\ +uniform float brightness;\n\ +uniform vec2 texSize;\n\ +in vec2 v_texCoord;\n\ +out vec4 FragColor;\n\ +vec4 cubic(float x)\n\ +{\n\ + float x2 = x * x;\n\ + float x3 = x2 * x;\n\ + vec4 w;\n\ + w.x = -x3 + 3*x2 - 3*x + 1;\n\ + w.y = 3*x3 - 6*x2 + 4;\n\ + w.z = -3*x3 + 3*x2 + 3*x + 1;\n\ + w.w = x3;\n\ + return w / 6.f;\n\ +}\n\ +void main()\n\ +{\n\ + vec2 texscale = vec2(1.0 / texSize.x, 1.0 / texSize.y);\n\ + vec2 texcoord = vec2(v_texCoord.x * texSize.x, v_texCoord.y * texSize.y);\n\ + float fx = fract(texcoord.x);\n\ + float fy = fract(texcoord.y);\n\ + texcoord.x -= fx;\n\ + texcoord.y -= fy;\n\ +\n\ + vec4 xcubic = cubic(fx);\n\ + vec4 ycubic = cubic(fy);\n\ +\n\ + vec4 c = vec4(texcoord.x - 0.5, texcoord.x + 1.5, texcoord.y -\n\ +0.5, texcoord.y + 1.5);\n\ + vec4 s = vec4(xcubic.x + xcubic.y, xcubic.z + xcubic.w, ycubic.x +\n\ +ycubic.y, ycubic.z + ycubic.w);\n\ + vec4 offset = c + vec4(xcubic.y, xcubic.w, ycubic.y, ycubic.w) /\n\ +s;\n\ +\n\ + vec4 sample0 = texture(tex, vec2(offset.x, offset.z) *\n\ +texscale);\n\ + vec4 sample1 = texture(tex, vec2(offset.y, offset.z) *\n\ +texscale);\n\ + vec4 sample2 = texture(tex, vec2(offset.x, offset.w) *\n\ +texscale);\n\ + vec4 sample3 = texture(tex, vec2(offset.y, offset.w) *\n\ +texscale);\n\ +\n\ + float sx = s.x / (s.x + s.y);\n\ + float sy = s.z / (s.z + s.w);\n\ +\n\ + FragColor = mix(\n\ + mix(sample3, sample2, sx),\n\ + mix(sample1, sample0, sx), sy) * brightness;\n\ +}"; + static const char *g_vs_nv21_source_gl2 = "#version 120\n\n" "attribute vec4 vertCoord;\n" @@ -614,6 +735,102 @@ static void vigs_gl_draw_color_prog(struct vigs_gl_backend *backend, backend->DisableVertexAttribArray(backend->color_prog_vertCoord_loc); } +static void vigs_gl_draw_dpy_tex_prog(struct vigs_gl_backend *backend, + uint32_t count) +{ + uint32_t size = count * 16; + void *ptr; + + if (size > backend->dpy_vbo_size) { + backend->dpy_vbo_size = size; + backend->BufferData(GL_ARRAY_BUFFER, + size, + 0, + GL_STREAM_DRAW); + } + + if (backend->MapBufferRange) { + ptr = backend->MapBufferRange(GL_ARRAY_BUFFER, 0, size, + GL_MAP_WRITE_BIT | GL_MAP_INVALIDATE_RANGE_BIT); + + if (ptr) { + memcpy(ptr, vigs_vector_data(&backend->dpy_v1), size / 2); + memcpy(ptr + (size / 2), vigs_vector_data(&backend->dpy_v2), size / 2); + + backend->UnmapBuffer(GL_ARRAY_BUFFER); + } else { + VIGS_LOG_ERROR("glMapBufferRange failed"); + } + } else { + backend->Finish(); + backend->BufferSubData(GL_ARRAY_BUFFER, 0, + (size / 2), vigs_vector_data(&backend->dpy_v1)); + backend->BufferSubData(GL_ARRAY_BUFFER, (size / 2), + (size / 2), vigs_vector_data(&backend->dpy_v2)); + } + + backend->EnableVertexAttribArray(backend->dpy_tex_prog_vertCoord_loc); + backend->EnableVertexAttribArray(backend->dpy_tex_prog_texCoord_loc); + + backend->VertexAttribPointer(backend->dpy_tex_prog_vertCoord_loc, + 2, GL_FLOAT, GL_FALSE, 0, NULL); + backend->VertexAttribPointer(backend->dpy_tex_prog_texCoord_loc, + 2, GL_FLOAT, GL_FALSE, 0, NULL + (size / 2)); + + backend->DrawArrays(GL_TRIANGLES, 0, count); + + backend->DisableVertexAttribArray(backend->dpy_tex_prog_texCoord_loc); + backend->DisableVertexAttribArray(backend->dpy_tex_prog_vertCoord_loc); +} + +static void vigs_gl_draw_dpy_scale_prog(struct vigs_gl_backend *backend, + uint32_t count) +{ + uint32_t size = count * 16; + void *ptr; + + if (size > backend->dpy_vbo_size) { + backend->dpy_vbo_size = size; + backend->BufferData(GL_ARRAY_BUFFER, + size, + 0, + GL_STREAM_DRAW); + } + + if (backend->MapBufferRange) { + ptr = backend->MapBufferRange(GL_ARRAY_BUFFER, 0, size, + GL_MAP_WRITE_BIT | GL_MAP_INVALIDATE_RANGE_BIT); + + if (ptr) { + memcpy(ptr, vigs_vector_data(&backend->dpy_v1), size / 2); + memcpy(ptr + (size / 2), vigs_vector_data(&backend->dpy_v2), size / 2); + + backend->UnmapBuffer(GL_ARRAY_BUFFER); + } else { + VIGS_LOG_ERROR("glMapBufferRange failed"); + } + } else { + backend->Finish(); + backend->BufferSubData(GL_ARRAY_BUFFER, 0, + (size / 2), vigs_vector_data(&backend->dpy_v1)); + backend->BufferSubData(GL_ARRAY_BUFFER, (size / 2), + (size / 2), vigs_vector_data(&backend->dpy_v2)); + } + + backend->EnableVertexAttribArray(backend->dpy_scale_prog_vertCoord_loc); + backend->EnableVertexAttribArray(backend->dpy_scale_prog_texCoord_loc); + + backend->VertexAttribPointer(backend->dpy_scale_prog_vertCoord_loc, + 2, GL_FLOAT, GL_FALSE, 0, NULL); + backend->VertexAttribPointer(backend->dpy_scale_prog_texCoord_loc, + 2, GL_FLOAT, GL_FALSE, 0, NULL + (size / 2)); + + backend->DrawArrays(GL_TRIANGLES, 0, count); + + backend->DisableVertexAttribArray(backend->dpy_scale_prog_texCoord_loc); + backend->DisableVertexAttribArray(backend->dpy_scale_prog_vertCoord_loc); +} + static void vigs_gl_draw_nv21_prog(struct vigs_gl_backend *backend, uint32_t count) { @@ -670,6 +887,28 @@ static void vigs_gl_create_ortho(GLfloat left, GLfloat right, ortho[15] = 1.0f; } +static void vigs_gl_rotate_ortho(const GLfloat ortho[16], + GLfloat angle, + GLfloat res[16]) +{ + GLfloat rot[4][4] = { + { cos(angle), sin(angle), 0, 0 }, + { -sin(angle), cos(angle), 0, 0 }, + { 0, 0, 1, 0 }, + { 0, 0, 0, 1 } + }; + int i, j, k; + + for (i = 0; i < 4; ++i) { + for (j = 0; j < 4; ++j) { + res[i * 4 + j] = 0.0f; + for (k = 0; k < 4; ++k) { + res[i * 4 + j] += ortho[i * 4 + k] * rot[k][j]; + } + } + } +} + static void vigs_gl_translate_color(vigsp_color color, vigsp_surface_format format, GLfloat res[4]) @@ -694,20 +933,20 @@ static void vigs_gl_translate_color(vigsp_color color, static bool vigs_winsys_gl_surface_create_texture(struct vigs_winsys_gl_surface *ws_sfc) { - GLuint cur_tex = 0; + GLuint cur_tex = 0, tmp_tex = 0; if (ws_sfc->tex) { return true; } - ws_sfc->backend->GenTextures(1, &ws_sfc->tex); + ws_sfc->backend->GenTextures(1, &tmp_tex); - if (!ws_sfc->tex) { + if (!tmp_tex) { return false; } ws_sfc->backend->GetIntegerv(GL_TEXTURE_BINDING_2D, (GLint*)&cur_tex); - ws_sfc->backend->BindTexture(GL_TEXTURE_2D, ws_sfc->tex); + ws_sfc->backend->BindTexture(GL_TEXTURE_2D, tmp_tex); /* * Workaround for problem in "Mesa DRI Intel(R) Ivybridge Desktop x86/MMX/SSE2, version 9.0.3": @@ -723,6 +962,8 @@ static bool vigs_winsys_gl_surface_create_texture(struct vigs_winsys_gl_surface NULL); ws_sfc->backend->BindTexture(GL_TEXTURE_2D, cur_tex); + ws_sfc->tex = tmp_tex; + return true; } @@ -777,6 +1018,55 @@ static bool vigs_gl_surface_setup_framebuffer(struct vigs_gl_surface *gl_sfc, return true; } +static bool vigs_gl_update_dpy_texture(struct vigs_gl_backend *gl_backend, + uint32_t width, uint32_t height, + GLfloat ortho[16]) +{ + GLuint cur_tex = 0; + + gl_backend->GetIntegerv(GL_TEXTURE_BINDING_2D, (GLint*)&cur_tex); + + if (gl_backend->dpy_tex) { + if ((gl_backend->dpy_tex_width == width) && + (gl_backend->dpy_tex_height == height)) { + return true; + } + gl_backend->BindTexture(GL_TEXTURE_2D, gl_backend->dpy_tex); + } else { + GLuint tmp_tex = 0; + + gl_backend->GenTextures(1, &tmp_tex); + + if (!tmp_tex) { + return false; + } + + gl_backend->dpy_tex = tmp_tex; + + gl_backend->BindTexture(GL_TEXTURE_2D, tmp_tex); + + gl_backend->TexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + gl_backend->TexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + gl_backend->TexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + gl_backend->TexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + } + + gl_backend->TexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, + width, height, 0, + GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, + NULL); + + gl_backend->BindTexture(GL_TEXTURE_2D, cur_tex); + + memcpy(gl_backend->dpy_tex_ortho, + ortho, + sizeof(gl_backend->dpy_tex_ortho)); + gl_backend->dpy_tex_width = width; + gl_backend->dpy_tex_height = height; + + return true; +} + /* * @} */ @@ -1504,43 +1794,23 @@ static struct vigs_surface *vigs_gl_backend_create_surface(struct vigs_backend * return &gl_sfc->base; } -static void vigs_gl_backend_read_pixels_work(struct work_queue_item *wq_item) +static inline void +vigs_gl_backend_sort_planes(const struct vigs_plane *planes, + const struct vigs_plane **sorted_planes) { - struct vigs_gl_backend_read_pixels_work_item *item = (struct vigs_gl_backend_read_pixels_work_item*)wq_item; - struct vigs_gl_backend *backend = item->backend; - uint8_t *dst = NULL; - - VIGS_LOG_TRACE("enter"); - - if (backend->read_pixels_make_current(backend, true)) { - uint8_t *src; - - backend->BindBuffer(GL_PIXEL_PACK_BUFFER_ARB, backend->pbo); - - src = backend->MapBuffer(GL_PIXEL_PACK_BUFFER_ARB, GL_READ_ONLY); - - if (src) { - dst = item->start_cb(item->user_data, - item->width, item->height, - item->stride, item->format); - - memcpy(dst, src, item->stride * item->height); - - if (!backend->UnmapBuffer(GL_PIXEL_PACK_BUFFER_ARB)) { - VIGS_LOG_CRITICAL("glUnmapBuffer failed"); - } - } else { - VIGS_LOG_CRITICAL("glMapBuffer failed"); - } + /* + * Sort planes, only 2 of them now, don't bother... + */ - backend->BindBuffer(GL_PIXEL_PACK_BUFFER_ARB, 0); + assert(VIGS_MAX_PLANES == 2); - backend->read_pixels_make_current(backend, false); + if (planes[0].z_pos <= planes[1].z_pos) { + sorted_planes[0] = &planes[0]; + sorted_planes[1] = &planes[1]; + } else { + sorted_planes[0] = &planes[1]; + sorted_planes[1] = &planes[0]; } - - item->end_cb(item->user_data, (dst != NULL), true); - - g_free(item); } /* @@ -1567,6 +1837,17 @@ static bool vigs_gl_backend_composite_planes(struct vigs_gl_backend *gl_backend, continue; } + VIGS_LOG_DEBUG("plane[%u]: %ux%u format = %d, z_pos = %d, hflip = %d," + " vflip = %d, rotation = %d ", + i, + plane->width, + plane->height, + plane->format, + plane->z_pos, + plane->hflip, + plane->vflip, + plane->rotation); + src_w = plane->width; src_h = plane->height; @@ -1787,11 +2068,10 @@ static bool vigs_gl_backend_composite_planes(struct vigs_gl_backend *gl_backend, return bottom; } -static void vigs_gl_backend_composite(struct vigs_surface *surface, +static bool vigs_gl_backend_composite(struct vigs_surface *surface, const struct vigs_plane *planes, - vigs_composite_start_cb start_cb, - vigs_composite_end_cb end_cb, - void *user_data) + bool planes_dirty, + uint8_t *display_data) { struct vigs_gl_backend *gl_backend = (struct vigs_gl_backend*)surface->backend; struct vigs_gl_surface *gl_root_sfc = (struct vigs_gl_surface*)surface; @@ -1801,13 +2081,18 @@ static void vigs_gl_backend_composite(struct vigs_surface *surface, GLfloat *vert_coords; GLfloat *tex_coords; const struct vigs_plane *sorted_planes[VIGS_MAX_PLANES]; - uint32_t size = surface->stride * surface->ws_sfc->height; - struct vigs_gl_backend_read_pixels_work_item *item; bool bottom = true; VIGS_LOG_TRACE("enter"); - if (!surface->ptr && !ws_root_sfc->tex) { + if (surface->ptr) { + if (!vigs_qt5_onscreen_enabled() && !planes_dirty) { + memcpy(display_data, + surface->ptr, + surface->stride * surface->ws_sfc->height); + return true; + } + } else if (!ws_root_sfc->tex) { VIGS_LOG_WARN("compositing garbage (root surface) ???"); } @@ -1815,7 +2100,10 @@ static void vigs_gl_backend_composite(struct vigs_surface *surface, goto out; } - if (!vigs_gl_surface_create_tmp_texture(gl_root_sfc)) { + if (!vigs_gl_update_dpy_texture(gl_backend, + surface->ws_sfc->width, + surface->ws_sfc->height, + gl_root_sfc->ortho)) { goto out; } @@ -1852,19 +2140,7 @@ static void vigs_gl_backend_composite(struct vigs_surface *surface, goto out; } - /* - * Sort planes, only 2 of them now, don't bother... - */ - - assert(VIGS_MAX_PLANES == 2); - - if (planes[0].z_pos <= planes[1].z_pos) { - sorted_planes[0] = &planes[0]; - sorted_planes[1] = &planes[1]; - } else { - sorted_planes[0] = &planes[1]; - sorted_planes[1] = &planes[0]; - } + vigs_gl_backend_sort_planes(planes, sorted_planes); vigs_vector_resize(&gl_backend->v1, 0); vigs_vector_resize(&gl_backend->v2, 0); @@ -1896,7 +2172,7 @@ static void vigs_gl_backend_composite(struct vigs_surface *surface, } gl_backend->FramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, - GL_TEXTURE_2D, gl_root_sfc->tmp_tex, 0); + GL_TEXTURE_2D, gl_backend->dpy_tex, 0); bottom = vigs_gl_backend_composite_planes(gl_backend, sorted_planes, @@ -1917,14 +2193,25 @@ static void vigs_gl_backend_composite(struct vigs_surface *surface, vert_coords[10] = 0; vert_coords[11] = 0; - tex_coords[6] = tex_coords[0] = 0; - tex_coords[7] =tex_coords[1] = 0; - tex_coords[2] = 1; - tex_coords[3] = 0; - tex_coords[8] = tex_coords[4] = 1; - tex_coords[9] = tex_coords[5] = 1; - tex_coords[10] = 0; - tex_coords[11] = 1; + if (!surface->ptr) { + tex_coords[6] = tex_coords[0] = 0; + tex_coords[7] = tex_coords[1] = 0; + tex_coords[2] = 1; + tex_coords[3] = 0; + tex_coords[8] = tex_coords[4] = 1; + tex_coords[9] = tex_coords[5] = 1; + tex_coords[10] = 0; + tex_coords[11] = 1; + } else { + tex_coords[6] = tex_coords[0] = 0; + tex_coords[7] = tex_coords[1] = 1; + tex_coords[2] = 1; + tex_coords[3] = 1; + tex_coords[8] = tex_coords[4] = 1; + tex_coords[9] = tex_coords[5] = 0; + tex_coords[10] = 0; + tex_coords[11] = 0; + } if (!bottom) { /* @@ -1959,55 +2246,48 @@ static void vigs_gl_backend_composite(struct vigs_surface *surface, bottom, gl_root_sfc->ortho); - /* - * Now schedule asynchronous glReadPixels. - */ +out: + gl_backend->BindFramebuffer(GL_FRAMEBUFFER, 0); - gl_backend->BindBuffer(GL_PIXEL_PACK_BUFFER_ARB, gl_backend->pbo); + return false; +} - if (size > gl_backend->pbo_size) { - gl_backend->pbo_size = size; - gl_backend->BufferData(GL_PIXEL_PACK_BUFFER_ARB, - size, - 0, - GL_STREAM_READ); - } +static bool vigs_gl_backend_capture(struct vigs_surface *surface, + void *pixels) +{ + struct vigs_gl_backend *gl_backend = (struct vigs_gl_backend*)surface->backend; - gl_backend->PixelStorei(GL_PACK_ALIGNMENT, 1); - gl_backend->ReadPixels(0, 0, - surface->ws_sfc->width, surface->ws_sfc->height, - ws_root_sfc->tex_format, ws_root_sfc->tex_type, - NULL); + if (gl_backend->read_pixels_make_current(gl_backend, true)) { - gl_backend->BindBuffer(GL_PIXEL_PACK_BUFFER_ARB, 0); + if (!gl_backend->dpy_fb) { + gl_backend->GenFramebuffers(1, &gl_backend->dpy_fb); - /* - * That's a tricky one, if we don't do this then it's not - * guaranteed that PBO will actually be updated by the time - * 'vigs_gl_backend_read_pixels_work' runs and since - * 'vigs_gl_backend_read_pixels_work' uses another OpenGL context - * we might get old results. - */ - gl_backend->Finish(); + if (!gl_backend->dpy_fb) { + VIGS_LOG_ERROR("cannot create capture FB"); - item = g_malloc(sizeof(*item)); + gl_backend->read_pixels_make_current(gl_backend, false); - work_queue_item_init(&item->base, &vigs_gl_backend_read_pixels_work); + return false; + } - item->backend = gl_backend; + } - item->start_cb = start_cb; - item->end_cb = end_cb; - item->user_data = user_data; - item->width = surface->ws_sfc->width; - item->height = surface->ws_sfc->height; - item->stride = surface->stride; - item->format = surface->format; + gl_backend->BindFramebuffer(GL_FRAMEBUFFER, gl_backend->dpy_fb); + gl_backend->FramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, + GL_TEXTURE_2D, gl_backend->dpy_tex, 0); - work_queue_add_item(gl_backend->read_pixels_queue, &item->base); + gl_backend->ReadPixels(0, 0, gl_backend->dpy_tex_width, + gl_backend->dpy_tex_height, + GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, + pixels); + gl_backend->BindFramebuffer(GL_FRAMEBUFFER, 0); -out: - gl_backend->BindFramebuffer(GL_FRAMEBUFFER, 0); + gl_backend->read_pixels_make_current(gl_backend, false); + + return true; + } + + return false; } static void vigs_gl_backend_batch_end(struct vigs_backend *backend) @@ -2018,6 +2298,142 @@ static void vigs_gl_backend_batch_end(struct vigs_backend *backend) gl_backend->make_current(gl_backend, false); } +static bool vigs_gl_backend_display(struct vigs_backend *backend, + uint8_t *display_data) +{ + struct vigs_gl_backend *gl_backend = (struct vigs_gl_backend*)backend; + + VIGS_LOG_TRACE("enter"); + + if (vigs_qt5_onscreen_enabled()) { + GLfloat *vert_coords; + GLfloat *tex_coords; + bool scale; + GLfloat rotated_ortho[16]; + GLfloat *ortho; + float brightness = (float)(255 - brightness_tbl[brightness_level]) / 255.0f; + + if (display_off) { + brightness = 0.0f; + } + + if (!gl_backend->is_gl_2 && !gl_backend->dpy_vao) { + gl_backend->GenVertexArrays(1, &gl_backend->dpy_vao); + + if (!gl_backend->dpy_vao) { + VIGS_LOG_CRITICAL("cannot create VAO"); + exit(1); + } + + gl_backend->BindVertexArray(gl_backend->dpy_vao); + } + + gl_backend->BindBuffer(GL_ARRAY_BUFFER, gl_backend->dpy_vbo); + gl_backend->Disable(GL_DEPTH_TEST); + gl_backend->Disable(GL_BLEND); + + if (qt5_window_angle == 0) { + ortho = gl_backend->dpy_tex_ortho; + } else { + vigs_gl_rotate_ortho(gl_backend->dpy_tex_ortho, + (float)(360.0f - qt5_window_angle) * M_PI / 180.0f, + rotated_ortho); + ortho = rotated_ortho; + } + + scale = (qt5_window_width != gl_backend->dpy_tex_width) || + (qt5_window_height != gl_backend->dpy_tex_height); + + gl_backend->Viewport(0, 0, + qt5_window_width, + qt5_window_height); + + if (scale) { + float texSize[2]; + + gl_backend->UseProgram(gl_backend->dpy_scale_prog_id); + gl_backend->UniformMatrix4fv(gl_backend->dpy_scale_prog_proj_loc, 1, GL_FALSE, + ortho); + + texSize[0] = gl_backend->dpy_tex_width; + texSize[1] = gl_backend->dpy_tex_height; + + gl_backend->Uniform2fv(gl_backend->dpy_scale_prog_texSize_loc, 1, texSize); + gl_backend->Uniform1f(gl_backend->dpy_scale_prog_brightness_loc, brightness); + } else { + gl_backend->UseProgram(gl_backend->dpy_tex_prog_id); + gl_backend->UniformMatrix4fv(gl_backend->dpy_tex_prog_proj_loc, 1, GL_FALSE, + ortho); + gl_backend->Uniform1f(gl_backend->dpy_tex_prog_brightness_loc, brightness); + } + + gl_backend->BindTexture(GL_TEXTURE_2D, gl_backend->dpy_tex); + + vigs_vector_resize(&gl_backend->dpy_v1, 0); + vigs_vector_resize(&gl_backend->dpy_v2, 0); + + vert_coords = vigs_vector_append(&gl_backend->dpy_v1, + (12 * sizeof(GLfloat))); + tex_coords = vigs_vector_append(&gl_backend->dpy_v2, + (12 * sizeof(GLfloat))); + + vert_coords[6] = vert_coords[0] = 0; + vert_coords[7] = vert_coords[1] = gl_backend->dpy_tex_height; + vert_coords[2] = gl_backend->dpy_tex_width; + vert_coords[3] = gl_backend->dpy_tex_height; + vert_coords[8] = vert_coords[4] = gl_backend->dpy_tex_width; + vert_coords[9] = vert_coords[5] = 0; + vert_coords[10] = 0; + vert_coords[11] = 0; + + tex_coords[6] = tex_coords[0] = 0; + tex_coords[7] = tex_coords[1] = 0; + tex_coords[2] = 1; + tex_coords[3] = 0; + tex_coords[8] = tex_coords[4] = 1; + tex_coords[9] = tex_coords[5] = 1; + tex_coords[10] = 0; + tex_coords[11] = 1; + + if (scale) { + vigs_gl_draw_dpy_scale_prog(gl_backend, 6); + } else { + vigs_gl_draw_dpy_tex_prog(gl_backend, 6); + } + + gl_backend->Finish(); + + return true; + } else { + if (gl_backend->read_pixels_make_current(gl_backend, true)) { + if (!gl_backend->dpy_fb) { + gl_backend->GenFramebuffers(1, &gl_backend->dpy_fb); + + if (!gl_backend->dpy_fb) { + VIGS_LOG_CRITICAL("cannot create FB"); + exit(1); + } + + gl_backend->BindFramebuffer(GL_FRAMEBUFFER, gl_backend->dpy_fb); + } + + gl_backend->FramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, + GL_TEXTURE_2D, gl_backend->dpy_tex, 0); + + gl_backend->ReadPixels(0, 0, gl_backend->dpy_tex_width, + gl_backend->dpy_tex_height, + GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, + display_data); + + gl_backend->read_pixels_make_current(gl_backend, false); + + return true; + } else { + return false; + } + } +} + bool vigs_gl_backend_init(struct vigs_gl_backend *gl_backend) { if (!gl_backend->make_current(gl_backend, true)) { @@ -2177,9 +2593,10 @@ bool vigs_gl_backend_init(struct vigs_gl_backend *gl_backend) gl_backend->yuv420_prog_vtex_loc = gl_backend->GetUniformLocation(gl_backend->yuv420_prog_id, "vtex"); gl_backend->GenBuffers(1, &gl_backend->vbo); + gl_backend->GenBuffers(1, &gl_backend->dpy_vbo); - if (!gl_backend->vbo) { - VIGS_LOG_CRITICAL("cannot create VBO"); + if (!gl_backend->vbo || !gl_backend->dpy_vbo) { + VIGS_LOG_CRITICAL("cannot create VBOs"); goto fail; } @@ -2197,27 +2614,81 @@ bool vigs_gl_backend_init(struct vigs_gl_backend *gl_backend) gl_backend->UseProgram(gl_backend->tex_prog_id); gl_backend->cur_prog_id = gl_backend->tex_prog_id; - gl_backend->GenBuffers(1, &gl_backend->pbo); + gl_backend->dpy_tex_prog_vs_id = vigs_gl_create_shader(gl_backend, + (gl_backend->is_gl_2 ? g_vs_tex_source_gl2 : g_vs_tex_source_gl3), + GL_VERTEX_SHADER); - if (!gl_backend->pbo) { - VIGS_LOG_CRITICAL("cannot create read_pixels PBO"); + if (!gl_backend->dpy_tex_prog_vs_id) { goto fail; } + gl_backend->dpy_tex_prog_fs_id = vigs_gl_create_shader(gl_backend, + (gl_backend->is_gl_2 ? g_fs_dpy_source_gl2 : g_fs_dpy_source_gl3), + GL_FRAGMENT_SHADER); + + if (!gl_backend->dpy_tex_prog_fs_id) { + goto fail; + } + + gl_backend->dpy_tex_prog_id = vigs_gl_create_program(gl_backend, + gl_backend->dpy_tex_prog_vs_id, + gl_backend->dpy_tex_prog_fs_id); + + if (!gl_backend->dpy_tex_prog_id) { + goto fail; + } + + gl_backend->dpy_tex_prog_proj_loc = gl_backend->GetUniformLocation(gl_backend->dpy_tex_prog_id, "proj"); + gl_backend->dpy_tex_prog_vertCoord_loc = gl_backend->GetAttribLocation(gl_backend->dpy_tex_prog_id, "vertCoord"); + gl_backend->dpy_tex_prog_texCoord_loc = gl_backend->GetAttribLocation(gl_backend->dpy_tex_prog_id, "texCoord"); + gl_backend->dpy_tex_prog_brightness_loc = gl_backend->GetUniformLocation(gl_backend->dpy_tex_prog_id, "brightness"); + + gl_backend->dpy_scale_prog_vs_id = vigs_gl_create_shader(gl_backend, + (gl_backend->is_gl_2 ? g_vs_tex_source_gl2 : g_vs_tex_source_gl3), + GL_VERTEX_SHADER); + + if (!gl_backend->dpy_scale_prog_vs_id) { + goto fail; + } + + gl_backend->dpy_scale_prog_fs_id = vigs_gl_create_shader(gl_backend, + (gl_backend->is_gl_2 ? g_fs_scale_source_gl2 : g_fs_scale_source_gl3), + GL_FRAGMENT_SHADER); + + if (!gl_backend->dpy_scale_prog_fs_id) { + goto fail; + } + + gl_backend->dpy_scale_prog_id = vigs_gl_create_program(gl_backend, + gl_backend->dpy_scale_prog_vs_id, + gl_backend->dpy_scale_prog_fs_id); + + if (!gl_backend->dpy_scale_prog_id) { + goto fail; + } + + gl_backend->dpy_scale_prog_proj_loc = gl_backend->GetUniformLocation(gl_backend->dpy_scale_prog_id, "proj"); + gl_backend->dpy_scale_prog_vertCoord_loc = gl_backend->GetAttribLocation(gl_backend->dpy_scale_prog_id, "vertCoord"); + gl_backend->dpy_scale_prog_texCoord_loc = gl_backend->GetAttribLocation(gl_backend->dpy_scale_prog_id, "texCoord"); + gl_backend->dpy_scale_prog_texSize_loc = gl_backend->GetUniformLocation(gl_backend->dpy_scale_prog_id, "texSize"); + gl_backend->dpy_scale_prog_brightness_loc = gl_backend->GetUniformLocation(gl_backend->dpy_scale_prog_id, "brightness"); + gl_backend->Disable(GL_DEPTH_TEST); gl_backend->Disable(GL_BLEND); gl_backend->base.batch_start = &vigs_gl_backend_batch_start; gl_backend->base.create_surface = &vigs_gl_backend_create_surface; gl_backend->base.composite = &vigs_gl_backend_composite; + gl_backend->base.capture = &vigs_gl_backend_capture; gl_backend->base.batch_end = &vigs_gl_backend_batch_end; + gl_backend->base.display = &vigs_gl_backend_display; gl_backend->make_current(gl_backend, false); vigs_vector_init(&gl_backend->v1, 0); vigs_vector_init(&gl_backend->v2, 0); - - gl_backend->read_pixels_queue = work_queue_create("vigs_work_queue"); + vigs_vector_init(&gl_backend->dpy_v1, 0); + vigs_vector_init(&gl_backend->dpy_v2, 0); return true; @@ -2229,10 +2700,25 @@ fail: void vigs_gl_backend_cleanup(struct vigs_gl_backend *gl_backend) { - work_queue_destroy(gl_backend->read_pixels_queue); - if (gl_backend->make_current(gl_backend, true)) { - gl_backend->DeleteBuffers(1, &gl_backend->pbo); + if (gl_backend->dpy_tex) { + gl_backend->DeleteTextures(1, &gl_backend->dpy_tex); + } + gl_backend->DeleteBuffers(1, &gl_backend->dpy_vbo); + gl_backend->DetachShader(gl_backend->dpy_scale_prog_id, + gl_backend->dpy_scale_prog_vs_id); + gl_backend->DetachShader(gl_backend->dpy_scale_prog_id, + gl_backend->dpy_scale_prog_fs_id); + gl_backend->DeleteShader(gl_backend->dpy_scale_prog_vs_id); + gl_backend->DeleteShader(gl_backend->dpy_scale_prog_fs_id); + gl_backend->DeleteProgram(gl_backend->dpy_scale_prog_id); + gl_backend->DetachShader(gl_backend->dpy_tex_prog_id, + gl_backend->dpy_tex_prog_vs_id); + gl_backend->DetachShader(gl_backend->dpy_tex_prog_id, + gl_backend->dpy_tex_prog_fs_id); + gl_backend->DeleteShader(gl_backend->dpy_tex_prog_vs_id); + gl_backend->DeleteShader(gl_backend->dpy_tex_prog_fs_id); + gl_backend->DeleteProgram(gl_backend->dpy_tex_prog_id); gl_backend->DeleteBuffers(1, &gl_backend->vbo); gl_backend->DetachShader(gl_backend->yuv420_prog_id, gl_backend->yuv420_prog_vs_id); @@ -2273,6 +2759,8 @@ void vigs_gl_backend_cleanup(struct vigs_gl_backend *gl_backend) gl_backend->make_current(gl_backend, false); } + vigs_vector_cleanup(&gl_backend->dpy_v2); + vigs_vector_cleanup(&gl_backend->dpy_v1); vigs_vector_cleanup(&gl_backend->v2); vigs_vector_cleanup(&gl_backend->v1); } diff --git a/hw/vigs/vigs_gl_backend.h b/hw/vigs/vigs_gl_backend.h index bfa4110..584ec04 100644 --- a/hw/vigs/vigs_gl_backend.h +++ b/hw/vigs/vigs_gl_backend.h @@ -37,7 +37,6 @@ #include #include "winsys_gl.h" -struct work_queue; struct vigs_gl_pool; struct vigs_gl_backend @@ -121,6 +120,8 @@ struct vigs_gl_backend void (GLAPIENTRY* VertexAttribPointer)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid* pointer); void (GLAPIENTRY* Uniform4fv)(GLint location, GLsizei count, const GLfloat* value); void (GLAPIENTRY* UniformMatrix4fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); + void (GLAPIENTRY* Uniform2fv)(GLint location, GLsizei count, const GLfloat* value); + void (GLAPIENTRY* Uniform1f)(GLint location, GLfloat v0); void (GLAPIENTRY* Uniform1i)(GLint location, GLint v0); void (GLAPIENTRY* Uniform2f)(GLint location, GLfloat v0, GLfloat v1); void (GLAPIENTRY* ActiveTexture)(GLenum texture); @@ -163,7 +164,8 @@ struct vigs_gl_backend */ /* - * Other. + * Rendering thread related. + * @{ */ GLuint vao; @@ -213,10 +215,46 @@ struct vigs_gl_backend GLuint cur_prog_id; - struct work_queue *read_pixels_queue; + /* + * @} + * Display thread related. + * @{ + */ - GLuint pbo; - uint32_t pbo_size; + struct vigs_vector dpy_v1; + struct vigs_vector dpy_v2; + + GLuint dpy_vao; + + GLuint dpy_tex_prog_vs_id; + GLuint dpy_tex_prog_fs_id; + GLuint dpy_tex_prog_id; + GLint dpy_tex_prog_proj_loc; + GLint dpy_tex_prog_vertCoord_loc; + GLint dpy_tex_prog_texCoord_loc; + GLint dpy_tex_prog_brightness_loc; + + GLuint dpy_scale_prog_vs_id; + GLuint dpy_scale_prog_fs_id; + GLuint dpy_scale_prog_id; + GLint dpy_scale_prog_proj_loc; + GLint dpy_scale_prog_vertCoord_loc; + GLint dpy_scale_prog_texCoord_loc; + GLint dpy_scale_prog_texSize_loc; + GLint dpy_scale_prog_brightness_loc; + + GLuint dpy_vbo; + uint32_t dpy_vbo_size; + + GLuint dpy_tex; + GLuint dpy_fb; + GLfloat dpy_tex_ortho[16]; + uint32_t dpy_tex_width; + uint32_t dpy_tex_height; + + /* + * @} + */ }; bool vigs_gl_backend_init(struct vigs_gl_backend *gl_backend); diff --git a/hw/vigs/vigs_gl_backend_cgl.c b/hw/vigs/vigs_gl_backend_cgl.c index e21a7a1..db07be6 100644 --- a/hw/vigs/vigs_gl_backend_cgl.c +++ b/hw/vigs/vigs_gl_backend_cgl.c @@ -29,6 +29,7 @@ #include "vigs_gl_backend.h" #include "vigs_log.h" +#include "vigs_qt5.h" #include #include @@ -61,7 +62,6 @@ static const CGLPixelFormatAttribute pixel_format_legacy_attrs[] = kCGLPFAAlphaSize, 8, kCGLPFADepthSize, 24, kCGLPFAStencilSize, 8, - kCGLPFANoRecovery, kCGLPFAPBuffer, 0 }; @@ -74,7 +74,6 @@ static const CGLPixelFormatAttribute pixel_format_3_2_core_attrs[] = kCGLPFAAlphaSize, 8, kCGLPFADepthSize, 24, kCGLPFAStencilSize, 8, - kCGLPFANoRecovery, kCGLPFAOpenGLProfile, kCGLOGLPVersion_3_2_Core, 0 }; @@ -257,6 +256,7 @@ struct vigs_backend *vigs_gl_backend_create(void *display) CGLError error; CGLPixelFormatObj pixel_format; int n; + CGLContextObj qt5_ctx = NULL; gl_backend_cgl = g_malloc0(sizeof(*gl_backend_cgl)); @@ -321,6 +321,8 @@ struct vigs_backend *vigs_gl_backend_create(void *display) VIGS_GL_GET_PROC(VertexAttribPointer, glVertexAttribPointer); VIGS_GL_GET_PROC(Uniform4fv, glUniform4fv); VIGS_GL_GET_PROC(UniformMatrix4fv, glUniformMatrix4fv); + VIGS_GL_GET_PROC(Uniform2fv, glUniform2fv); + VIGS_GL_GET_PROC(Uniform1f, glUniform1f); VIGS_GL_GET_PROC(Uniform1i, glUniform1i); VIGS_GL_GET_PROC(Uniform2f, glUniform2f); VIGS_GL_GET_PROC(ActiveTexture, glActiveTexture); @@ -375,9 +377,16 @@ struct vigs_backend *vigs_gl_backend_create(void *display) goto fail2; } + if (vigs_qt5_onscreen_enabled()) { + qt5_ctx = (CGLContextObj)vigs_qt5_gl_context_create(gl_backend_cgl->base.is_gl_2); + if (!qt5_ctx) { + goto fail2; + } + } + if (!vigs_gl_backend_cgl_create_context(gl_backend_cgl, pixel_format, - NULL, + qt5_ctx, &gl_backend_cgl->context)) { goto fail3; } diff --git a/hw/vigs/vigs_gl_backend_glx.c b/hw/vigs/vigs_gl_backend_glx.c index 8faa13b..7b1fe13 100644 --- a/hw/vigs/vigs_gl_backend_glx.c +++ b/hw/vigs/vigs_gl_backend_glx.c @@ -29,6 +29,7 @@ #include "vigs_gl_backend.h" #include "vigs_log.h" +#include "vigs_qt5.h" #include #include @@ -85,6 +86,7 @@ struct vigs_gl_backend_glx PFNGLXMAKECONTEXTCURRENTPROC glXMakeContextCurrent; PFNGLXGETCURRENTCONTEXTPROC glXGetCurrentContext; PFNGLXCREATENEWCONTEXTPROC glXCreateNewContext; + PFNGLXQUERYCONTEXTPROC glXQueryContext; /* GLX_ARB_create_context */ PFNGLXCREATECONTEXTATTRIBSARBPROC glXCreateContextAttribsARB; @@ -96,6 +98,16 @@ struct vigs_gl_backend_glx GLXContext read_pixels_ctx; }; +static const char *gl_3_2_check_funcs[] = +{ + "glGenTransformFeedbacks", + "glBindTransformFeedback", + "glPauseTransformFeedback", + "glResumeTransformFeedback", + "glDeleteTransformFeedbacks", + "glVertexAttribDivisor" +}; + static bool vigs_gl_backend_glx_check_gl_version(struct vigs_gl_backend_glx *gl_backend_glx, bool *is_gl_2) { @@ -126,6 +138,7 @@ static bool vigs_gl_backend_glx_check_gl_version(struct vigs_gl_backend_glx *gl_ int n = 0; GLXFBConfig *configs = NULL; GLXContext ctx = NULL; + unsigned int i; tmp = getenv("GL_VERSION"); @@ -178,6 +191,19 @@ static bool vigs_gl_backend_glx_check_gl_version(struct vigs_gl_backend_glx *gl_ VIGS_LOG_INFO("glXCreateContextAttribsARB failed, using OpenGL 2.1"); } + if (*is_gl_2 == false) { + for (i = 0; + i < sizeof(gl_3_2_check_funcs)/sizeof(gl_3_2_check_funcs[0]); + ++i) { + if (!gl_backend_glx->glXGetProcAddress((const GLubyte *) + gl_3_2_check_funcs[i])) { + VIGS_LOG_INFO("Failed to find function \"%s\", " + "using OpenGL 2.1", gl_3_2_check_funcs[i]); + *is_gl_2 = true; + } + } + } + out: if (ctx) { gl_backend_glx->glXMakeContextCurrent(gl_backend_glx->dpy, 0, 0, NULL); @@ -192,28 +218,50 @@ out: static GLXFBConfig vigs_gl_backend_glx_get_config(struct vigs_gl_backend_glx *gl_backend_glx) { - int config_attribs[] = - { - GLX_DOUBLEBUFFER, True, - GLX_RED_SIZE, 8, - GLX_GREEN_SIZE, 8, - GLX_BLUE_SIZE, 8, - GLX_ALPHA_SIZE, 8, - GLX_BUFFER_SIZE, 32, - GLX_DEPTH_SIZE, 24, - GLX_STENCIL_SIZE, 8, - GLX_RENDER_TYPE, GLX_RGBA_BIT, - GLX_DRAWABLE_TYPE, GLX_PBUFFER_BIT, - None - }; int n = 0; GLXFBConfig *glx_configs; GLXFBConfig best_config = NULL; - glx_configs = gl_backend_glx->glXChooseFBConfig(gl_backend_glx->dpy, - DefaultScreen(gl_backend_glx->dpy), - config_attribs, - &n); + if (vigs_qt5_onscreen_enabled()) { + int config_attribs[] = + { + GLX_FBCONFIG_ID, 0, + None + }; + + if (gl_backend_glx->glXQueryContext(gl_backend_glx->dpy, + gl_backend_glx->ctx, + GLX_FBCONFIG_ID, + &config_attribs[1]) != Success) { + VIGS_LOG_CRITICAL("Unable to get context's GLX config"); + return NULL; + } + + glx_configs = gl_backend_glx->glXChooseFBConfig(gl_backend_glx->dpy, + DefaultScreen(gl_backend_glx->dpy), + config_attribs, + &n); + } else { + int config_attribs[] = + { + GLX_DOUBLEBUFFER, True, + GLX_RED_SIZE, 8, + GLX_GREEN_SIZE, 8, + GLX_BLUE_SIZE, 8, + GLX_ALPHA_SIZE, 8, + GLX_BUFFER_SIZE, 32, + GLX_DEPTH_SIZE, 24, + GLX_STENCIL_SIZE, 8, + GLX_RENDER_TYPE, GLX_RGBA_BIT, + GLX_DRAWABLE_TYPE, GLX_PBUFFER_BIT, + None + }; + + glx_configs = gl_backend_glx->glXChooseFBConfig(gl_backend_glx->dpy, + DefaultScreen(gl_backend_glx->dpy), + config_attribs, + &n); + } if (n > 0) { int tmp; @@ -357,14 +405,18 @@ static void vigs_gl_backend_glx_destroy(struct vigs_backend *backend) vigs_gl_backend_cleanup(&gl_backend_glx->base); - gl_backend_glx->glXDestroyContext(gl_backend_glx->dpy, - gl_backend_glx->read_pixels_ctx); - - gl_backend_glx->glXDestroyContext(gl_backend_glx->dpy, - gl_backend_glx->ctx); - - gl_backend_glx->glXDestroyPbuffer(gl_backend_glx->dpy, - gl_backend_glx->read_pixels_sfc); + if (gl_backend_glx->read_pixels_sfc) { + gl_backend_glx->glXDestroyPbuffer(gl_backend_glx->dpy, + gl_backend_glx->read_pixels_sfc); + } + if (!vigs_qt5_onscreen_enabled() && gl_backend_glx->ctx) { + gl_backend_glx->glXDestroyContext(gl_backend_glx->dpy, + gl_backend_glx->ctx); + } + if (gl_backend_glx->read_pixels_ctx) { + gl_backend_glx->glXDestroyContext(gl_backend_glx->dpy, + gl_backend_glx->read_pixels_ctx); + } gl_backend_glx->glXDestroyPbuffer(gl_backend_glx->dpy, gl_backend_glx->sfc); @@ -418,6 +470,7 @@ struct vigs_backend *vigs_gl_backend_create(void *display) VIGS_GLX_GET_PROC(PFNGLXGETCURRENTCONTEXTPROC, glXGetCurrentContext); VIGS_GLX_GET_PROC(PFNGLXCREATENEWCONTEXTPROC, glXCreateNewContext); VIGS_GLX_GET_PROC(PFNGLXCREATECONTEXTATTRIBSARBPROC, glXCreateContextAttribsARB); + VIGS_GLX_GET_PROC(PFNGLXQUERYCONTEXTPROC, glXQueryContext); VIGS_GL_GET_PROC(GenTextures, glGenTextures); VIGS_GL_GET_PROC(DeleteTextures, glDeleteTextures); @@ -470,6 +523,8 @@ struct vigs_backend *vigs_gl_backend_create(void *display) VIGS_GL_GET_PROC(VertexAttribPointer, glVertexAttribPointer); VIGS_GL_GET_PROC(Uniform4fv, glUniform4fv); VIGS_GL_GET_PROC(UniformMatrix4fv, glUniformMatrix4fv); + VIGS_GL_GET_PROC(Uniform2fv, glUniform2fv); + VIGS_GL_GET_PROC(Uniform1f, glUniform1f); VIGS_GL_GET_PROC(Uniform1i, glUniform1i); VIGS_GL_GET_PROC(Uniform2f, glUniform2f); VIGS_GL_GET_PROC(ActiveTexture, glActiveTexture); @@ -508,36 +563,64 @@ struct vigs_backend *vigs_gl_backend_create(void *display) VIGS_GL_GET_PROC(DeleteVertexArrays, glDeleteVertexArrays); } - config = vigs_gl_backend_glx_get_config(gl_backend_glx); + if (vigs_qt5_onscreen_enabled()) { + gl_backend_glx->ctx = + (GLXContext)vigs_qt5_gl_context_create(gl_backend_glx->base.is_gl_2); - if (!config) { - goto fail2; - } + if (!gl_backend_glx->ctx) { + goto fail2; + } - if (!vigs_gl_backend_glx_create_surface(gl_backend_glx, - config, - &gl_backend_glx->sfc)) { - goto fail2; - } + config = vigs_gl_backend_glx_get_config(gl_backend_glx); - if (!vigs_gl_backend_glx_create_surface(gl_backend_glx, - config, - &gl_backend_glx->read_pixels_sfc)) { - goto fail3; - } + if (!config) { + goto fail2; + } - if (!vigs_gl_backend_glx_create_context(gl_backend_glx, - config, - NULL, - &gl_backend_glx->ctx)) { - goto fail4; + if (!vigs_gl_backend_glx_create_surface(gl_backend_glx, + config, + &gl_backend_glx->read_pixels_sfc)) { + goto fail2; + } + + if (!vigs_gl_backend_glx_create_context(gl_backend_glx, + config, + gl_backend_glx->ctx, + &gl_backend_glx->read_pixels_ctx)) { + goto fail2; + } + } else { + config = vigs_gl_backend_glx_get_config(gl_backend_glx); + + if (!config) { + goto fail2; + } + + if (!vigs_gl_backend_glx_create_surface(gl_backend_glx, + config, + &gl_backend_glx->read_pixels_sfc)) { + goto fail2; + } + + if (!vigs_gl_backend_glx_create_context(gl_backend_glx, + config, + NULL, + &gl_backend_glx->ctx)) { + goto fail2; + } + + if (!vigs_gl_backend_glx_create_context(gl_backend_glx, + config, + gl_backend_glx->ctx, + &gl_backend_glx->read_pixels_ctx)) { + goto fail2; + } } - if (!vigs_gl_backend_glx_create_context(gl_backend_glx, + if (!vigs_gl_backend_glx_create_surface(gl_backend_glx, config, - gl_backend_glx->ctx, - &gl_backend_glx->read_pixels_ctx)) { - goto fail5; + &gl_backend_glx->sfc)) { + goto fail2; } gl_backend_glx->base.base.destroy = &vigs_gl_backend_glx_destroy; @@ -547,26 +630,29 @@ struct vigs_backend *vigs_gl_backend_create(void *display) gl_backend_glx->base.ws_info.context = gl_backend_glx->ctx; if (!vigs_gl_backend_init(&gl_backend_glx->base)) { - goto fail6; + goto fail3; } VIGS_LOG_DEBUG("created"); return &gl_backend_glx->base.base; -fail6: - gl_backend_glx->glXDestroyContext(gl_backend_glx->dpy, - gl_backend_glx->read_pixels_ctx); -fail5: - gl_backend_glx->glXDestroyContext(gl_backend_glx->dpy, - gl_backend_glx->ctx); -fail4: - gl_backend_glx->glXDestroyPbuffer(gl_backend_glx->dpy, - gl_backend_glx->read_pixels_sfc); fail3: gl_backend_glx->glXDestroyPbuffer(gl_backend_glx->dpy, gl_backend_glx->sfc); fail2: + if (gl_backend_glx->read_pixels_sfc) { + gl_backend_glx->glXDestroyPbuffer(gl_backend_glx->dpy, + gl_backend_glx->read_pixels_sfc); + } + if (!vigs_qt5_onscreen_enabled() && gl_backend_glx->ctx) { + gl_backend_glx->glXDestroyContext(gl_backend_glx->dpy, + gl_backend_glx->ctx); + } + if (gl_backend_glx->read_pixels_ctx) { + gl_backend_glx->glXDestroyContext(gl_backend_glx->dpy, + gl_backend_glx->read_pixels_ctx); + } dlclose(gl_backend_glx->handle); fail1: vigs_backend_cleanup(&gl_backend_glx->base.base); diff --git a/hw/vigs/vigs_gl_backend_wgl.c b/hw/vigs/vigs_gl_backend_wgl.c index 219eb4d..1d8add5 100644 --- a/hw/vigs/vigs_gl_backend_wgl.c +++ b/hw/vigs/vigs_gl_backend_wgl.c @@ -29,6 +29,7 @@ #include "vigs_gl_backend.h" #include "vigs_log.h" +#include "vigs_qt5.h" #include #include #include @@ -122,6 +123,16 @@ struct vigs_gl_backend_wgl HGLRC read_pixels_ctx; }; +static const char *gl_3_2_check_funcs[] = +{ + "glGenTransformFeedbacks", + "glBindTransformFeedback", + "glPauseTransformFeedback", + "glResumeTransformFeedback", + "glDeleteTransformFeedbacks", + "glVertexAttribDivisor" +}; + static bool vigs_gl_backend_wgl_check_gl_version(struct vigs_gl_backend_wgl *gl_backend_wgl, bool *is_gl_2) { @@ -155,6 +166,7 @@ static bool vigs_gl_backend_wgl_check_gl_version(struct vigs_gl_backend_wgl *gl_ UINT n = 0; PIXELFORMATDESCRIPTOR pix_fmt; HGLRC ctx; + unsigned int i; tmp = getenv("GL_VERSION"); @@ -235,6 +247,19 @@ static bool vigs_gl_backend_wgl_check_gl_version(struct vigs_gl_backend_wgl *gl_ VIGS_LOG_INFO("wglCreateContextAttribsARB failed, using OpenGL 2.1"); } + if (*is_gl_2 == false) { + for (i = 0; + i < sizeof(gl_3_2_check_funcs)/sizeof(gl_3_2_check_funcs[0]); + ++i) { + if (!gl_backend_wgl->wglGetProcAddress((LPCSTR) + gl_3_2_check_funcs[i])) { + VIGS_LOG_INFO("Failed to find function \"%s\", " + "using OpenGL 2.1", gl_3_2_check_funcs[i]); + *is_gl_2 = true; + } + } + } + gl_backend_wgl->wglDeleteContext(ctx); out3: @@ -455,6 +480,7 @@ struct vigs_backend *vigs_gl_backend_create(void *display) }; const char *ext_str = NULL; struct vigs_gl_backend_wgl *gl_backend_wgl = NULL; + HGLRC qt5_ctx = NULL; vigs_win_class.cbSize = sizeof(WNDCLASSEXA); vigs_win_class.style = 0; @@ -611,6 +637,8 @@ struct vigs_backend *vigs_gl_backend_create(void *display) VIGS_GL_GET_PROC(VertexAttribPointer, glVertexAttribPointer); VIGS_GL_GET_PROC(Uniform4fv, glUniform4fv); VIGS_GL_GET_PROC(UniformMatrix4fv, glUniformMatrix4fv); + VIGS_GL_GET_PROC(Uniform2fv, glUniform2fv); + VIGS_GL_GET_PROC(Uniform1f, glUniform1f); VIGS_GL_GET_PROC(Uniform1i, glUniform1i); VIGS_GL_GET_PROC(Uniform2f, glUniform2f); VIGS_GL_GET_PROC(ActiveTexture, glActiveTexture); @@ -655,6 +683,14 @@ struct vigs_backend *vigs_gl_backend_create(void *display) DestroyWindow(tmp_win); tmp_win = NULL; + if (vigs_qt5_onscreen_enabled()) { + qt5_ctx = + (HGLRC)vigs_qt5_gl_context_create(gl_backend_wgl->base.is_gl_2); + if (!qt5_ctx) { + goto fail; + } + } + gl_backend_wgl->win = CreateWindow(VIGS_WGL_WIN_CLASS, "VIGSWin", WS_DISABLED | WS_POPUP, 0, 0, 1, 1, NULL, NULL, 0, 0); @@ -690,7 +726,7 @@ struct vigs_backend *vigs_gl_backend_create(void *display) } if (!vigs_gl_backend_wgl_create_context(gl_backend_wgl, - NULL, + qt5_ctx, &gl_backend_wgl->ctx)) { goto fail; } diff --git a/hw/vigs/vigs_inc/GL/gl.h b/hw/vigs/vigs_inc/GL/gl.h index e65e1bc..43eefe3 100644 --- a/hw/vigs/vigs_inc/GL/gl.h +++ b/hw/vigs/vigs_inc/GL/gl.h @@ -2087,7 +2087,7 @@ typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLsh #endif /* GL_GLEXT_LEGACY */ - +#ifdef GL_ARB_shader_objects #if GL_ARB_shader_objects #ifndef GL_MESA_shader_debug @@ -2106,7 +2106,7 @@ GLAPI GLsizei GLAPIENTRY glGetDebugLogLengthMESA (GLhandleARB obj, GLenum logTyp #endif /* GL_MESA_shader_debug */ #endif /* GL_ARB_shader_objects */ - +#endif /* * ???. GL_MESA_packed_depth_stencil diff --git a/hw/vigs/vigs_offscreen_server.c b/hw/vigs/vigs_offscreen_server.c new file mode 100644 index 0000000..3f961a7 --- /dev/null +++ b/hw/vigs/vigs_offscreen_server.c @@ -0,0 +1,147 @@ +/* + * vigs + * + * Copyright (c) 2000 - 2013 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * Stanislav Vorobiov + * Jinhyung Jo + * YeongKyoon Lee + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#include "vigs_offscreen_server.h" +#include "vigs_backend.h" +#include "work_queue.h" + +struct vigs_display_work_item +{ + struct work_queue_item base; + + struct vigs_server *server; +}; + +static void vigs_offscreen_server_display_work(struct work_queue_item *wq_item) +{ + struct vigs_display_work_item *item = (struct vigs_display_work_item*)wq_item; + struct vigs_server *server = item->server; + int index = (&server->capture_buffers[0] == server->captured) ? 1 : 0; + + vigs_server_finish_update_display( + server, server->backend->display(server->backend, + server->capture_buffers[index].data)); + + g_free(item); +} + +static bool vigs_offscreen_server_begin_update(struct vigs_server *server, + bool is_capturing, + bool force) +{ + return vigs_server_process_captured(server, force); +} + +static void vigs_offscreen_server_finish_update(struct vigs_server *server, + bool composited, + bool dirty) +{ + if (dirty) { + vigs_server_finish_update_display(server, true); + } else if (composited) { + struct vigs_offscreen_server *offscreen_server = + (struct vigs_offscreen_server*)server; + + struct vigs_display_work_item *item; + + item = g_malloc(sizeof(*item)); + + work_queue_item_init(&item->base, &vigs_offscreen_server_display_work); + + item->server = server; + + work_queue_add_item(offscreen_server->display_queue, &item->base); + } else { + vigs_server_finish_update_display(server, false); + } +} + +static bool vigs_offscreen_server_display(struct vigs_server *server, + bool *displayed) +{ + *displayed = false; + return false; +} + +static bool vigs_offscreen_server_capture(struct vigs_server *server, + struct vigs_surface *sfc, + void *pixels) +{ + if (server->captured && server->captured->data) { + memcpy(pixels, + server->captured->data, + sfc->stride * sfc->ws_sfc->height); + + return true; + } + + return false; +} + +static void vigs_offscreen_server_destroy(struct vigs_server *server) +{ + struct vigs_offscreen_server *offscreen_server = + (struct vigs_offscreen_server*)server; + + work_queue_destroy(offscreen_server->display_queue); + + vigs_server_cleanup(server); + + g_free(server); +} + +struct vigs_server *vigs_offscreen_server_create(uint8_t *vram_ptr, + uint8_t *ram_ptr, + struct vigs_display_ops *display_ops, + struct vigs_capture_ops *capture_ops, + void *display_user_data, + struct vigs_backend *backend, + struct work_queue *render_queue) +{ + struct vigs_offscreen_server *server = NULL; + + server = g_malloc0(sizeof(*server)); + + if (!vigs_server_init(&server->base, vram_ptr, ram_ptr, + display_ops, capture_ops, display_user_data, + backend, render_queue)) { + g_free(server); + return NULL; + } + + server->display_queue = work_queue_create("display_queue"); + + server->base.begin_update = &vigs_offscreen_server_begin_update; + server->base.finish_update = &vigs_offscreen_server_finish_update; + server->base.display = &vigs_offscreen_server_display; + server->base.capture = &vigs_offscreen_server_capture; + server->base.destroy = &vigs_offscreen_server_destroy; + + return &server->base; +} diff --git a/hw/vigs/vigs_offscreen_server.h b/hw/vigs/vigs_offscreen_server.h new file mode 100644 index 0000000..f0e715f --- /dev/null +++ b/hw/vigs/vigs_offscreen_server.h @@ -0,0 +1,50 @@ +/* + * vigs + * + * Copyright (c) 2000 - 2013 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * Stanislav Vorobiov + * Jinhyung Jo + * YeongKyoon Lee + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#ifndef _QEMU_VIGS_OFFSCREEN_SERVER_H +#define _QEMU_VIGS_OFFSCREEN_SERVER_H + +#include "vigs_server.h" + +struct vigs_offscreen_server +{ + struct vigs_server base; + + struct work_queue *display_queue; +}; + +struct vigs_server *vigs_offscreen_server_create(uint8_t *vram_ptr, + uint8_t *ram_ptr, + struct vigs_display_ops *display_ops, + struct vigs_capture_ops *capture_ops, + void *display_user_data, + struct vigs_backend *backend, + struct work_queue *render_queue); + +#endif diff --git a/hw/vigs/vigs_onscreen_server.c b/hw/vigs/vigs_onscreen_server.c new file mode 100644 index 0000000..7fcc352 --- /dev/null +++ b/hw/vigs/vigs_onscreen_server.c @@ -0,0 +1,190 @@ +/* + * vigs + * + * Copyright (c) 2000 - 2013 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * Stanislav Vorobiov + * Jinhyung Jo + * YeongKyoon Lee + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#include "vigs_onscreen_server.h" +#include "vigs_backend.h" +#include "vigs_log.h" +#include "work_queue.h" + +static bool vigs_onscreen_server_begin_update(struct vigs_server *server, + bool is_capturing, + bool force) +{ + struct vigs_onscreen_server *onscreen_server = + (struct vigs_onscreen_server*)server; + + qemu_mutex_lock(&onscreen_server->mutex); + + if (force) { + ++onscreen_server->invalidate_cnt; + } + + if (is_capturing) { + /* + * If capturing is in progress then just skip this update. + */ + goto out; + } + + onscreen_server->updated = false; + onscreen_server->composited = false; + onscreen_server->dirty = false; + +out: + qemu_mutex_unlock(&onscreen_server->mutex); + + return false; +} + +static void vigs_onscreen_server_finish_update(struct vigs_server *server, + bool composited, + bool dirty) +{ + struct vigs_onscreen_server *onscreen_server = + (struct vigs_onscreen_server*)server; + + qemu_mutex_lock(&onscreen_server->mutex); + + onscreen_server->updated = true; + onscreen_server->composited = composited; + onscreen_server->dirty = dirty; + + qemu_mutex_unlock(&onscreen_server->mutex); + + qemu_cond_signal(&onscreen_server->cond); +} + +static bool vigs_onscreen_server_display(struct vigs_server *server, + bool *displayed) +{ + struct vigs_onscreen_server *onscreen_server = + (struct vigs_onscreen_server*)server; + bool force = false; + + qemu_mutex_lock(&onscreen_server->mutex); + + /* + * Wait until rendering is finished. + */ + while (!onscreen_server->updated) { + qemu_cond_wait(&onscreen_server->cond, &onscreen_server->mutex); + } + + if (onscreen_server->invalidate_cnt > 0) { + --onscreen_server->invalidate_cnt; + force = true; + } + + onscreen_server->updated = false; + + qemu_mutex_unlock(&onscreen_server->mutex); + + *displayed = true; + + if (onscreen_server->dirty) { + /* + * Software composition took place, finish ASAP and + * process captured data. + */ + vigs_server_finish_update_display(server, true); + return vigs_server_process_captured(server, force); + } else if (onscreen_server->composited) { + /* + * Hw composition took place, display the content. + */ + server->backend->display(server->backend, NULL); + } else if (force) { + /* + * Nothing happened, but if it's a forced display, then + * we should try to display hw stuff first, if there isn't any + * then display sw stuff. + */ + if (!server->backend->display(server->backend, NULL)) { + vigs_server_finish_update_display(server, false); + return vigs_server_process_captured(server, force); + } + } else { + *displayed = false; + } + + vigs_server_finish_update_display(server, false); + + return false; +} + +static bool vigs_onscreen_server_capture(struct vigs_server *server, + struct vigs_surface *sfc, + void *pixels) +{ + return server->backend->capture(sfc, pixels); +} + +static void vigs_onscreen_server_destroy(struct vigs_server *server) +{ + struct vigs_onscreen_server *onscreen_server = + (struct vigs_onscreen_server*)server; + + qemu_cond_destroy(&onscreen_server->cond); + qemu_mutex_destroy(&onscreen_server->mutex); + + vigs_server_cleanup(server); + + g_free(server); +} + +struct vigs_server *vigs_onscreen_server_create(uint8_t *vram_ptr, + uint8_t *ram_ptr, + struct vigs_display_ops *display_ops, + struct vigs_capture_ops *capture_ops, + void *display_user_data, + struct vigs_backend *backend, + struct work_queue *render_queue) +{ + struct vigs_onscreen_server *server = NULL; + + server = g_malloc0(sizeof(*server)); + + if (!vigs_server_init(&server->base, vram_ptr, ram_ptr, + display_ops, capture_ops, display_user_data, + backend, render_queue)) { + g_free(server); + return NULL; + } + + qemu_mutex_init(&server->mutex); + qemu_cond_init(&server->cond); + + server->base.begin_update = &vigs_onscreen_server_begin_update; + server->base.finish_update = &vigs_onscreen_server_finish_update; + server->base.display = &vigs_onscreen_server_display; + server->base.capture = &vigs_onscreen_server_capture; + server->base.destroy = &vigs_onscreen_server_destroy; + + return &server->base; +} diff --git a/hw/vigs/vigs_onscreen_server.h b/hw/vigs/vigs_onscreen_server.h new file mode 100644 index 0000000..b0ea1e9 --- /dev/null +++ b/hw/vigs/vigs_onscreen_server.h @@ -0,0 +1,56 @@ +/* + * vigs + * + * Copyright (c) 2000 - 2013 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * Stanislav Vorobiov + * Jinhyung Jo + * YeongKyoon Lee + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#ifndef _QEMU_VIGS_ONSCREEN_SERVER_H +#define _QEMU_VIGS_ONSCREEN_SERVER_H + +#include "vigs_server.h" + +struct vigs_onscreen_server +{ + struct vigs_server base; + + QemuMutex mutex; + QemuCond cond; + bool updated; + bool composited; + bool dirty; + + int invalidate_cnt; +}; + +struct vigs_server *vigs_onscreen_server_create(uint8_t *vram_ptr, + uint8_t *ram_ptr, + struct vigs_display_ops *display_ops, + struct vigs_capture_ops *capture_ops, + void *display_user_data, + struct vigs_backend *backend, + struct work_queue *render_queue); + +#endif diff --git a/hw/vigs/vigs_qt5.cpp b/hw/vigs/vigs_qt5.cpp new file mode 100644 index 0000000..1166c8d --- /dev/null +++ b/hw/vigs/vigs_qt5.cpp @@ -0,0 +1,171 @@ +/* + * vigs + * + * Copyright (c) 2000 - 2013 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * Stanislav Vorobiov + * Jinhyung Jo + * YeongKyoon Lee + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#include "vigs_qt5.h" +#include "config-host.h" +#include +#include +#include +#include + +extern QApplication *qt5App; +extern QOpenGLContext *qt5GLContext; +extern QSurfaceFormat qt5GLFormat; + +extern void qt5_register_capture_request_listener(void *listener, + void (*handler)(void *)); +extern void qt5_unregister_capture_request_listener(void *listener); +extern void qt5_process_captured(bool captured, void *pixels, + int width, int height); + +bool vigs_qt5_onscreen_enabled(void) +{ +#ifndef CONFIG_DARWIN + /* Qt5 bug, QGLWidget has some problem on MacOS. + * (scrambled screen when resizing, invalid region masking) */ + if (qt5App != NULL) { + return true; + } +#endif + + return false; +} + +void *vigs_qt5_display(void) +{ + if (!qt5App) { + return NULL; + } + + QPlatformNativeInterface *native = + QGuiApplication::platformNativeInterface(); + + return native->nativeResourceForScreen(QByteArray("display"), + QGuiApplication::primaryScreen()); +} + +void *vigs_qt5_gl_context_create(bool is_gl2) +{ + if (!qt5App) { + fprintf(stderr, "QT5 not enabled!\n"); + return NULL; + } + + if (qt5GLContext) { + fprintf(stderr, "QT5 GL context already created!\n"); + return NULL; + } + + qt5GLContext = new QOpenGLContext(); + + QSurfaceFormat format; + + format.setRedBufferSize(8); + format.setGreenBufferSize(8); + format.setBlueBufferSize(8); + format.setAlphaBufferSize(8); + format.setDepthBufferSize(24); + format.setStencilBufferSize(8); + + if (!is_gl2) { + format.setMajorVersion(3); +#ifdef CONFIG_DARWIN + format.setMinorVersion(2); + format.setProfile(QSurfaceFormat::CoreProfile); +#else + format.setMinorVersion(1); +#endif + } + + qt5GLContext->setScreen(QGuiApplication::primaryScreen()); + qt5GLContext->setFormat(format); + + if (!qt5GLContext->create()) { + fprintf(stderr, "Cannot create QT5 GL context!\n"); + + delete qt5GLContext; + qt5GLContext = NULL; + + return NULL; + } + + if (!is_gl2) { + if ((qt5GLContext->format().majorVersion() < 3) || + ((qt5GLContext->format().majorVersion() == 3) && + (qt5GLContext->format().minorVersion() < 1))) { + fprintf(stderr, "Cannot create QT5 3.1 GL context!\n"); + + delete qt5GLContext; + qt5GLContext = NULL; + + return NULL; + } + } + + QPlatformNativeInterface *native = + QGuiApplication::platformNativeInterface(); + + void *ret = NULL; + +#if defined(CONFIG_LINUX) + ret = native->nativeResourceForContext(QByteArray("glxcontext"), qt5GLContext); +#elif defined(CONFIG_WIN32) + ret = native->nativeResourceForContext(QByteArray("renderingContext"), qt5GLContext); +#elif defined(CONFIG_DARWIN) + ret = native->nativeResourceForContext(QByteArray("cglContextObj"), qt5GLContext); +#endif + + if (!ret) { + fprintf(stderr, "Cannot get native QT5 GL context!\n"); + + delete qt5GLContext; + qt5GLContext = NULL; + } + + qt5GLFormat = format; + + return ret; +} + +void vigs_qt5_register_capture_request_listener(void *listener, + void (*handler)(void *)) +{ + qt5_register_capture_request_listener(listener, handler); +} + +void vigs_qt5_unregister_capture_request_listener(void *listener) +{ + qt5_unregister_capture_request_listener(listener); +} + +void vigs_qt5_process_captured(bool captured, void *pixels, + int width, int height) +{ + qt5_process_captured(captured, pixels, width, height); +} diff --git a/hw/vigs/vigs_qt5.h b/hw/vigs/vigs_qt5.h new file mode 100644 index 0000000..b88c84e --- /dev/null +++ b/hw/vigs/vigs_qt5.h @@ -0,0 +1,53 @@ +/* + * vigs + * + * Copyright (c) 2000 - 2013 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * Stanislav Vorobiov + * Jinhyung Jo + * YeongKyoon Lee + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#ifndef _QEMU_VIGS_QT5_H +#define _QEMU_VIGS_QT5_H + +#ifdef __cplusplus +extern "C" { +#endif + +bool vigs_qt5_onscreen_enabled(void); + +void *vigs_qt5_display(void); + +void *vigs_qt5_gl_context_create(bool is_gl2); + +void vigs_qt5_register_capture_request_listener(void *listener, + void (*handler)(void *)); +void vigs_qt5_unregister_capture_request_listener(void *listener); +void vigs_qt5_process_captured(bool captured, void *pixels, + int width, int height); + +#ifdef __cplusplus +}; +#endif + +#endif diff --git a/hw/vigs/vigs_qt5_stub.c b/hw/vigs/vigs_qt5_stub.c new file mode 100644 index 0000000..94bf46d --- /dev/null +++ b/hw/vigs/vigs_qt5_stub.c @@ -0,0 +1,71 @@ +/* + * vigs stub + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * Kitae Kim + * Sangho Park + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +/* + * This is just a temporary implemention to fix compilation errors + * in case of "disable-qt" configuration. We should consider it later. + */ + +#include "emulator_common.h" +#include "vigs_qt5.h" + +uint32_t qt5_window_width = 0; +uint32_t qt5_window_height = 0; +int qt5_window_angle = 0; + +bool vigs_qt5_onscreen_enabled(void) +{ + return false; +} + +void *vigs_qt5_display(void) +{ + return NULL; +} + +void *vigs_qt5_gl_context_create(bool is_gl2) +{ + return NULL; +} + +void vigs_qt5_register_capture_request_listener(void *listener, + void (*handler)(void *)) +{ + return; +} + +void vigs_qt5_unregister_capture_request_listener(void *listener) +{ + return; +} + +void vigs_qt5_process_captured(bool captured, void *pixels, + int width, int height) +{ + return; +} diff --git a/hw/vigs/vigs_server.c b/hw/vigs/vigs_server.c index 4212453..3c3b184 100644 --- a/hw/vigs/vigs_server.c +++ b/hw/vigs/vigs_server.c @@ -438,6 +438,36 @@ static void vigs_server_work(struct work_queue_item *wq_item) g_free(item); } +static void vigs_server_capture_work(struct work_queue_item *wq_item) +{ + struct vigs_server_work_item *item = (struct vigs_server_work_item*)wq_item; + struct vigs_server *server = item->server; + struct vigs_surface *root_sfc = server->root_sfc; + bool captured = false; + void *pixels; + + if (!root_sfc) { + return; + } + + qemu_mutex_lock(&server->capture_mutex); + + pixels = vigs_server_get_capture_buffer(server, root_sfc); + + if (pixels) { + captured = server->capture(server, root_sfc, pixels); + } + + server->capture_ops->process_captured(captured, + pixels, + root_sfc->ws_sfc->width, + root_sfc->ws_sfc->height); + + qemu_mutex_unlock(&server->capture_mutex); + + g_free(item); +} + static void vigs_server_set_root_surface_work(struct work_queue_item *wq_item) { struct vigs_server_set_root_surface_work_item *item = @@ -486,111 +516,52 @@ out: g_free(item); } -static uint8_t *vigs_server_update_display_start_cb(void *user_data, - uint32_t width, - uint32_t height, - uint32_t stride, - vigsp_surface_format format) -{ - struct vigs_server *server = user_data; - - qemu_mutex_lock(&server->capture_mutex); - - if ((server->captured.stride != stride) || - (server->captured.height != height)) { - g_free(server->captured.data); - server->captured.data = g_malloc(stride * height); - } - - server->captured.width = width; - server->captured.height = height; - server->captured.stride = stride; - server->captured.format = format; - - return server->captured.data; -} - -static void vigs_server_update_display_end_cb(void *user_data, - bool was_started, - bool dirty) -{ - struct vigs_server *server = user_data; - uint32_t capture_fence_seq; - - if (!was_started) { - qemu_mutex_lock(&server->capture_mutex); - } - - if (dirty) { - server->captured.dirty = true; - } - - server->is_capturing = false; - capture_fence_seq = server->capture_fence_seq; - server->capture_fence_seq = 0; - - qemu_mutex_unlock(&server->capture_mutex); - - if (capture_fence_seq) { - server->display_ops->fence_ack(server->display_user_data, - capture_fence_seq); - } -} - static void vigs_server_update_display_work(struct work_queue_item *wq_item) { struct vigs_server_work_item *item = (struct vigs_server_work_item*)wq_item; struct vigs_server *server = item->server; struct vigs_surface *root_sfc = server->root_sfc; - int i; - bool planes_on = false; bool planes_dirty = false; + bool dirty = false; + bool composited = false; + int i, index; if (!root_sfc) { /* * If no root surface then this is a no-op. * TODO: Can planes be enabled without a root surface ? */ - vigs_server_update_display_end_cb(server, false, false); goto out; } for (i = 0; i < VIGS_MAX_PLANES; ++i) { - if (!planes_dirty) { - planes_dirty = vigs_plane_dirty(&server->planes[i]); - } - - if (!planes_on) { - planes_on = vigs_plane_enabled(&server->planes[i]); - } + planes_dirty |= vigs_plane_dirty(&server->planes[i]); } - if (root_sfc->ptr && !root_sfc->is_dirty && !planes_on) { - /* - * Root surface is scanout, it's not dirty and planes not on, - * finish immediately. - */ - uint8_t *buff = vigs_server_update_display_start_cb(server, - root_sfc->ws_sfc->width, - root_sfc->ws_sfc->height, - root_sfc->stride, - root_sfc->format); - - memcpy(buff, - root_sfc->ptr, - root_sfc->stride * root_sfc->ws_sfc->height); - - vigs_server_update_display_end_cb(server, true, true); - } else if (root_sfc->ptr || root_sfc->is_dirty || planes_dirty) { + if (root_sfc->ptr || root_sfc->is_dirty || planes_dirty) { /* * Composite root surface and planes. */ + composited = true; + + index = (&server->capture_buffers[0] == server->captured) ? 1 : 0; + + if ((server->capture_buffers[index].stride != root_sfc->stride) || + (server->capture_buffers[index].height != root_sfc->ws_sfc->height)) { + g_free(server->capture_buffers[index].data); + server->capture_buffers[index].data = g_malloc(root_sfc->stride * root_sfc->ws_sfc->height); + } + + server->capture_buffers[index].width = root_sfc->ws_sfc->width; + server->capture_buffers[index].height = root_sfc->ws_sfc->height; + server->capture_buffers[index].stride = root_sfc->stride; + server->capture_buffers[index].format = root_sfc->format; + server->backend->batch_start(server->backend); - server->backend->composite(root_sfc, - &server->planes[0], - &vigs_server_update_display_start_cb, - &vigs_server_update_display_end_cb, - server); + dirty = server->backend->composite(root_sfc, + &server->planes[0], + planes_dirty, + server->capture_buffers[index].data); server->backend->batch_end(server->backend); root_sfc->is_dirty = false; @@ -598,14 +569,11 @@ static void vigs_server_update_display_work(struct work_queue_item *wq_item) for (i = 0; i < VIGS_MAX_PLANES; ++i) { vigs_plane_reset_dirty(&server->planes[i]); } - } else { - /* - * No changes, no-op. - */ - vigs_server_update_display_end_cb(server, false, false); } out: + server->finish_update(server, composited, dirty); + g_free(item); } @@ -725,23 +693,36 @@ static struct vigs_comm_ops vigs_server_dispatch_ops = .batch = &vigs_server_dispatch_batch }; -struct vigs_server *vigs_server_create(uint8_t *vram_ptr, - uint8_t *ram_ptr, - struct vigs_display_ops *display_ops, - void *display_user_data, - struct vigs_backend *backend, - struct work_queue *render_queue) +static void vigs_server_capture(void *data) { - struct vigs_server *server = NULL; + struct vigs_server *server = (struct vigs_server*)data; + struct vigs_server_work_item *item; + + item = g_malloc(sizeof(*item)); - server = g_malloc0(sizeof(*server)); + work_queue_item_init(&item->base, &vigs_server_capture_work); + item->server = server; + + work_queue_add_item(server->capture_queue, &item->base); +} + +bool vigs_server_init(struct vigs_server *server, + uint8_t *vram_ptr, + uint8_t *ram_ptr, + struct vigs_display_ops *display_ops, + struct vigs_capture_ops *capture_ops, + void *display_user_data, + struct vigs_backend *backend, + struct work_queue *render_queue) +{ server->wsi.ws_info = backend->ws_info; server->wsi.acquire_surface = &vigs_server_acquire_surface; server->wsi.fence_ack = &vigs_server_fence_ack; server->vram_ptr = vram_ptr; server->display_ops = display_ops; + server->capture_ops = capture_ops; server->display_user_data = display_user_data; server->backend = backend; server->render_queue = render_queue; @@ -749,7 +730,7 @@ struct vigs_server *vigs_server_create(uint8_t *vram_ptr, server->comm = vigs_comm_create(ram_ptr); if (!server->comm) { - goto fail; + return false; } server->surfaces = g_hash_table_new_full(g_direct_hash, @@ -759,24 +740,28 @@ struct vigs_server *vigs_server_create(uint8_t *vram_ptr, qemu_mutex_init(&server->capture_mutex); - return server; + server->captured = &server->capture_buffers[0]; -fail: - g_free(server); + server->capture_queue = work_queue_create("capture_queue"); + server->capture_ops->register_listener(server, + vigs_server_capture); - return NULL; + return true; } -void vigs_server_destroy(struct vigs_server *server) +void vigs_server_cleanup(struct vigs_server *server) { vigs_server_reset(server); + server->capture_ops->unregister_listener(server); + g_hash_table_destroy(server->surfaces); vigs_comm_destroy(server->comm); server->backend->destroy(server->backend); qemu_mutex_destroy(&server->capture_mutex); - g_free(server->captured.data); - g_free(server); + g_free(server->capture_buffers[0].data); + g_free(server->capture_buffers[1].data); + g_free(server->capture_buffers[2].data); } void vigs_server_reset(struct vigs_server *server) @@ -813,87 +798,113 @@ void vigs_server_dispatch(struct vigs_server *server, bool vigs_server_update_display(struct vigs_server *server, int invalidate_cnt) { + bool is_capturing = server->is_capturing; + + bool updated = server->begin_update(server, is_capturing, (invalidate_cnt > 0)); + + if (!is_capturing) { + struct vigs_server_work_item *item; + + item = g_malloc(sizeof(*item)); + + work_queue_item_init(&item->base, &vigs_server_update_display_work); + + item->server = server; + + server->is_capturing = true; + + work_queue_add_item(server->render_queue, &item->base); + } + + return updated; +} + +bool vigs_server_display(struct vigs_server *server, bool *displayed) +{ + return server->display(server, displayed); +} + +void *vigs_server_get_capture_buffer(struct vigs_server *server, + struct vigs_surface *sfc) +{ + const int index = 2; + + if ((server->capture_buffers[index].stride != sfc->stride) || + (server->capture_buffers[index].height != sfc->ws_sfc->height)) { + g_free(server->capture_buffers[index].data); + server->capture_buffers[index].data = g_malloc(sfc->stride * sfc->ws_sfc->height); + } + + server->capture_buffers[index].width = sfc->ws_sfc->width; + server->capture_buffers[index].height = sfc->ws_sfc->height; + server->capture_buffers[index].stride = sfc->stride; + server->capture_buffers[index].format = sfc->format; + + return server->capture_buffers[index].data; +} + +bool vigs_server_process_captured(struct vigs_server *server, bool force) +{ bool updated = false; - uint32_t sfc_bpp; uint32_t display_stride, display_bpp; uint8_t *display_data; qemu_mutex_lock(&server->capture_mutex); - if (!server->captured.data || - (!server->captured.dirty && invalidate_cnt <= 0)) { + if (!server->captured->data || + (!server->captured->dirty && !force)) { goto out; } - server->captured.dirty = false; - updated = true; - - sfc_bpp = vigs_format_bpp(server->captured.format); + server->captured->dirty = false; server->display_ops->resize(server->display_user_data, - server->captured.width, - server->captured.height); + server->captured->width, + server->captured->height); display_stride = server->display_ops->get_stride(server->display_user_data); display_bpp = server->display_ops->get_bpp(server->display_user_data); display_data = server->display_ops->get_data(server->display_user_data); - if (sfc_bpp != display_bpp) { - VIGS_LOG_CRITICAL("bpp mismatch"); + if ((vigs_format_bpp(server->captured->format) != display_bpp) || + (server->captured->stride != display_stride)) { + VIGS_LOG_CRITICAL("bpp/format mismatch"); assert(false); - exit(1); - } - - if (display_stride == server->captured.stride) { - switch (server->captured.format) { - case vigsp_surface_bgrx8888: - case vigsp_surface_bgra8888: - memcpy(display_data, - server->captured.data, - server->captured.height * display_stride); - break; - default: - assert(false); - VIGS_LOG_CRITICAL("unknown format: %d", server->captured.format); - exit(1); - } - } else { - uint32_t i; - uint8_t *src = server->captured.data; - uint8_t *dst = display_data; - - for (i = 0; i < server->captured.height; ++i) { - switch (server->captured.format) { - case vigsp_surface_bgrx8888: - case vigsp_surface_bgra8888: - memcpy(dst, src, server->captured.width * sfc_bpp); - break; - default: - assert(false); - VIGS_LOG_CRITICAL("unknown format: %d", server->captured.format); - exit(1); - } - src += server->captured.stride; - dst += display_stride; - } + goto out; } + memcpy(display_data, + server->captured->data, + server->captured->stride * server->captured->height); + + updated = true; + out: qemu_mutex_unlock(&server->capture_mutex); - if (!server->is_capturing) { - struct vigs_server_work_item *item; + return updated; +} - item = g_malloc(sizeof(*item)); +void vigs_server_finish_update_display(struct vigs_server *server, bool dirty) +{ + uint32_t capture_fence_seq = 0; - work_queue_item_init(&item->base, &vigs_server_update_display_work); + qemu_mutex_lock(&server->capture_mutex); - item->server = server; + if (dirty) { + int index = (&server->capture_buffers[0] == server->captured) ? 1 : 0; + server->capture_buffers[index].dirty = true; + server->captured = &server->capture_buffers[index]; + } - server->is_capturing = true; + server->is_capturing = false; + capture_fence_seq = server->capture_fence_seq; + server->capture_fence_seq = 0; - work_queue_add_item(server->render_queue, &item->base); - } + qemu_mutex_unlock(&server->capture_mutex); - return updated; + if (capture_fence_seq) { + server->display_ops->fence_ack(server->display_user_data, + capture_fence_seq); + } } diff --git a/hw/vigs/vigs_server.h b/hw/vigs/vigs_server.h index 7bb902b..15f64e5 100644 --- a/hw/vigs/vigs_server.h +++ b/hw/vigs/vigs_server.h @@ -67,6 +67,17 @@ struct vigs_display_ops uint32_t /*fence_seq*/); }; +struct vigs_capture_ops +{ + void (*register_listener)(void */*listener*/, + void (*handler)(void */*listener*/)); + void (*unregister_listener)(void */*listener*/); + void (*process_captured)(bool /*captured*/, + void */*pixels*/, + uint32_t /*width*/, + uint32_t /*height*/); +}; + struct vigs_server { struct winsys_interface wsi; @@ -74,12 +85,16 @@ struct vigs_server uint8_t *vram_ptr; struct vigs_display_ops *display_ops; + struct vigs_capture_ops *capture_ops; + void *display_user_data; struct vigs_backend *backend; struct work_queue *render_queue; + struct work_queue *capture_queue; + struct vigs_comm *comm; /* @@ -110,21 +125,39 @@ struct vigs_server uint32_t stride; vigsp_surface_format format; bool dirty; - } captured; + } capture_buffers[3], *captured; /* * @} */ + + bool (*begin_update)(struct vigs_server */*server*/, + bool /*is_capturing*/, + bool /*force*/); + + void (*finish_update)(struct vigs_server */*server*/, + bool /*composited*/, + bool /*dirty*/); + + bool (*display)(struct vigs_server */*server*/, bool */*displayed*/); + + bool (*capture)(struct vigs_server */*server*/, + struct vigs_surface */*sfc*/, + void */*pixels*/); + + void (*destroy)(struct vigs_server */*server*/); }; -struct vigs_server *vigs_server_create(uint8_t *vram_ptr, - uint8_t *ram_ptr, - struct vigs_display_ops *display_ops, - void *display_user_data, - struct vigs_backend *backend, - struct work_queue *render_queue); +bool vigs_server_init(struct vigs_server *server, + uint8_t *vram_ptr, + uint8_t *ram_ptr, + struct vigs_display_ops *display_ops, + struct vigs_capture_ops *capture_ops, + void *display_user_data, + struct vigs_backend *backend, + struct work_queue *render_queue); -void vigs_server_destroy(struct vigs_server *server); +void vigs_server_cleanup(struct vigs_server *server); void vigs_server_reset(struct vigs_server *server); @@ -133,4 +166,22 @@ void vigs_server_dispatch(struct vigs_server *server, bool vigs_server_update_display(struct vigs_server *server, int invalidate_cnt); +bool vigs_server_display(struct vigs_server *server, bool *displayed); + +void *vigs_server_get_capture_buffer(struct vigs_server *server, + struct vigs_surface *sfc); + +/* + * For internal use only. + * @{ + */ + +bool vigs_server_process_captured(struct vigs_server *server, bool force); + +void vigs_server_finish_update_display(struct vigs_server *server, bool dirty); + +/* + * @} + */ + #endif diff --git a/hw/vigs/vigs_sw_backend.c b/hw/vigs/vigs_sw_backend.c index ee3869d..2261ebc 100644 --- a/hw/vigs/vigs_sw_backend.c +++ b/hw/vigs/vigs_sw_backend.c @@ -377,39 +377,48 @@ static struct vigs_surface *vigs_sw_backend_create_surface(struct vigs_backend * return &sw_sfc->base; } -static void vigs_sw_backend_composite(struct vigs_surface *surface, +static bool vigs_sw_backend_composite(struct vigs_surface *surface, const struct vigs_plane *planes, - vigs_composite_start_cb start_cb, - vigs_composite_end_cb end_cb, - void *user_data) + bool planes_dirty, + uint8_t *display_data) { struct vigs_sw_surface *sw_sfc = (struct vigs_sw_surface*)surface; - uint8_t *buff; /* * TODO: Render planes. */ - buff = start_cb(user_data, surface->ws_sfc->width, surface->ws_sfc->height, - surface->stride, surface->format); - if (surface->ptr) { - memcpy(buff, + memcpy(display_data, surface->ptr, surface->stride * surface->ws_sfc->height); - } else if (surface->is_dirty) { - memcpy(buff, + } else { + memcpy(display_data, sw_sfc->data, surface->stride * surface->ws_sfc->height); } - end_cb(user_data, true, true); + return true; +} + +static bool vigs_sw_backend_capture(struct vigs_surface *surface, + void *pixels) +{ + vigs_sw_backend_composite(surface, NULL, false, pixels); + + return true; } static void vigs_sw_backend_batch_end(struct vigs_backend *backend) { } +static bool vigs_sw_backend_display(struct vigs_backend *backend, + uint8_t *display_data) +{ + return false; +} + static void vigs_sw_backend_destroy(struct vigs_backend *backend) { struct vigs_sw_backend *sw_backend = (struct vigs_sw_backend*)backend; @@ -429,7 +438,9 @@ struct vigs_backend *vigs_sw_backend_create(void) backend->base.batch_start = &vigs_sw_backend_batch_start; backend->base.create_surface = &vigs_sw_backend_create_surface; backend->base.composite = &vigs_sw_backend_composite; + backend->base.capture = &vigs_sw_backend_capture; backend->base.batch_end = &vigs_sw_backend_batch_end; + backend->base.display = &vigs_sw_backend_display; backend->base.destroy = &vigs_sw_backend_destroy; return &backend->base; diff --git a/hw/yagl/Makefile.objs b/hw/yagl/Makefile.objs index 2453ae9..fcd358f 100644 --- a/hw/yagl/Makefile.objs +++ b/hw/yagl/Makefile.objs @@ -1,5 +1,3 @@ -QEMU_CFLAGS += -I$(SRC_PATH)/hw/yagl -I$(SRC_PATH)/hw/yagl/yagl_inc - obj-y += yagl_device.o obj-y += yagl_log.o obj-y += yagl_process.o @@ -29,3 +27,5 @@ obj-y += yagl_egl_surface_attribs.o obj-y += yagl_apis/ obj-y += yagl_backends/ obj-y += yagl_drivers/ + +$(obj)/%.o: QEMU_CFLAGS += -I$(SRC_PATH)/hw/yagl -I$(SRC_PATH)/hw/yagl/yagl_inc diff --git a/hw/yagl/yagl_drivers/egl_cgl/yagl_egl_cgl.c b/hw/yagl/yagl_drivers/egl_cgl/yagl_egl_cgl.c index 31bf8d6..8e24255 100644 --- a/hw/yagl/yagl_drivers/egl_cgl/yagl_egl_cgl.c +++ b/hw/yagl/yagl_drivers/egl_cgl/yagl_egl_cgl.c @@ -55,7 +55,6 @@ static const CGLPixelFormatAttribute pixel_format_legacy_attrs[] = kCGLPFAAlphaSize, 8, kCGLPFADepthSize, 24, kCGLPFAStencilSize, 8, - kCGLPFANoRecovery, kCGLPFAPBuffer, 0 }; @@ -68,7 +67,6 @@ static const CGLPixelFormatAttribute pixel_format_3_2_core_attrs[] = kCGLPFAAlphaSize, 8, kCGLPFADepthSize, 24, kCGLPFAStencilSize, 8, - kCGLPFANoRecovery, kCGLPFAOpenGLProfile, kCGLOGLPVersion_3_2_Core, 0 }; diff --git a/hw/yagl/yagl_drivers/egl_glx/yagl_egl_glx.c b/hw/yagl/yagl_drivers/egl_glx/yagl_egl_glx.c index e73af91..08afac4 100644 --- a/hw/yagl/yagl_drivers/egl_glx/yagl_egl_glx.c +++ b/hw/yagl/yagl_drivers/egl_glx/yagl_egl_glx.c @@ -123,6 +123,16 @@ struct yagl_egl_glx PFNGLXCREATECONTEXTATTRIBSARBPROC glXCreateContextAttribsARB; }; +static const char *gl_3_2_check_funcs[] = +{ + "glGenTransformFeedbacks", + "glBindTransformFeedback", + "glPauseTransformFeedback", + "glResumeTransformFeedback", + "glDeleteTransformFeedbacks", + "glVertexAttribDivisor" +}; + static bool yagl_egl_glx_get_gl_version(struct yagl_egl_glx *egl_glx, yagl_gl_version *version) { @@ -172,6 +182,7 @@ static bool yagl_egl_glx_get_gl_version(struct yagl_egl_glx *egl_glx, const GLubyte *(GLAPIENTRY *GetStringi)(GLenum, GLuint) = NULL; void (GLAPIENTRY *GetIntegerv)(GLenum, GLint*) = NULL; GLint i, num_extensions = 0; + unsigned int j; YAGL_EGL_GLX_ENTER(yagl_egl_glx_get_gl_version, NULL); @@ -239,6 +250,19 @@ static bool yagl_egl_glx_get_gl_version(struct yagl_egl_glx *egl_glx, goto out; } + for (j = 0; + j < sizeof(gl_3_2_check_funcs)/sizeof(gl_3_2_check_funcs[0]); + ++j) { + if (!yagl_dyn_lib_get_ogl_procaddr(egl_glx->base.dyn_lib, + gl_3_2_check_funcs[j])) { + YAGL_LOG_INFO("Failed to find function \"%s\", using OpenGL 2.1", + gl_3_2_check_funcs[j]); + *version = yagl_gl_2; + res = true; + goto out; + } + } + GetStringi = yagl_dyn_lib_get_ogl_procaddr(egl_glx->base.dyn_lib, "glGetStringi"); diff --git a/hw/yagl/yagl_drivers/egl_wgl/yagl_egl_wgl.c b/hw/yagl/yagl_drivers/egl_wgl/yagl_egl_wgl.c index c900234..dd62b5e 100644 --- a/hw/yagl/yagl_drivers/egl_wgl/yagl_egl_wgl.c +++ b/hw/yagl/yagl_drivers/egl_wgl/yagl_egl_wgl.c @@ -126,6 +126,16 @@ static inline HWND yagl_egl_wgl_dummy_win_create(void) WS_DISABLED | WS_POPUP, 0, 0, 1, 1, NULL, NULL, 0, 0); } +static const char *gl_3_2_check_funcs[] = +{ + "glGenTransformFeedbacks", + "glBindTransformFeedback", + "glPauseTransformFeedback", + "glResumeTransformFeedback", + "glDeleteTransformFeedbacks", + "glVertexAttribDivisor" +}; + static bool yagl_egl_wgl_get_gl_version(YaglEglWglDriver *egl_wgl, yagl_gl_version *version) { @@ -178,6 +188,7 @@ static bool yagl_egl_wgl_get_gl_version(YaglEglWglDriver *egl_wgl, const GLubyte *(GLAPIENTRY *GetStringi)(GLenum, GLuint) = NULL; void (GLAPIENTRY *GetIntegerv)(GLenum, GLint*) = NULL; GLint i, num_extensions = 0; + unsigned int j; YAGL_EGL_WGL_ENTER(yagl_egl_wgl_get_gl_version, NULL); @@ -275,6 +286,19 @@ static bool yagl_egl_wgl_get_gl_version(YaglEglWglDriver *egl_wgl, goto out6; } + for (j = 0; + j < sizeof(gl_3_2_check_funcs)/sizeof(gl_3_2_check_funcs[0]); + ++j) { + if (!yagl_dyn_lib_get_ogl_procaddr(egl_wgl->base.dyn_lib, + gl_3_2_check_funcs[j])) { + YAGL_LOG_INFO("Failed to find function \"%s\", using OpenGL 2.1", + gl_3_2_check_funcs[j]); + *version = yagl_gl_2; + res = true; + goto out7; + } + } + GetStringi = yagl_dyn_lib_get_ogl_procaddr(egl_wgl->base.dyn_lib, "glGetStringi"); diff --git a/include/sysemu/sysemu.h b/include/sysemu/sysemu.h index 22e66cb..57b3107 100644 --- a/include/sysemu/sysemu.h +++ b/include/sysemu/sysemu.h @@ -103,6 +103,7 @@ typedef enum DisplayType #ifdef CONFIG_MARU DT_MARU_SDL, DT_MARU_SHM, + DT_MARU_QT, #endif DT_NONE, } DisplayType; diff --git a/include/ui/console.h b/include/ui/console.h index 0433b2e..2898620 100644 --- a/include/ui/console.h +++ b/include/ui/console.h @@ -1,7 +1,9 @@ #ifndef CONSOLE_H #define CONSOLE_H +#ifndef __cplusplus #include "ui/qemu-pixman.h" +#endif #include "qom/object.h" #include "qapi/qmp/qdict.h" #include "qemu/notify.h" @@ -369,5 +371,4 @@ int index_from_key(const char *key); /* gtk.c */ void early_gtk_display_init(void); void gtk_display_init(DisplayState *ds, bool full_screen, bool grab_on_hover); - #endif diff --git a/tizen/emulator_configure.sh b/tizen/emulator_configure.sh index b9f59d4..e045a00 100755 --- a/tizen/emulator_configure.sh +++ b/tizen/emulator_configure.sh @@ -199,6 +199,7 @@ echo "##### QEMU configuring for emulator" echo "##### QEMU configure append:" $CONFIGURE_APPEND exec ./configure \ --enable-werror \ + --extra-ldflags=-Wl,--export-dynamic \ --audio-drv-list=alsa \ --disable-vnc \ --disable-pie \ @@ -217,6 +218,7 @@ exec ./configure \ --extra-cflags=-Wno-error=format-extra-args \ --extra-cflags=-Wno-error=redundant-decls \ --extra-ldflags=-Wl,--large-address-aware \ + --extra-ldflags=-Wl,--export-all-symbols \ --cc=gcc \ --audio-drv-list=winwave \ --enable-hax \ @@ -224,6 +226,7 @@ exec ./configure \ $CONFIGURE_APPEND \ ;; Darwin*) +# FIXME: "-export_dynamic" causes error on old version clang cd .. echo "" echo "##### QEMU configuring for emulator" @@ -238,5 +241,7 @@ echo "##### QEMU configure append:" $CONFIGURE_APPEND --disable-cocoa \ --disable-sdl \ $CONFIGURE_APPEND \ + +# --extra-ldflags="-Xlinker -export_dynamic" \ ;; esac diff --git a/tizen/src/Makefile b/tizen/src/Makefile index 78ca6b3..97058f1 100644 --- a/tizen/src/Makefile +++ b/tizen/src/Makefile @@ -337,6 +337,14 @@ ifdef CONFIG_DARWIN install_name_tool -change /opt/local/lib/libcurl.4.dylib @loader_path/libcurl.4.dylib $(DIBS_X86_DIR)/bin/emulator-x86 ;\ install_name_tool -change /opt/local/lib/libpixman-1.0.dylib @loader_path/libpixman-1.0.dylib $(DIBS_X86_DIR)/bin/emulator-x86 ;\ install_name_tool -change /opt/local/lib/libpng16.16.dylib @loader_path/libpng16.dylib $(DIBS_X86_DIR)/bin/emulator-x86; \ +ifdef CONFIG_QT + install_name_tool -change /opt/local/Library/Frameworks/QtQml.framework/Versions/5/QtQml @loader_path/QtQml $(DIBS_X86_DIR)/bin/emulator-x86; \ + install_name_tool -change /opt/local/Library/Frameworks/QtNetwork.framework/Versions/5/QtNetwork @loader_path/QtNetwork $(DIBS_X86_DIR)/bin/emulator-x86; \ + install_name_tool -change /opt/local/Library/Frameworks/QtOpenGL.framework/Versions/5/QtOpenGL @loader_path/QtOpenGL $(DIBS_X86_DIR)/bin/emulator-x86; \ + install_name_tool -change /opt/local/Library/Frameworks/QtWidgets.framework/Versions/5/QtWidgets @loader_path/QtWidgets $(DIBS_X86_DIR)/bin/emulator-x86; \ + install_name_tool -change /opt/local/Library/Frameworks/QtGui.framework/Versions/5/QtGui @loader_path/QtGui $(DIBS_X86_DIR)/bin/emulator-x86; \ + install_name_tool -change /opt/local/Library/Frameworks/QtCore.framework/Versions/5/QtCore @loader_path/QtCore $(DIBS_X86_DIR)/bin/emulator-x86; \ +endif ;; \ arm-softmmu) \ ;; \ diff --git a/tizen/src/Makefile.objs b/tizen/src/Makefile.objs index c3127b7..14a547a 100644 --- a/tizen/src/Makefile.objs +++ b/tizen/src/Makefile.objs @@ -8,6 +8,9 @@ obj-y += emulator.o emulator_legacy.o emulator_options.o emul_state.o # utils obj-y += util/ +# ui +obj-y += ui/ + # maru display obj-y += display/ diff --git a/tizen/src/display/Makefile.objs b/tizen/src/display/Makefile.objs index 796f508..b8e49dc 100644 --- a/tizen/src/display/Makefile.objs +++ b/tizen/src/display/Makefile.objs @@ -4,4 +4,9 @@ obj-$(CONFIG_USE_SHM) += maru_shm.o obj-$(CONFIG_SDL) += maru_sdl.o maru_sdl_processing.o maru_finger.o +obj-$(CONFIG_QT) += qt5.o +obj-$(CONFIG_QT) += qt5_supplement.o + $(obj)/maru_display.o $(obj)/maru_sdl.o $(obj)/maru_sdl_processing.o $(obj)/maru_finger.o: QEMU_CFLAGS += $(SDL_CFLAGS) + +$(obj)/qt5_supplement.o: QEMU_CFLAGS += $(QT_CFLAGS) diff --git a/tizen/src/display/maru_display.c b/tizen/src/display/maru_display.c index ddc34cd..b3aa9c2 100644 --- a/tizen/src/display/maru_display.c +++ b/tizen/src/display/maru_display.c @@ -36,7 +36,7 @@ MULTI_DEBUG_CHANNEL(tizen, display); -MaruScreenShot* screenshot = NULL; +MaruScreenShot *screenshot; static MaruDisplayChangeListener *mdcl; @@ -53,16 +53,32 @@ static void maru_display_fini(void) g_free(mdcl); } -static void maru_display_notify_exit(Notifier *notifier, void *data) { +static void maru_display_notify_exit(Notifier *notifier, void *data) +{ maru_display_fini(); } + static Notifier maru_display_exit = { .notify = maru_display_notify_exit }; -void maru_display_init(DisplayState *ds, DisplayType display_type, int full_screen) +void maru_display_early_init(DisplayType display_type) +{ + switch (display_type) { +#ifdef CONFIG_QT + case DT_MARU_QT: + maru_qt5_display_early_init(); + break; +#endif + default: + break; + } +} + +void maru_display_init(DisplayState *ds, DisplayType display_type, + int full_screen) { INFO("init qemu display\n"); - mdcl = g_malloc0(sizeof(MaruDisplayChangeListener)); + mdcl = g_new0(MaruDisplayChangeListener, 1); switch (display_type) { #ifdef CONFIG_SDL @@ -75,13 +91,18 @@ void maru_display_init(DisplayState *ds, DisplayType display_type, int full_scre maru_shm_pre_init(mdcl); break; #endif +#ifdef CONFIG_QT + case DT_MARU_QT: + maru_qt5_display_init(mdcl, full_screen); + break; +#endif default: ERR("can not enter here.\n"); - // can not enter here... + /* can not enter here... */ break; } - screenshot = g_malloc0(sizeof(MaruScreenShot)); + screenshot = g_new0(MaruScreenShot, 1); screenshot->pixels = NULL; screenshot->request = false; screenshot->ready = false; @@ -118,12 +139,13 @@ void maru_display_set_interpolation(bool on) } void maru_ds_surface_init(uint64 swt_handle, - unsigned int display_width, unsigned int display_height, - bool blank_guide) + unsigned int display_width, + unsigned int display_height, + bool blank_guide) { if (mdcl->surface_init) { mdcl->surface_init(swt_handle, display_width, - display_height, blank_guide); + display_height, blank_guide); } } diff --git a/tizen/src/display/maru_display.h b/tizen/src/display/maru_display.h index 8c746f2..c58a4af 100644 --- a/tizen/src/display/maru_display.h +++ b/tizen/src/display/maru_display.h @@ -52,7 +52,9 @@ typedef struct MaruScreenShot { bool ready; } MaruScreenShot; -void maru_display_init(DisplayState *ds, DisplayType display_type, int full_screen); +void maru_display_early_init(DisplayType display_type); +void maru_display_init(DisplayState *ds, DisplayType display_type, + int full_screen); void maru_display_resize(void); void maru_display_update(void); void maru_display_set_invalidate(bool on); @@ -65,10 +67,16 @@ void maru_ds_surface_init(uint64 swt_handle, MaruScreenShot *get_screenshot(void); void save_screenshot(DisplaySurface *surface); -// maru_sdl +/* maru_sdl */ void maru_sdl_pre_init(MaruDisplayChangeListener *mdcl); -// maru_shm +/* maru_shm */ void maru_shm_pre_init(MaruDisplayChangeListener *mdcl); +/* maru_qt */ +void maru_qt5_display_early_init(void); + +void maru_qt5_display_init(MaruDisplayChangeListener *mdcl, int full_screen); + +void maru_qt5_display_quit(void); #endif /* __MARU_DISPLAY_H__ */ diff --git a/tizen/src/display/maru_finger.c b/tizen/src/display/maru_finger.c index e628b5d..05b7943 100644 --- a/tizen/src/display/maru_finger.c +++ b/tizen/src/display/maru_finger.c @@ -230,16 +230,6 @@ void init_multi_touch_state(void) mts->finger_point_surface = (void *)point; } -void set_multi_touch_enable(int enable) -{ - get_emul_multi_touch_state()->multitouch_enable = enable; -} - -int get_multi_touch_enable(void) -{ - return get_emul_multi_touch_state()->multitouch_enable; -} - int add_finger_point(int origin_x, int origin_y, int x, int y) { MultiTouchState *mts = get_emul_multi_touch_state(); diff --git a/tizen/src/display/maru_finger.h b/tizen/src/display/maru_finger.h index d5f071e..3815d3a 100644 --- a/tizen/src/display/maru_finger.h +++ b/tizen/src/display/maru_finger.h @@ -62,8 +62,6 @@ typedef struct MultiTouchState { void init_multi_touch_state(void); -void set_multi_touch_enable(int enable); -int get_multi_touch_enable(void); FingerPoint *get_finger_point_from_slot(int index); FingerPoint *get_finger_point_search(int x, int y); int add_finger_point(int origin_x, int origin_y, int x, int y); diff --git a/tizen/src/display/maru_shm.c b/tizen/src/display/maru_shm.c index 2b00794..ef7fc6d 100644 --- a/tizen/src/display/maru_shm.c +++ b/tizen/src/display/maru_shm.c @@ -289,7 +289,6 @@ static void maru_shm_init(uint64 swt_handle, INFO("Memory attached at 0x%X\n", (int)shared_memory); } - void maru_shm_pre_init(MaruDisplayChangeListener *mdcl) { dcl = g_malloc0(sizeof(DisplayChangeListener)); diff --git a/tizen/src/display/qt5.c b/tizen/src/display/qt5.c new file mode 100644 index 0000000..495a17d --- /dev/null +++ b/tizen/src/display/qt5.c @@ -0,0 +1,184 @@ +/* + * Qt UI + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * SeokYeon Hwang + * Sangho Park + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#include "ui/console.h" +#include "emul_state.h" +#include "maru_display.h" +#include "qt5_supplement.h" + +extern QemuMutex sdl_mutex; +extern QemuCond sdl_cond; + +/* static Notifier mouse_mode_notifier; */ +static int qt5_num_outputs; + +static struct qt5_state { + DisplayChangeListener dcl; + DisplaySurface *surface; + + int idx; +} *qt5_console; + +void qt5_graphic_hw_invalidate(void) +{ + graphic_hw_invalidate(NULL); +} + +int qt5_graphic_hw_display(void) +{ + console_ch_t displayed = 0; + graphic_hw_text_update(NULL, &displayed); + return displayed; +} + +static void qt5_update(DisplayChangeListener *dcl, + int x, int y, int w, int h) +{ + DisplaySurface *surf = qemu_console_surface(dcl->con); + if (!surf) { + return; + } + + qt5_update_internal(surface_data(surf), + surface_width(surf), + surface_height(surf)); +} + +static void qt5_switch(DisplayChangeListener *dcl, + DisplaySurface *new_surface) +{ +} + +static void qt5_refresh(DisplayChangeListener *dcl) +{ + graphic_hw_update(dcl->con); + qt5_refresh_internal(); +} + +static void qt5_mouse_warp(DisplayChangeListener *dcl, + int x, int y, int on) +{ +} + +static void qt5_mouse_define(DisplayChangeListener *dcl, + QEMUCursor *c) +{ +} + +static const DisplayChangeListenerOps dcl_ops = { + .dpy_name = "qt5", + .dpy_gfx_update = qt5_update, + .dpy_gfx_switch = qt5_switch, + .dpy_refresh = qt5_refresh, + .dpy_mouse_set = qt5_mouse_warp, + .dpy_cursor_define = qt5_mouse_define, +}; + +#ifdef CONFIG_DARWIN +void ns_run_in_event_loop(void (*func)()); +void set_application_icon(char *path); +#endif + +void maru_qt5_display_early_init(void) +{ +#ifdef CONFIG_DARWIN + ns_run_in_event_loop(&qt5_early_prepare); + + /* set emulator icon */ +#define ICON_RESOURCE_PATH "../icons/" +#define ICON_FILE_NAME "emulator_icon.ico" + const int path_len = strlen(get_bin_path()) + + strlen(ICON_RESOURCE_PATH) + strlen(ICON_FILE_NAME) + 1; + + char *icon_path = g_malloc0(sizeof(char) * path_len); + snprintf(icon_path, path_len, "%s%s%s", + get_bin_path(), ICON_RESOURCE_PATH, ICON_FILE_NAME); + fprintf(stdout, "application icon path : %s\n", icon_path); + + set_application_icon(icon_path); + g_free(icon_path); +#else + qt5_early_prepare(); +#endif +} + +void maru_qt5_display_quit(void) +{ + qt5_destroy(); + + if (qt5_console) { + g_free(qt5_console); + qt5_console = NULL; + } +} + +void maru_qt5_display_init(MaruDisplayChangeListener *mdcl, int full_screen) +{ + int i; + +#ifdef SDL_THREAD + qemu_mutex_init(&sdl_mutex); + qemu_cond_init(&sdl_cond); +#endif + + /* prepare gui */ +#ifdef CONFIG_DARWIN + ns_run_in_event_loop(&qt5_prepare); +#else + qt5_prepare(); +#endif + + for (i = 0;; i++) { + QemuConsole *con = qemu_console_lookup_by_index(i); + if (!con || !qemu_console_is_graphic(con)) { + break; + } + } + qt5_num_outputs = i; + qt5_console = g_new0(struct qt5_state, qt5_num_outputs); + for (i = 0; i < qt5_num_outputs; i++) { + QemuConsole *con = qemu_console_lookup_by_index(i); + qt5_console[i].dcl.ops = &dcl_ops; + qt5_console[i].dcl.con = con; + register_displaychangelistener(&qt5_console[i].dcl); + qt5_console[i].idx = i; + } + mdcl->fini = maru_qt5_display_quit; + + if (full_screen) { + /* TODO */ + } + + /* TODO + mouse_mode_notifier.notify = qt2_mouse_mode_change; + qemu_add_mouse_mode_change_notifier(&mouse_mode_notifier); + */ + + /* TODO: cursor control */ +} diff --git a/tizen/src/display/qt5_supplement.cpp b/tizen/src/display/qt5_supplement.cpp new file mode 100644 index 0000000..34906e1 --- /dev/null +++ b/tizen/src/display/qt5_supplement.cpp @@ -0,0 +1,546 @@ +/* + * Qt UI + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim + * SeokYeon Hwang + * Sangho Park + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#include +#include +#include +#include + +#include "qt5_supplement.h" +#include "mainwindow.h" +#include "uiinformation.h" +#include "hardwarekey.h" +#include "floatingcontroller.h" +#include "ui/xml/emulatoruitype.h" +#include "uiutil.h" + +extern "C" { +#include "emul_state.h" +} + +//using namespace std; +void qMessageOutput(QtMsgType, const QMessageLogContext &, const QString &); +void loadMainFormFromXML(QFile *, UIInformation *); +void loadConFormFromXML(QFile *, UIInformation *); + +QApplication *qt5App = NULL; + +static int argc = 0; +static char *argv[0]; + +static void *captureRequestListener; +static void (*captureRequestHandler)(void *); + +static MainWindow *mainwindow; +static UIInformation *uiInfo; + +#define SKIN_PROPERTIES_FILE_NAME ".skin.properties" +#define SKIN_PROPERTY_WINDOW_X "window.x" +#define SKIN_PROPERTY_WINDOW_Y "window.y" +#define SKIN_PROPERTY_WINDOW_SCALE "window.scale" +#define SKIN_PROPERTY_WINDOW_TOPMOST "window.ontop" +#define SKIN_PROPERTY_CONTROLLER_INDEX "controller.index" +#define SKIN_PROPERTY_CONTROLLER_DOCK "controller.dock" + +#define SKIN_INFO_FILE_NAME "info.ini" +#define FORM_FILE_NAME "layout.qml" +#define CON_FORM_SUBPATH "controller" + +class ConFile { +public: + QFile *formFile; + int priority; +}; + +void qt5_gui_init(void) +{ + QCoreApplication::setApplicationName("Tizen Emulator"); + + qDebug() << "* Qt version :" << QT_VERSION_STR; + qDebug() << "* working path :" << QDir::currentPath(); + qDebug() << "* binary path :" << QCoreApplication::applicationDirPath(); + + uiInfo = new UIInformation(); + + /* parameter parsing */ + // TODO: + + uiInfo->vmName = QString(get_emul_vm_name()).trimmed(); + uiInfo->resolution.setWidth(get_emul_resolution_width()); + uiInfo->resolution.setHeight(get_emul_resolution_height()); + uiInfo->basePort = get_emul_vm_base_port(); + + uiInfo->vmDataPath = get_emul_vm_data_path(); + if (uiInfo->vmDataPath.endsWith(QDir::separator()) == false) { + uiInfo->vmDataPath += QDir::separator(); + } + + uiInfo->skinPath = QDir(get_emul_skin_path()).canonicalPath(); + if (uiInfo->skinPath.endsWith(QDir::separator()) == false) { + uiInfo->skinPath += QDir::separator(); + } + + /* read skin information */ + QSettings skinInfo(uiInfo->skinPath + SKIN_INFO_FILE_NAME, + QSettings::IniFormat); + QString skinName = skinInfo.value("skin.name").toString(); + if (skinName.isEmpty() == true) { + skinName = "Undefined"; + } + uiInfo->skinName = skinName; + + /* read MRU information */ + QSettings mruInfo(uiInfo->vmDataPath + SKIN_PROPERTIES_FILE_NAME, + QSettings::IniFormat); + int scale = mruInfo.value(SKIN_PROPERTY_WINDOW_SCALE).toInt(); + qDebug("previous scale value is %d", scale); + + if (scale <= 0) { + scale = 50; /* default scale */ + } + uiInfo->uiState.mainFormScale = scale; + + /* XML */ + // TODO: convert QML to XML + + /* Register custom QML elements */ + qmlRegisterType("EmulatorComponent", 1, 0, "Region"); + qmlRegisterType("EmulatorComponent", 1, 0, "Key"); + qmlRegisterType("EmulatorComponent", 1, 0, "KeyList"); + + /* load main form */ + QFile mainXMLFile(uiInfo->skinPath + FORM_FILE_NAME); + loadMainFormFromXML(&mainXMLFile, uiInfo); + + /* load controller forms */ + QDir skinDir(uiInfo->skinPath + CON_FORM_SUBPATH); + QFileInfoList entries = skinDir.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot); + + if (entries.isEmpty() == false) { + /* sort by priority */ + QList conFileList; + + for (int i = 0; i < entries.size(); i++) { + ConFile *conFile = new ConFile(); + + QString conPath = entries.at(i).filePath() + QDir::separator(); + conFile->formFile = new QFile(conPath + FORM_FILE_NAME); + QSettings conInfo(conPath + SKIN_INFO_FILE_NAME, QSettings::IniFormat); + conFile->priority = conInfo.value("priority").toInt(); + + int j = 0; + for ( ; j < conFileList.size(); j++) { + if (conFileList.at(j)->priority > conFile->priority) { + break; + } + } + conFileList.insert(j, conFile); + } + + /* loading */ + for (int i = 0; i < conFileList.size(); i++) { + loadConFormFromXML(conFileList.at(i)->formFile, uiInfo); + delete conFileList.at(i)->formFile; + delete conFileList.at(i); + } + } + + /* GUI */ + qDebug("start!"); + + mainwindow = new MainWindow(uiInfo); + mainwindow->setCaptureRequestHandler(captureRequestListener, captureRequestHandler); + + /* position */ + QRect hostBounds = UIUtil::getHostScreenBounds(); + qDebug() << "host geometry : " << hostBounds; + + int defaultValueX = hostBounds.x() - 1; + int defaultValueY = hostBounds.y() - 1; + int xx = mruInfo.value(SKIN_PROPERTY_WINDOW_X, defaultValueX).toInt(); + int yy = mruInfo.value(SKIN_PROPERTY_WINDOW_Y, defaultValueY).toInt(); + + if (xx == defaultValueX || yy == defaultValueY) { + xx = yy = 80 + (uiInfo->basePort % 100); /* default position */ + } else { + qDebug("previous position value : (%d, %d)", xx, yy); + + xx = qMax(xx, hostBounds.x()); + xx = qMin(xx, hostBounds.x() + hostBounds.width() - 100); + yy = qMax(yy, hostBounds.y()); + yy = qMin(yy, hostBounds.y() + hostBounds.height() - 100); + } + + mainwindow->move(xx, yy); + qDebug("current position value : (%d, %d)", xx, yy); + + bool onTop = mruInfo.value(SKIN_PROPERTY_WINDOW_TOPMOST).toBool(); + if (onTop == true) { + mainwindow->setTopMost(true); + } + + mainwindow->show(); + + /* controller */ + const int defaultDockPos = Qt::AlignRight | Qt::AlignCenter; + mainwindow->getUIState()->conState.recentlyDockPos = defaultDockPos; + + int conIndex = mruInfo.value(SKIN_PROPERTY_CONTROLLER_INDEX).toInt(); + if (conIndex >= 0 && conIndex < uiInfo->conFormList.count()) { + int conDockPos = mruInfo.value(SKIN_PROPERTY_CONTROLLER_DOCK).toInt(); + if (conDockPos <= 0) { + conDockPos = defaultDockPos; + } + + mainwindow->openController(conIndex, conDockPos); + } + + mainwindow->startSwapper(); +} + +void qt5_destroy() +{ + qDebug("qt5 destroy"); + + /* write MRU information */ + QSettings mruInfo(uiInfo->vmDataPath + SKIN_PROPERTIES_FILE_NAME, + QSettings::IniFormat); + mruInfo.setValue(SKIN_PROPERTY_WINDOW_X, mainwindow->pos().x()); + mruInfo.setValue(SKIN_PROPERTY_WINDOW_Y, mainwindow->pos().y()); + mruInfo.setValue(SKIN_PROPERTY_WINDOW_SCALE, uiInfo->uiState.mainFormScale); + mruInfo.setValue(SKIN_PROPERTY_WINDOW_TOPMOST, uiInfo->uiState.isOnTop()); + mruInfo.setValue(SKIN_PROPERTY_CONTROLLER_INDEX, uiInfo->uiState.conState.conFormIndex); + + DockingController *con = uiInfo->uiState.conState.dockingCon; + if (con != NULL) { + mruInfo.setValue(SKIN_PROPERTY_CONTROLLER_DOCK, con->getDockPos()); + } else { + mruInfo.setValue(SKIN_PROPERTY_CONTROLLER_DOCK, 0); + } + + /* clean up */ + mainwindow->terminateSwapper(); + + mainwindow->closeController(); + + /* TODO : destroy mainwindow and qt5App */ + + delete uiInfo; +} + +void qt5_early_prepare(void) +{ + Q_INIT_RESOURCE(resource); + qInstallMessageHandler(qMessageOutput); + +#ifdef CONFIG_DARWIN +#define LIBQCOCOA "libqcocoa.dylib" + /* load libqcocoa.dylib */ + QStringList libPaths = QCoreApplication::libraryPaths(); + qDebug() << "default Qt plugin library path : " << libPaths; + + int i = 0; + for ( ; i < libPaths.count(); i++) { + QFileInfo libFileInfo(libPaths.at(i) + QDir::separator() + + "platforms" + QDir::separator() + LIBQCOCOA); + if (libFileInfo.exists() == true) { + break; + } + } + + if (i >= libPaths.count()) { + qDebug() << LIBQCOCOA << " file not found. " << + "Qt plugin library path is converted to current path."; + QCoreApplication::setLibraryPaths(QStringList(QDir::currentPath())); + } +#endif + + qt5App = new QApplication(argc, argv); +} + +void qt5_prepare(void) +{ + qt5_gui_init(); +} + +void qt5_update_internal(void *data, int width, int height) +{ + QPixmap pixmap = QPixmap(); + QLabel *screenWidget = mainwindow->getScreenWidget(); + + /* + * TODO: support rotation. + */ + + QImage image = QImage((uchar *)data, width, height, QImage::Format_RGB32); + pixmap.convertFromImage(image); + screenWidget->setPixmap(pixmap.scaled(screenWidget->size(), + Qt::KeepAspectRatio, Qt::SmoothTransformation)); +} + +void qt5_switch_internal(void) +{ +} + +void qt5_refresh_internal(void) +{ + qt5App->processEvents(); +} + +void qt5_register_capture_request_listener(void *listener, void (*handler)(void *)) +{ + if (mainwindow) { + mainwindow->setCaptureRequestHandler(listener, handler); + } + + captureRequestListener = listener; + captureRequestHandler = handler; +} + +void qt5_unregister_capture_request_listener(void *listener) +{ + if (mainwindow) { + mainwindow->unsetCaptureRequestHandler(listener); + } + + captureRequestListener = NULL; + captureRequestHandler = NULL; +} + +void qt5_process_captured(bool captured, void *pixels, int width, int height) +{ + if (mainwindow) { + mainwindow->processCaptured(captured, pixels, width, height); + } +} + +void qMessageOutput(QtMsgType type, const QMessageLogContext &context, const QString &msg) +{ + QByteArray localMsg = msg.toLocal8Bit(); + QByteArray dateMsg = QDateTime::currentDateTime().toString("hh:mm:ss").toLocal8Bit(); + + switch (type) { + case QtDebugMsg: + fprintf(stdout, "%s [Debug:%s:%u] %s\n", dateMsg.constData(), + context.category, context.line, localMsg.trimmed().constData()); + break; + case QtWarningMsg: + fprintf(stdout, "%s [Warning:%s:%u] %s\n", dateMsg.constData(), + context.category, context.line, localMsg.trimmed().constData()); + break; + case QtCriticalMsg: + fprintf(stderr, "%s [Critical:%s:%u] %s\n", dateMsg.constData(), + context.category, context.line, localMsg.trimmed().constData()); + break; + case QtFatalMsg: + fprintf(stderr, "%s [Fatal:%s:%u] %s\n", dateMsg.constData(), + context.category, context.line, localMsg.trimmed().constData()); + + QString err; + QMessageBox::critical(0, "Emulator", + QString("An internal error occurred.\n: ") + + err.sprintf("%s", (localMsg.trimmed()).constData()) + + "\n\nEmulator will now exit."); + abort(); + } +} + +void loadMainFormFromXML(QFile *file, UIInformation *uiInfo/* out */) +{ + if (file->exists() == false) { + qFatal("%s is not found", qPrintable(file->fileName())); + } + + qDebug("main form is loaded from %s", qPrintable(file->fileName())); + + qmlRegisterType("EmulatorComponent", 1, 0, "EmulatorUI"); + qmlRegisterType("EmulatorComponent", 1, 0, "FormList"); + qmlRegisterType("EmulatorComponent", 1, 0, "Form"); + + /* QML */ + QQmlEngine *engine = new QQmlEngine(); + QQmlComponent *component = new QQmlComponent(engine); + + component->loadUrl(QUrl::fromLocalFile(file->fileName())); + if (!component->isReady()) { + qWarning("%s", qPrintable(component->errorString())); + } + + QObject *object = component->create(); + if (object != NULL) { + QFileInfo fileInfo(*file); + qDebug() << "xml version :" << QQmlProperty::read(object, "version").toString(); + + EmulatorUIType *uiType = (EmulatorUIType *)object; + FormType *formType = NULL; + KeyListType *keyListType = NULL; + HardwareKeyType *hwKeyType = NULL; + + FormListType *formListType = uiType->formListType(); + for (int index = 0; index < formListType->getFormList()->count(); index++) { + MainForm *mainForm = new MainForm(); /* dst */ + + formType = (FormType *)formListType->getFormList()->at(index); /* src */ + + mainForm->displayRegion = formType->getDisplayRegion(); + mainForm->skinImg[MainForm::normal].load(fileInfo.absolutePath() + + QDir::separator() + formType->mainImageName()); + mainForm->skinImg[MainForm::pressed].load(fileInfo.absolutePath() + + QDir::separator() + formType->pressedImageName()); + + keyListType = formType->keyListType(); + if (keyListType != NULL) { + for (int i = 0; i < keyListType->getKeyList()->count(); i++) { + hwKeyType = keyListType->getKeyList()->at(i); + if (hwKeyType != NULL) { + mainForm->keyList.append(new HardwareKey(hwKeyType->objectName(), + hwKeyType->keycode(), hwKeyType->region(), hwKeyType->tooltip())); + } + } + } + + uiInfo->mainFormList.append(mainForm); + } + + delete object; + } + + delete component; + delete engine; +} + +void loadConFormFromXML(QFile *file, UIInformation *uiInfo/* out */) +{ + if (file->exists() == false) { + qWarning("%s is not found", qPrintable(file->fileName())); + return; + } + + qDebug("controller form is loaded from %s", qPrintable(file->fileName())); + + /* QML */ + QQmlEngine *engine = new QQmlEngine(); + QQmlComponent *component = new QQmlComponent(engine); + + component->loadUrl(QUrl::fromLocalFile(file->fileName())); + if (!component->isReady()) { + qWarning("%s", qPrintable(component->errorString())); + } + + QObject *object = component->create(); + if (object != NULL) { + QFileInfo fileInfo(*file); + qDebug() << "xml version :" << QQmlProperty::read(object, "version").toString(); + + FormType *formType = (FormType *)object; + KeyListType *keyListType = NULL; + HardwareKeyType *hwKeyType = NULL; + + QString conName = QQmlProperty::read(object, "name").toString(); + ControllerForm *conForm = new ControllerForm( + conName.isEmpty() ? fileInfo.dir().dirName() : conName); + + conForm->conImg[ControllerForm::normal].load(fileInfo.absolutePath() + + QDir::separator() + formType->mainImageName()); + conForm->conImg[ControllerForm::pressed].load(fileInfo.absolutePath() + + QDir::separator() + formType->pressedImageName()); + + keyListType = formType->keyListType(); + if (keyListType != NULL) { + for (int i = 0; i < keyListType->getKeyList()->count(); i++) { + hwKeyType = keyListType->getKeyList()->at(i); + if (hwKeyType != NULL) { + conForm->keyList.append(new HardwareKey(hwKeyType->objectName(), + hwKeyType->keycode(), hwKeyType->region(), hwKeyType->tooltip())); + } + } + } + + uiInfo->conFormList.append(conForm); + + delete object; + } + + delete component; + delete engine; +} + +#if 0 +#define CONTROL_PRIORITY_MAX 10 + +int getControlIndex() +{ + int controlIndex = 0; + int controlPriority = 0; + int priority = CONTROL_PRIORITY_MAX; + + if (!uiInfo) { + return controlIndex; + } + + /* find high priority*/ + QString line; + QDir skinDir(uiInfo->skinPath + CON_FORM_SUBPATH); + QFileInfoList entries = skinDir.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot); + for (int i = 0; i < entries.size(); i++) { + QFile iniFile(entries.at(i).filePath() + QDir::separator() + "info.ini"); + if (iniFile.exists()) { + controlPriority = getPriority(&iniFile); + if (controlPriority < priority) { + controlIndex = i; + priority = controlPriority; + } + } + } + + return controlIndex; +} + +int getPriority(QFile *file) +{ + int priority = CONTROL_PRIORITY_MAX; + QRegExp rx("="); + + /* read priority in info.ini file */ + if (file->open(QFile::ReadOnly)) { + QTextStream in(file); + do { + QString line = in.readLine(); + QStringList list = line.split(rx, QString::SkipEmptyParts); + if (QString::compare(list.at(0), "priority", Qt::CaseInsensitive) == 0) { + priority = list.at(1).toInt(); + } + } while(!in.atEnd()); + file->close(); + } + + return priority; +} +#endif diff --git a/tizen/src/display/qt5_supplement.h b/tizen/src/display/qt5_supplement.h new file mode 100644 index 0000000..74b96a8 --- /dev/null +++ b/tizen/src/display/qt5_supplement.h @@ -0,0 +1,50 @@ +/* + * Qt UI + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim + * SeokYeon Hwang + * Sangho Park + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#ifndef __QT5_INTERNAL_H__ +#define __QT5_INTERNAL_H__ + +#ifdef __cplusplus +extern "C" { +#endif +void qt5_graphic_hw_invalidate(void); +int qt5_graphic_hw_display(void); +void qt5_early_prepare(void); +void qt5_prepare(void); +void qt5_destroy(void); + +void qt5_update_internal(void *data, int width, int height); +void qt5_switch_internal(void); +void qt5_refresh_internal(void); +#ifdef __cplusplus +} +#endif + +#endif // __QT5_INTERNAL_H__ diff --git a/tizen/src/emul_state.c b/tizen/src/emul_state.c index 1d9e4c6..21dbe7c 100644 --- a/tizen/src/emul_state.c +++ b/tizen/src/emul_state.c @@ -36,8 +36,12 @@ #if defined(CONFIG_LINUX) #include -#elif defined (CONFIG_WIN32) +extern bool kvm_allowed; +#elif defined(CONFIG_WIN32) #include +extern bool hax_allowed; +#elif defined(CONFIG_DARWIN) +extern bool hax_allowed; #endif DECLARE_DEBUG_CHANNEL(emul_state); @@ -321,6 +325,16 @@ MultiTouchState *get_emul_multi_touch_state(void) return &(_emul_state.qemu_mts); } +void set_multi_touch_enable(int enable) +{ + _emul_state.qemu_mts.multitouch_enable = enable; +} + +int get_multi_touch_enable(void) +{ + return _emul_state.qemu_mts.multitouch_enable; +} + /* retrieves the status of the host lock key */ int get_host_lock_key_state(int key) { @@ -457,3 +471,71 @@ bool get_sdb_connection(void) return _emul_state.sdb_connection; } +/* emualtor skin path */ +void set_emul_skin_path(char *path) +{ + _emul_info.skin_path = path; + + LOG_INFO("skin path : %s\n", _emul_info.skin_path); +} + +char* get_emul_skin_path(void) +{ + return _emul_info.skin_path; +} + +/* GPU virtualization */ +void set_emul_gpu_accel(bool enable) +{ + _emul_info.gpu_accel_enable = enable; +} + +bool get_emul_gpu_accel(void) +{ + return _emul_info.gpu_accel_enable; +} + +/* CPU virtualization */ +bool get_emul_cpu_accel(void) +{ +#ifdef CONFIG_LINUX + return kvm_allowed; +#else + return hax_allowed; +#endif + + return false; +} + +/* VM ram size */ +void set_emul_ram_size(const char *size) +{ + _emul_info.vm_ram_size = size; +} + +const char* get_emul_ram_size(void) +{ + return _emul_info.vm_ram_size; +} + +/* file sharing path */ +void set_emul_file_sharing_path(const char *path) +{ + _emul_info.file_sharing_path = path; +} + +const char* get_emul_file_sharing_path(void) +{ + return _emul_info.file_sharing_path; +} + +/* VM data path */ +void set_emul_vm_data_path(const char *path) +{ + _emul_info.vm_data_path = path; +} + +const char* get_emul_vm_data_path(void) +{ + return _emul_info.vm_data_path; +} diff --git a/tizen/src/emul_state.h b/tizen/src/emul_state.h index 904f269..88ef3c7 100644 --- a/tizen/src/emul_state.h +++ b/tizen/src/emul_state.h @@ -103,8 +103,13 @@ typedef struct EmulatorConfigInfo { int spice_port; int websocket_port; char *vm_name; - /* add here */ + char *skin_path; + bool gpu_accel_enable; + const char *file_sharing_path; + const char *vm_ram_size; int serial_port; + const char *vm_data_path; + /* add here */ } EmulatorConfigInfo; typedef struct EmulatorConfigState { @@ -146,6 +151,11 @@ void set_emul_vm_base_port(int port); void set_emul_ecs_port(int port); void set_emul_guest_ip(char *ip); void set_emul_vm_name(char *vm_name); +void set_emul_skin_path(char *path); +void set_emul_gpu_accel(bool enable); +void set_emul_file_sharing_path(const char *path); +void set_emul_ram_size(const char *size); +void set_emul_vm_data_path(const char *path); void set_emulator_condition(int state); void set_emul_rotation(short rotation_type); @@ -175,10 +185,15 @@ int get_emul_serial_port(void); char* get_emul_vm_name(void); int get_emul_spice_port(void); int get_emul_websocket_port(void); +char* get_emul_skin_path(void); +bool get_emul_gpu_accel(void); +bool get_emul_cpu_accel(void); +const char* get_emul_file_sharing_path(void); +const char* get_emul_ram_size(void); +const char* get_emul_vm_data_path(void); int get_emulator_condition(void); short get_emul_rotation(void); -MultiTouchState *get_emul_multi_touch_state(void); int get_host_lock_key_state(int key); int get_host_lock_key_state_darwin(int key); int get_emul_caps_lock_state(void); @@ -193,4 +208,9 @@ char* get_emul_profile(void); bool get_emuld_connection(void); bool get_sdb_connection(void); +/* multi-touch */ +MultiTouchState *get_emul_multi_touch_state(void); +void set_multi_touch_enable(int enable); +int get_multi_touch_enable(void); + #endif /* __EMUL_STATE_H__ */ diff --git a/tizen/src/emulator.c b/tizen/src/emulator.c index 14642f6..5b6ff90 100644 --- a/tizen/src/emulator.c +++ b/tizen/src/emulator.c @@ -279,7 +279,7 @@ static int emulator_main(int argc, char *argv[], char **envp) } #endif -#ifdef CONFIG_WIN32 +#if defined(CONFIG_WIN32) && defined(CONFIG_SDL) // SDL_init() routes stdout and stderr to the respective files in win32. // So we revert it. freopen("CON", "w", stdout); @@ -395,7 +395,7 @@ static int emulator_main(int argc, char *argv[], char **envp) return 0; } -#ifdef CONFIG_DARWIN +#if defined(CONFIG_DARWIN) && !defined(CONFIG_QT) int g_argc; static void* main_thread(void* args) @@ -430,7 +430,9 @@ int main(int argc, char *argv[], char **envp) #else // WIN32 int main(int argc, char *argv[]) { +#ifndef CONFIG_DARWIN maru_register_exception_handler(); +#endif return emulator_main(argc, argv, NULL); } #endif diff --git a/tizen/src/emulator_legacy.c b/tizen/src/emulator_legacy.c index 5786038..0bbb00c 100644 --- a/tizen/src/emulator_legacy.c +++ b/tizen/src/emulator_legacy.c @@ -64,6 +64,7 @@ MULTI_DEBUG_CHANNEL(qemu, main); #define LOGFILE "emulator.log" #define DISPLAY_WIDTH_PREFIX "width=" #define DISPLAY_HEIGHT_PREFIX "height=" +#define SKIN_PATH_PREFIX "skin.path=" #define INPUT_TOUCH_PARAMETER "virtio-touchscreen-pci" #define MIDBUF 128 @@ -142,7 +143,9 @@ static void set_image_and_log_path(char *qemu_argv) strcpy(tizen_target_path, g_path_get_dirname(path)); } + set_emul_vm_data_path(tizen_target_path); set_emul_vm_name(g_path_get_basename(tizen_target_path)); + strcpy(tizen_target_img_path, path); free(path); @@ -232,11 +235,14 @@ static void extract_skin_info(int skin_argc, char **skin_argv) h = atoi(height_arg); INFO("display height option : %d\n", h); + } else if (strstr(skin_argv[i], SKIN_PATH_PREFIX) != NULL) { + char *path = skin_argv[i] + strlen(SKIN_PATH_PREFIX); + + set_emul_skin_path(path); } if (w != 0 && h != 0) { set_emul_resolution(w, h); - break; } } } diff --git a/tizen/src/ns_event.h b/tizen/src/ns_event.h index 54655c9..e277ee4 100644 --- a/tizen/src/ns_event.h +++ b/tizen/src/ns_event.h @@ -3,4 +3,8 @@ void ns_event_loop(int* keepRunning); +void ns_run_in_event_loop(void (*func)()); + +void set_application_icon(char *path); + #endif /* _NS_EVENT_H_ */ diff --git a/tizen/src/ns_event.m b/tizen/src/ns_event.m index 69928df..62a097c 100644 --- a/tizen/src/ns_event.m +++ b/tizen/src/ns_event.m @@ -13,3 +13,35 @@ void ns_event_loop(int* keepRunning) while (*keepRunning && [theRunLoop runMode:NSDefaultRunLoopMode beforeDate:distantFuture]); // return [[NSRunLoop currentRunLoop] runUntilDate: [NSDate dateWithTimeIntervalSinceNow: 1]]; } + +@interface Runner : NSObject +{ + @public void (*func)(); +} +- (void)run; +@end + +@implementation Runner +- (void)run; +{ + self->func(); +} +@end + +void ns_run_in_event_loop(void (*func)()) +{ + Runner *runner = [[Runner alloc] init]; + runner->func = func; + [runner performSelectorOnMainThread:@selector(run) withObject:nil waitUntilDone:YES]; + [runner release]; +} + +void set_application_icon(char *path) +{ + NSString *iconPath = [[NSString alloc] initWithUTF8String:path]; + NSImage *iconImage = [[NSImage alloc] initWithContentsOfFile:iconPath]; + [[NSApplication sharedApplication] setApplicationIconImage:iconImage]; + + [iconImage release]; + [iconPath release]; +} diff --git a/tizen/src/skin/maruskin_keymap.h b/tizen/src/skin/maruskin_keymap.h index 96f9719..77beb63 100644 --- a/tizen/src/skin/maruskin_keymap.h +++ b/tizen/src/skin/maruskin_keymap.h @@ -85,7 +85,6 @@ enum JAVA_KEYCODE { JAVA_KEY_DELETE = 127 }; - #define KEY_MAX 0777 #define KEY_F0 0410 @@ -102,8 +101,9 @@ enum JAVA_KEYCODE { #define KEY_BTAB 0541 - #define SHIFT 0 + +/* for Java skin*/ static const int vkkey2scancode[KEY_MAX] = { [0 ... (KEY_MAX - 1)] = -1, diff --git a/tizen/src/skin/maruskin_operation.c b/tizen/src/skin/maruskin_operation.c index 0d5378c..6d255c8 100644 --- a/tizen/src/skin/maruskin_operation.c +++ b/tizen/src/skin/maruskin_operation.c @@ -185,6 +185,21 @@ void do_mouse_event(int button_type, int event_type, } } +void do_qt_keyboard_key_event(int event_type, int keycode) { + if (is_host_keyboard_attached() == false) { + TRACE("ignore key event because keyboard device was dettached\n"); + return; + } + + if (KEY_PRESSED == event_type) { + TRACE("key pressed: %d\n", keycode); + virtio_keyboard_event(keycode); + } else if (KEY_RELEASED == event_type) { + TRACE("key released: %d\n", keycode); + virtio_keyboard_event(keycode | 0x80); + } +} + void do_keyboard_key_event(int event_type, int keycode, int state_mask, int key_location) { diff --git a/tizen/src/skin/maruskin_operation.h b/tizen/src/skin/maruskin_operation.h index b434f6c..d4470f9 100644 --- a/tizen/src/skin/maruskin_operation.h +++ b/tizen/src/skin/maruskin_operation.h @@ -51,6 +51,7 @@ void start_display(uint64_t handle_id, void do_grabbing_enable(bool on); void do_mouse_event(int button_type, int event_type, int origin_x, int origin_y, int x, int y, int z); +void do_qt_keyboard_key_event(int event_type, int keycode); void do_keyboard_key_event(int event_type, int keycode, int state_mask, int key_location); void do_hw_key_event(int event_type, int keycode); diff --git a/tizen/src/skin/maruskin_server.c b/tizen/src/skin/maruskin_server.c index fcc7b8d..359028e 100644 --- a/tizen/src/skin/maruskin_server.c +++ b/tizen/src/skin/maruskin_server.c @@ -132,7 +132,6 @@ static uint16_t svr_port = 0; static int server_sock = 0; static int client_sock = 0; static int stop_server = 0; -static int is_sdbd_initialized = 0; static int ready_server = 0; static int ignore_heartbeat = 0; static int is_force_close_client = 0; @@ -141,6 +140,8 @@ static int is_started_heartbeat = 0; static int stop_heartbeat = 0; static int recv_heartbeat_count = 0; +int is_sdbd_initialized = 0; + /* 0: not drawing, 1: drawing */ int draw_display_state = 0; diff --git a/tizen/src/skin/maruskin_server.h b/tizen/src/skin/maruskin_server.h index 0db67fc..5d0a4c1 100644 --- a/tizen/src/skin/maruskin_server.h +++ b/tizen/src/skin/maruskin_server.h @@ -30,6 +30,8 @@ #ifndef MARUSKIN_SERVER_H_ #define MARUSKIN_SERVER_H_ +extern int is_sdbd_initialized; + int start_skin_server(int argc, char** argv, int qemu_argc, char** qemu_argv); void notify_draw_frame(void); diff --git a/tizen/src/ui/Makefile.objs b/tizen/src/ui/Makefile.objs new file mode 100644 index 0000000..417087e --- /dev/null +++ b/tizen/src/ui/Makefile.objs @@ -0,0 +1,49 @@ +TIZEN_UI = $(SRC_PATH)/tizen/src/ui +QEMU_CFLAGS += $(QT_CFLAGS) -I$(TIZEN_UI) + +$(obj)/qrc_resource.o: $(obj)/qrc_resource.cpp +$(obj)/qrc_resource.cpp: $(TIZEN_UI)/resource/resource.qrc + rcc -name resource $< -o $@ + +obj-$(CONFIG_QT) += controllerform.o +obj-$(CONFIG_QT) += dockingcontroller.o moc_dockingcontroller.o +obj-$(CONFIG_QT) += dockingconview.o +obj-$(CONFIG_QT) += floatingcontroller.o moc_floatingcontroller.o +obj-$(CONFIG_QT) += floatingconview.o +obj-$(CONFIG_QT) += displaybase.o +obj-$(CONFIG_QT) += displayglwidget.o moc_displayglwidget.o +obj-$(CONFIG_QT) += displayswwidget.o moc_displayswwidget.o +obj-$(CONFIG_QT) += hardwarekey.o +obj-$(CONFIG_QT) += mainwindow.o moc_mainwindow.o +obj-$(CONFIG_QT) += skinbezelitem.o +obj-$(CONFIG_QT) += skinkeyitem.o moc_skinkeyitem.o +obj-$(CONFIG_QT) += mainform.o +obj-$(CONFIG_QT) += keyboardhelper.o +obj-$(CONFIG_QT) += skinview.o +obj-$(CONFIG_QT) += uiinformation.o +obj-$(CONFIG_QT) += uistate.o +obj-$(CONFIG_QT) += uiutil.o +obj-$(CONFIG_QT) += qrc_resource.o + +obj-$(CONFIG_QT) += xml/ + +obj-$(CONFIG_QT) += menu/ + +$(obj)/moc_dockingcontroller.o: $(obj)/moc_dockingcontroller.cpp +$(obj)/moc_dockingcontroller.cpp: $(obj)/dockingcontroller.h + moc $< -o $@ +$(obj)/moc_floatingcontroller.o: $(obj)/moc_floatingcontroller.cpp +$(obj)/moc_floatingcontroller.cpp: $(obj)/floatingcontroller.h + moc $< -o $@ +$(obj)/moc_displayglwidget.o: $(obj)/moc_displayglwidget.cpp +$(obj)/moc_displayglwidget.cpp: $(obj)/displayglwidget.h + moc $< -o $@ +$(obj)/moc_displayswwidget.o: $(obj)/moc_displayswwidget.cpp +$(obj)/moc_displayswwidget.cpp: $(obj)/displayswwidget.h + moc $< -o $@ +$(obj)/moc_mainwindow.o: $(obj)/moc_mainwindow.cpp +$(obj)/moc_mainwindow.cpp: $(obj)/mainwindow.h + moc $< -o $@ +$(obj)/moc_skinkeyitem.o: $(obj)/moc_skinkeyitem.cpp +$(obj)/moc_skinkeyitem.cpp: $(obj)/skinkeyitem.h + moc $< -o $@ diff --git a/tizen/src/ui/controllerform.cpp b/tizen/src/ui/controllerform.cpp new file mode 100644 index 0000000..808d119 --- /dev/null +++ b/tizen/src/ui/controllerform.cpp @@ -0,0 +1,40 @@ +/* + * Qt UI + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim + * Sangho Park + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#include "controllerform.h" + +ControllerForm::ControllerForm(QString name) +{ + this->name = name; +} + +ControllerForm::~ControllerForm() +{ + qDebug("destroy con layout"); +} diff --git a/tizen/src/ui/controllerform.h b/tizen/src/ui/controllerform.h new file mode 100644 index 0000000..02c9b73 --- /dev/null +++ b/tizen/src/ui/controllerform.h @@ -0,0 +1,55 @@ +/* + * Qt UI + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim + * Sangho Park + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#ifndef CONTROLLERFORM_H +#define CONTROLLERFORM_H + +#include + +#include "hardwarekey.h" + +class ControllerForm +{ + Q_ENUMS(ConImgType) + +public: + ControllerForm(QString name); + ~ControllerForm(); + + QString name; + QImage conImg[2]; + QList keyList; + + enum ConImgType { + normal = 0, + pressed = 1 + }; +}; + +#endif // CONTROLLERFORM_H diff --git a/tizen/src/ui/displaybase.cpp b/tizen/src/ui/displaybase.cpp new file mode 100644 index 0000000..344a165 --- /dev/null +++ b/tizen/src/ui/displaybase.cpp @@ -0,0 +1,190 @@ +/* + * Qt UI + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim + * Sangho Park + * Stanislav Vorobiov + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#include "displaybase.h" +#include "mainwindow.h" + +uint32_t qt5_window_width = 0; +uint32_t qt5_window_height = 0; +int qt5_window_angle = 0; + +DisplayBase::DisplayBase(QSize resolution, QWidget *w) +: resolution(resolution), + widget(w), + isDragging(false) +{ + /* initialize */ + // TODO: compare display region with resolution + + MainWindow *win = ((MainWindow *)w->parent()->parent()); + rotateAngle = win->getUIState()->mainFormAngle; + scaleFactor = win->getUIState()->getScaleFactor(); +} + +DisplayBase::~DisplayBase() +{ + qDebug("destory display"); +} + +void DisplayBase::rotate(int angle) +{ + qDebug("display rotate : %d", angle); + + rotateAngle = angle; + + qt5_window_angle = angle; + + /* adjustSize() doesn't work */ + widget->resize(0, 0); + + widget->repaint(); +} + +void DisplayBase::scale(int scale) +{ + qDebug("display scale : %d", scale); + + scaleFactor = ((qreal)scale) / 100; + + /* adjustSize() doesn't work */ + widget->resize(0, 0); + + widget->repaint(); +} + +void DisplayBase::update() +{ + qt5_graphic_hw_invalidate(); +} + +void DisplayBase::handlePaint(QPaintEvent *event) +{ +} + +void DisplayBase::handleResize(QResizeEvent *event) +{ + qDebug("resize display"); + + MainWindow *win = ((MainWindow *)widget->parent()->parent()); + MainForm *form = win->uiInfo->getMainForm(); + + const qreal sx = scaleFactor; + const qreal sy = scaleFactor; + + widget->setGeometry(form->displayRegion.x() * sx, + form->displayRegion.y() * sy, + form->displayRegion.width() * sx, + form->displayRegion.height() * sy); + + qt5_window_width = widget->width(); + qt5_window_height = widget->height(); + + qt5_graphic_hw_invalidate(); +} + +void DisplayBase::handleMousePress(QMouseEvent *event) +{ + if (event->button() == Qt::LeftButton) { + isDragging = true; + + sendTouchEvent(TOUCH_PRESS, event->x(), event->y()); + } +} + +void DisplayBase::handleMouseRelease(QMouseEvent *event) +{ + if (event->button() == Qt::LeftButton) { + if (isDragging) { + isDragging = false; + } + + sendTouchEvent(TOUCH_RELEASE, event->x(), event->y()); + } +} + +void DisplayBase::handleMouseMove(QMouseEvent *event) +{ + if (isDragging == true) { + int event_type = TOUCH_PRESS; + int clientX = event->x(); + int clientY = event->y(); + + if (clientX < 0) { + event_type = TOUCH_RELEASE; + clientX = 0; + isDragging = false; + } else if (clientX >= widget->width()) { + event_type = TOUCH_RELEASE; + clientX = widget->width() - 1; + isDragging = false; + } + + if (clientY < 0) { + event_type = TOUCH_RELEASE; + clientY = 0; + isDragging = false; + } else if (clientY >= widget->height()) { + event_type = TOUCH_RELEASE; + clientY = widget->height() - 1; + isDragging = false; + } + + sendTouchEvent(event_type, clientX, clientY); + } +} + +void DisplayBase::sendTouchEvent(int eventType, int clientX, int clientY) +{ + int xx = clientX / scaleFactor; + int yy = clientY / scaleFactor; + int absX = xx; + int absY = yy; + + /* TODO: x*cos(rad)-y*sin(rad) */ + switch(rotateAngle) { + case 90: /* Reverse Landscape */ + absX = yy; + absY = resolution.height() - xx; + break; + case 180: /* Reverse Portrait */ + absX = resolution.width() - xx; + absY = resolution.height() - yy; + break; + case 270: /* Landscape */ + absX = resolution.width() - yy; + absY = xx; + break; + case 0: + default: + break; + } + + do_mouse_event(0, eventType, clientX, clientY, absX, absY, 0); +} diff --git a/tizen/src/ui/displaybase.h b/tizen/src/ui/displaybase.h new file mode 100644 index 0000000..2ca4ec8 --- /dev/null +++ b/tizen/src/ui/displaybase.h @@ -0,0 +1,77 @@ +/* + * Qt UI + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim + * Sangho Park + * Stanislav Vorobiov + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#ifndef DISPLAYBASE_H +#define DISPLAYBASE_H + +#include + +extern "C" { +void qt5_graphic_hw_invalidate(void); +} + +enum { + TOUCH_PRESS = 1, + TOUCH_RELEASE = 2, +}; + +class DisplayBase +{ +public: + void rotate(int angle); + void scale(int scale); + void update(); + +protected: + DisplayBase(QSize resolution, QWidget *w); + virtual ~DisplayBase(); + + void setRotate(int angle); + void setScale(int scale); + + void handlePaint(QPaintEvent *event); + void handleResize(QResizeEvent *event); + + void handleMousePress(QMouseEvent *event); + void handleMouseRelease(QMouseEvent *event); + void handleMouseMove(QMouseEvent *event); + +private: + void sendTouchEvent(int eventType, int clientX, int clientY); + + QSize resolution; + QWidget *widget; + int rotateAngle; + qreal scaleFactor; + + bool isDragging; +}; + +#endif diff --git a/tizen/src/ui/displayglwidget.cpp b/tizen/src/ui/displayglwidget.cpp new file mode 100644 index 0000000..1198fe0 --- /dev/null +++ b/tizen/src/ui/displayglwidget.cpp @@ -0,0 +1,86 @@ +/* + * Qt UI + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim + * Sangho Park + * Stanislav Vorobiov + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#include + +#include "displayglwidget.h" + +DisplayGLWidget::DisplayGLWidget(QSize resolution, QGLContext *context, QWidget *parent) : + QGLWidget(context, parent), + DisplayBase(resolution, this) +{ + setAutoBufferSwap(false); +} + +void DisplayGLWidget::initializeGL() +{ + qDebug("initialize GL"); +} + +void DisplayGLWidget::paintEvent(QPaintEvent *event) +{ + /* + * We offload rendering to separate thread, this must be + * a no-op, see: http://qt-project.org/doc/qt-5/QGLWidget.html: + * "3. Using QPainter to draw into a QGLWidget in a thread" + */ + + handlePaint(event); +} + +void DisplayGLWidget::resizeEvent(QResizeEvent *event) +{ + /* + * We offload rendering to separate thread, this must be + * a no-op, see: http://qt-project.org/doc/qt-5/QGLWidget.html: + * "3. Using QPainter to draw into a QGLWidget in a thread" + */ + + handleResize(event); +} + +void DisplayGLWidget::mousePressEvent(QMouseEvent *event) +{ + handleMousePress(event); +} + +void DisplayGLWidget::mouseReleaseEvent(QMouseEvent *event) +{ + handleMouseRelease(event); +} + +void DisplayGLWidget::mouseMoveEvent(QMouseEvent *event) +{ + handleMouseMove(event); +} + +DisplayGLWidget::~DisplayGLWidget() +{ +} diff --git a/tizen/src/ui/displayglwidget.h b/tizen/src/ui/displayglwidget.h new file mode 100644 index 0000000..9a1b8d8 --- /dev/null +++ b/tizen/src/ui/displayglwidget.h @@ -0,0 +1,57 @@ +/* + * Qt UI + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim + * Sangho Park + * Stanislav Vorobiov + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#ifndef DISPLAYGLWIDGET_H +#define DISPLAYGLWIDGET_H + +#include "displaybase.h" +#include + +class DisplayGLWidget : public QGLWidget, + public DisplayBase +{ + Q_OBJECT + +public: + DisplayGLWidget(QSize resolution, QGLContext *context, QWidget *parent = 0); + ~DisplayGLWidget(); + +protected: + void initializeGL(); + + void paintEvent(QPaintEvent *event); + void resizeEvent(QResizeEvent *event); + + void mousePressEvent(QMouseEvent *event); + void mouseReleaseEvent(QMouseEvent *event); + void mouseMoveEvent(QMouseEvent *event); +}; + +#endif // DISPLAYGLWIDGET_H diff --git a/tizen/src/ui/displayswwidget.cpp b/tizen/src/ui/displayswwidget.cpp new file mode 100644 index 0000000..3cb3b23 --- /dev/null +++ b/tizen/src/ui/displayswwidget.cpp @@ -0,0 +1,70 @@ +/* + * Qt UI + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim + * Sangho Park + * Stanislav Vorobiov + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#include + +#include "displayswwidget.h" + +DisplaySWWidget::DisplaySWWidget(QSize resolution, QWidget *parent) : + QLabel(parent), + DisplayBase(resolution, this) +{ +} + +void DisplaySWWidget::paintEvent(QPaintEvent *event) +{ + QLabel::paintEvent(event); + handlePaint(event); +} + +void DisplaySWWidget::resizeEvent(QResizeEvent *event) +{ + QLabel::resizeEvent(event); + handleResize(event); +} + +void DisplaySWWidget::mousePressEvent(QMouseEvent *event) +{ + handleMousePress(event); +} + +void DisplaySWWidget::mouseReleaseEvent(QMouseEvent *event) +{ + handleMouseRelease(event); +} + +void DisplaySWWidget::mouseMoveEvent(QMouseEvent *event) +{ + handleMouseMove(event); +} + +DisplaySWWidget::~DisplaySWWidget() +{ +} diff --git a/tizen/src/ui/displayswwidget.h b/tizen/src/ui/displayswwidget.h new file mode 100644 index 0000000..69454eb --- /dev/null +++ b/tizen/src/ui/displayswwidget.h @@ -0,0 +1,55 @@ +/* + * Qt UI + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim + * Sangho Park + * Stanislav Vorobiov + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#ifndef DISPLAYSWWIDGET_H +#define DISPLAYSWWIDGET_H + +#include "displaybase.h" +#include + +class DisplaySWWidget : public QLabel, + public DisplayBase +{ + Q_OBJECT + +public: + DisplaySWWidget(QSize resolution, QWidget *parent = 0); + ~DisplaySWWidget(); + +protected: + void paintEvent(QPaintEvent *event); + void resizeEvent(QResizeEvent *event); + + void mousePressEvent(QMouseEvent *event); + void mouseReleaseEvent(QMouseEvent *event); + void mouseMoveEvent(QMouseEvent *event); +}; + +#endif // DISPLAYSWWIDGET_H diff --git a/tizen/src/ui/dockingcontroller.cpp b/tizen/src/ui/dockingcontroller.cpp new file mode 100644 index 0000000..283e6ba --- /dev/null +++ b/tizen/src/ui/dockingcontroller.cpp @@ -0,0 +1,92 @@ +/* + * Qt UI + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim + * Sangho Park + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#include "dockingcontroller.h" +#include "mainwindow.h" + +DockingController::DockingController(ControllerForm *conForm, + QAction *menu, int dockPos, QWidget *parent) : QWidget(parent) +{ + this->conForm = conForm; + this->menu = menu; + this->dockPos = dockPos; + + setStyleSheet("border-style: none"); + setAttribute(Qt::WA_DeleteOnClose); + + QVBoxLayout *layout = new QVBoxLayout(this); + layout->setMargin(0); + layout->setSpacing(0); + + if (dockPos & Qt::AlignCenter) { + layout->setAlignment(Qt::AlignCenter); + } else if (dockPos & Qt::AlignTop) { + layout->setAlignment(Qt::AlignTop); + } else if (dockPos & Qt::AlignBottom) { + layout->setAlignment(Qt::AlignBottom); + } + + QGraphicsScene *conScene = new QGraphicsScene(this); + conScene->setBackgroundBrush(Qt::black); + + conView = new DockingConView(conForm, conScene, this); + conView->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum); + layout->addWidget(conView); +} + +DockingConView *DockingController::getConView() +{ + return conView; +} + +int DockingController::getDockPos() +{ + return dockPos; +} + +void DockingController::showEvent(QShowEvent *event) +{ + if (menu != NULL) { + menu->setChecked(true); + } +} + +void DockingController::closeEvent(QCloseEvent *event) { + if (menu != NULL) { + menu->setChecked(false); + } + + MainWindow *win = ((MainWindow *)this->parent()); + win->getUIState()->conState.dockingCon = NULL; +} + +DockingController::~DockingController() +{ + qDebug("destroy docking contoller"); +} diff --git a/tizen/src/ui/dockingcontroller.h b/tizen/src/ui/dockingcontroller.h new file mode 100644 index 0000000..a388030 --- /dev/null +++ b/tizen/src/ui/dockingcontroller.h @@ -0,0 +1,61 @@ +/* + * Qt UI + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim + * Sangho Park + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#ifndef DOCKINGCONTROLLER_H +#define DOCKINGCONTROLLER_H + +#include + +#include "controllerform.h" +#include "dockingconview.h" + +class DockingController : public QWidget +{ + Q_OBJECT + +public: + explicit DockingController(ControllerForm *conForm, + QAction *menu, int dockPos, QWidget *parent = 0); + ~DockingController(); + + DockingConView *getConView(); + int getDockPos(); + +protected: + void showEvent(QShowEvent *event); + void closeEvent(QCloseEvent *event); + +private: + DockingConView *conView; + ControllerForm *conForm; + QAction *menu; + int dockPos; +}; + +#endif // DOCKINGCONTROLLER_H diff --git a/tizen/src/ui/dockingconview.cpp b/tizen/src/ui/dockingconview.cpp new file mode 100644 index 0000000..dee2b3f --- /dev/null +++ b/tizen/src/ui/dockingconview.cpp @@ -0,0 +1,152 @@ +/* + * Qt UI + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim + * Sangho Park + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#include "dockingconview.h" +#include "mainwindow.h" +#include "skinkeyitem.h" + +DockingConView::DockingConView(ControllerForm *conForm, QGraphicsScene *scene, QWidget *parent) + : QGraphicsView(scene, parent) +{ + this->parent = (DockingController *)parent; + + setStyleSheet("background: transparent"); + setStyleSheet("border-style: none"); + + setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + setAlignment(Qt::AlignLeft | Qt::AlignTop); + + rubberPos = QPoint(-1, -1); + grabPos = QPoint(-1, -1); + rubberBand = new QRubberBand(QRubberBand::Rectangle, NULL); + + createItems(conForm); +} + +void DockingConView::createItems(ControllerForm *conForm) +{ + /* bezel */ + bezelItem = new SkinBezelItem(conForm->conImg[ControllerForm::normal]); + scene()->addItem(bezelItem); + + /* HW keys */ + QList keyList = conForm->keyList; + + HardwareKey *hwKey = NULL; + for (int i = 0; i < keyList.count(); i++) { + hwKey = keyList.at(i); + if (hwKey != NULL) { + new SkinKeyItem(conForm->conImg[ControllerForm::pressed].copy(hwKey->region), + hwKey, bezelItem); + } + } +} + +void DockingConView::resizeEvent(QResizeEvent *event) +{ + //qDebug("resize con view"); + + Q_UNUSED(event) +} + +void DockingConView::mousePressEvent(QMouseEvent *event) +{ + QGraphicsView::mousePressEvent(event); + + if (bezelItem->isKeyHandling() == true) { + /* do nothing */ + return; + } + + if (event->button() == Qt::LeftButton) { + QWidget *win = ((QWidget *)parent->parent()); + + grabPos = event->globalPos(); + eventPos = event->pos(); + rubberPos.setX(win->pos().x() + parent->pos().x()); + rubberPos.setY(win->pos().y() + pos().y()); + + if (rubberBand != NULL) { + rubberBand->setGeometry(QRect(rubberPos, size())); + rubberBand->show(); + } + } +} + +void DockingConView::mouseReleaseEvent(QMouseEvent *event) +{ + QGraphicsView::mouseReleaseEvent(event); + + if (bezelItem->isKeyHandling() == true) { + /* do nothing */ + return; + } + + if (event->button() == Qt::LeftButton) { + if (grabPos != QPoint(-1, -1)) { + if (rubberBand != NULL) { + rubberBand->hide(); + } + + /* toggle */ + MainWindow *win = ((MainWindow *)parent->parent()); + win->getUIState()->conState.recentlyFloatPos = event->globalPos() - eventPos; + + win->openController(win->getUIState()->conState.conFormIndex, -1); + return; + } + } +} + +void DockingConView::mouseMoveEvent(QMouseEvent *event) +{ + QGraphicsView::mouseMoveEvent(event); + + if (bezelItem->isKeyHandling() == true) { + /* do nothing */ + return; + } + + if (grabPos != QPoint(-1, -1) && rubberBand != NULL) { + rubberBand->setGeometry( + QRect(rubberPos + (event->globalPos() - grabPos), size())); + } +} + +DockingConView::~DockingConView() +{ + qDebug("destroy docking controller view"); + + if (rubberBand != NULL) { + rubberBand->close(); + delete rubberBand; + rubberBand = NULL; + } +} diff --git a/tizen/src/ui/dockingconview.h b/tizen/src/ui/dockingconview.h new file mode 100644 index 0000000..691400d --- /dev/null +++ b/tizen/src/ui/dockingconview.h @@ -0,0 +1,65 @@ +/* + * Qt UI + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim + * Sangho Park + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#ifndef DOCKINGCONVIEW_H +#define DOCKINGCONVIEW_H + +#include + +#include "skinview.h" +#include "skinbezelitem.h" +#include "controllerform.h" + +class DockingController; + +class DockingConView : public QGraphicsView +{ +public: + DockingConView(ControllerForm *conForm, QGraphicsScene *scene, QWidget *parent = 0); + ~DockingConView(); + +protected: + void resizeEvent(QResizeEvent *event); + void mousePressEvent(QMouseEvent *event); + void mouseReleaseEvent(QMouseEvent *event); + void mouseMoveEvent(QMouseEvent *event); + + QPoint grabPos; + QPoint eventPos; + QPoint rubberPos; + +private: + void createItems(ControllerForm *conForm); + + DockingController *parent; + SkinBezelItem *bezelItem; + QRubberBand *rubberBand; +}; + +#endif // DOCKINGCONVIEW_H diff --git a/tizen/src/ui/floatingcontroller.cpp b/tizen/src/ui/floatingcontroller.cpp new file mode 100644 index 0000000..0616eff --- /dev/null +++ b/tizen/src/ui/floatingcontroller.cpp @@ -0,0 +1,95 @@ +/* + * Qt UI + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim + * Sangho Park + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#include "floatingcontroller.h" +#include "mainwindow.h" + +FloatingController::FloatingController(ControllerForm *conForm, + QAction *menu, QWidget *parent) : QDialog(parent) +{ + this->conForm = conForm; + this->menu = menu; + + setStyleSheet("border-style: none"); + setWindowFlags(Qt::FramelessWindowHint | Qt::Dialog); + setAttribute(Qt::WA_DeleteOnClose); + + setWindowTitle(conForm->name); + + QHBoxLayout *layout = new QHBoxLayout(this); + layout->setMargin(0); + layout->setSpacing(0); + + QGraphicsScene *conScene = new QGraphicsScene(this); + conScene->setBackgroundBrush(Qt::black); + + conView = new FloatingConView(conForm, conScene, this); + conView->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum); + layout->addWidget(conView); +} + +FloatingConView *FloatingController::getConView() +{ + return conView; +} + +void FloatingController::showEvent(QShowEvent *event) +{ + if (menu != NULL) { + menu->setChecked(true); + } + + setRegion(&(conForm->conImg[ControllerForm::normal])); +} + +void FloatingController::closeEvent(QCloseEvent *event) { + if (menu != NULL) { + menu->setChecked(false); + } + + MainWindow *win = ((MainWindow *)this->parent()); + win->getUIState()->conState.floatingCon = NULL; +} + +void FloatingController::setRegion(QImage *baseImage) +{ + qDebug("set region"); + + if (baseImage->isNull() == true) { + qWarning("invalid image for region"); + return; + } + + setMask(QRegion(QBitmap::fromImage(baseImage->createAlphaMask()))); +} + +FloatingController::~FloatingController() +{ + qDebug("destroy floating contoller"); +} diff --git a/tizen/src/ui/floatingcontroller.h b/tizen/src/ui/floatingcontroller.h new file mode 100644 index 0000000..d9e7bf5 --- /dev/null +++ b/tizen/src/ui/floatingcontroller.h @@ -0,0 +1,60 @@ +/* + * Qt UI + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim + * Sangho Park + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#ifndef FLOATINGCONTROLLER_H +#define FLOATINGCONTROLLER_H + +#include + +#include "controllerform.h" +#include "floatingconview.h" + +class FloatingController : public QDialog +{ + Q_OBJECT + +public: + explicit FloatingController(ControllerForm *conForm, QAction *menu, QWidget *parent = 0); + ~FloatingController(); + + FloatingConView *getConView(); + +protected: + void showEvent(QShowEvent *event); + void closeEvent(QCloseEvent *event); + + void setRegion(QImage *baseImage); + +private: + FloatingConView *conView; + ControllerForm *conForm; + QAction *menu; +}; + +#endif // FLOATINGCONTROLLER_H diff --git a/tizen/src/ui/floatingconview.cpp b/tizen/src/ui/floatingconview.cpp new file mode 100644 index 0000000..a6572dc --- /dev/null +++ b/tizen/src/ui/floatingconview.cpp @@ -0,0 +1,229 @@ +/* + * Qt UI + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim + * Sangho Park + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#include "floatingconview.h" +#include "mainwindow.h" +#include "skinkeyitem.h" + +#define DOCKABLE_AREA_WIDTH 30 + +FloatingConView::FloatingConView(ControllerForm *conForm, QGraphicsScene *scene, QWidget *parent) + : QGraphicsView(scene, parent) +{ + this->parent = (FloatingController *)parent; + + setStyleSheet("background: transparent"); + setStyleSheet("border-style: none"); + + setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + setAlignment(Qt::AlignLeft | Qt::AlignTop); + + conPos = QPoint(-1, -1); + grabPos = QPoint(-1, -1); + rubberBand = new QRubberBand(QRubberBand::Rectangle, NULL); + + createItems(conForm); +} + +void FloatingConView::createItems(ControllerForm *conForm) +{ + /* bezel */ + bezelItem = new SkinBezelItem(conForm->conImg[ControllerForm::normal]); + scene()->addItem(bezelItem); + + /* HW keys */ + QList keyList = conForm->keyList; + + HardwareKey *hwKey = NULL; + for (int i = 0; i < keyList.count(); i++) { + hwKey = keyList.at(i); + if (hwKey != NULL) { + new SkinKeyItem(conForm->conImg[ControllerForm::pressed].copy(hwKey->region), + hwKey, bezelItem); + } + } +} + +void FloatingConView::resizeEvent(QResizeEvent *event) +{ + //qDebug("resize con view"); + + Q_UNUSED(event) +} + +int FloatingConView::isDockable(QWidget *object, QWidget *subject) +{ + const int heightOneThird = object->size().height() / 3; + + /* MainWindow */ + QRect rectDockableRC(object->pos().x() + object->size().width() - 1, + object->pos().y() + heightOneThird, + DOCKABLE_AREA_WIDTH, + heightOneThird); + + QRect rectDockableRT(object->pos().x() + object->size().width() - 1, + object->pos().y(), + DOCKABLE_AREA_WIDTH, + heightOneThird); + + QRect rectDockableRB(object->pos().x() + object->size().width() - 1, + object->pos().y() + (heightOneThird * 2), + DOCKABLE_AREA_WIDTH, + heightOneThird); + + /* ControllerWidget */ + QRect rectTarget(subject->pos().x() - 1, + subject->pos().y(), + DOCKABLE_AREA_WIDTH, + subject->size().height()); + + // TODO: define recursive function + QRect interRC = rectTarget.intersected(rectDockableRC); + QRect interRT = rectTarget.intersected(rectDockableRT); + QRect interRB = rectTarget.intersected(rectDockableRB); + + QRect *interBiggest = NULL; + + if ((interRC.width() * interRC.height()) < (interRT.width() * interRT.height())) { + interBiggest = &interRT; + } else { + interBiggest = &interRC; + } + + if ((interBiggest->width() * interBiggest->height()) < (interRB.width() * interRB.height())) { + interBiggest = &interRB; + } + + if (interBiggest != NULL && + interBiggest->isNull() == false && interBiggest->isEmpty() == false) { + if (interBiggest == &interRC) { + return Qt::AlignRight | Qt::AlignCenter; + } else if (interBiggest == &interRT) { + return Qt::AlignRight | Qt::AlignTop; + } else if (interBiggest == &interRB) { + return Qt::AlignRight | Qt::AlignBottom; + } + } + + return -1; +} + +void FloatingConView::mousePressEvent(QMouseEvent *event) +{ + QGraphicsView::mousePressEvent(event); + + if (bezelItem->isKeyHandling() == true) { + /* do nothing */ + return; + } + + if (event->button() == Qt::LeftButton) { + grabPos = event->globalPos(); + conPos = parent->pos(); + } +} + +void FloatingConView::mouseReleaseEvent(QMouseEvent *event) +{ + QGraphicsView::mouseReleaseEvent(event); + + if (bezelItem->isKeyHandling() == true) { + /* do nothing */ + return; + } + + if (event->button() == Qt::LeftButton) { + grabPos = QPoint(-1, -1); + if (rubberBand != NULL) { + rubberBand->hide(); + } + } + + const FloatingController *con = parent; + MainWindow *win = ((MainWindow *)con->parent()); + + int dockPos = isDockable((QWidget *)win, (QWidget *)parent); + if (dockPos != -1) { + /* toggle */ + win->openController(win->getUIState()->conState.conFormIndex, dockPos); + return; + } +} + +void FloatingConView::mouseMoveEvent(QMouseEvent *event) +{ + QGraphicsView::mouseMoveEvent(event); + + if (bezelItem->isKeyHandling() == true) { + /* do nothing */ + return; + } + + if (grabPos != QPoint(-1, -1)) { + /* draw guide for dockable position */ + const FloatingController *con = parent; + MainWindow *win = ((MainWindow *)con->parent()); + + if (rubberBand != NULL) { + int dockPos = isDockable((QWidget *)win, (QWidget *)con); + if (dockPos != -1) { + int vShift = 0; + + if (win->size().height() > size().height()) { + if (dockPos & Qt::AlignCenter) { + vShift = (win->size().height() / 2) - (size().height() / 2); + } else if (dockPos & Qt::AlignBottom) { + vShift = win->size().height() - size().height(); + } + } + + QPoint rubberPos(win->pos().x() + win->size().width(), + win->pos().y() + vShift); + rubberBand->setGeometry(QRect(rubberPos, size())); + rubberBand->show(); + } else { + rubberBand->hide(); + } + } + + parent->move(conPos + (event->globalPos() - grabPos)); + } +} + +FloatingConView::~FloatingConView() +{ + qDebug("destroy floating controller view"); + + if (rubberBand != NULL) { + rubberBand->close(); + delete rubberBand; + rubberBand = NULL; + } +} diff --git a/tizen/src/ui/floatingconview.h b/tizen/src/ui/floatingconview.h new file mode 100644 index 0000000..f2e996f --- /dev/null +++ b/tizen/src/ui/floatingconview.h @@ -0,0 +1,66 @@ +/* + * Qt UI + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim + * Sangho Park + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#ifndef FLOATINGCONVIEW_H +#define FLOATINGCONVIEW_H + +#include + +#include "skinview.h" +#include "skinbezelitem.h" +#include "controllerform.h" + +class FloatingController; + +class FloatingConView : public QGraphicsView +{ +public: + FloatingConView(ControllerForm *conForm, QGraphicsScene *scene, QWidget *parent = 0); + ~FloatingConView(); + +protected: + void resizeEvent(QResizeEvent *event); + void mousePressEvent(QMouseEvent *event); + void mouseReleaseEvent(QMouseEvent *event); + void mouseMoveEvent(QMouseEvent *event); + + int isDockable(QWidget *object, QWidget *subject); + + QPoint grabPos; + QPoint conPos; + +private: + void createItems(ControllerForm *conForm); + + FloatingController *parent; + SkinBezelItem *bezelItem; + QRubberBand *rubberBand; +}; + +#endif // FLOATINGCONVIEW_H diff --git a/tizen/src/ui/hardwarekey.cpp b/tizen/src/ui/hardwarekey.cpp new file mode 100644 index 0000000..336f277 --- /dev/null +++ b/tizen/src/ui/hardwarekey.cpp @@ -0,0 +1,43 @@ +/* + * Qt UI + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim + * Sangho Park + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#include "hardwarekey.h" + +HardwareKey::HardwareKey(QString name, int keycode, QRect region, QString tooltip) +{ + this->name = name; + this->keycode = keycode; + this->region = region; + this->tooltip = tooltip; +} + +HardwareKey::~HardwareKey() +{ + qDebug("destroy HW key"); +} diff --git a/tizen/src/ui/hardwarekey.h b/tizen/src/ui/hardwarekey.h new file mode 100644 index 0000000..6fabe42 --- /dev/null +++ b/tizen/src/ui/hardwarekey.h @@ -0,0 +1,47 @@ +/* + * Qt UI + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim + * Sangho Park + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#ifndef HARDWAREKEY_H +#define HARDWAREKEY_H + +#include + +class HardwareKey +{ +public: + HardwareKey(QString name, int keycode, QRect region, QString tooltip); + ~HardwareKey(); + + QString name; + int keycode; + QRect region; + QString tooltip; +}; + +#endif // HARDWAREKEY_H diff --git a/tizen/src/ui/keyboardhelper.cpp b/tizen/src/ui/keyboardhelper.cpp new file mode 100644 index 0000000..37ac16e --- /dev/null +++ b/tizen/src/ui/keyboardhelper.cpp @@ -0,0 +1,464 @@ +/* + * Qt keyboard helper + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * Sungmin Ha + * Sangho Park + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#include +#include + +#include "keyboardhelper.h" + +extern "C" { +#include "emul_state.h" +#include "skin/maruskin_operation.h" + +void virtio_keyboard_event(int keycode); +} + +KeyboardHelper::KeyboardHelper() +{ + createKeyMap(); + createKeypadMap(); + + this->numLockState = false; + this->capsLockState = false; +} + +void KeyboardHelper::createKeypadMap() +{ + keypadMap.insert(48, Qt::Key_Insert); + keypadMap.insert(49, Qt::Key_End); + keypadMap.insert(50, Qt::Key_Down); + keypadMap.insert(51, Qt::Key_PageDown); + keypadMap.insert(52, Qt::Key_Left); + keypadMap.insert(53, Qt::Key_Clear); + keypadMap.insert(54, Qt::Key_Right); + keypadMap.insert(55, Qt::Key_Home); + keypadMap.insert(56, Qt::Key_Up); + keypadMap.insert(57, Qt::Key_PageUp); + keypadMap.insert(46, Qt::Key_Delete); + keypadMap.insert(42, 106); /* * */ + keypadMap.insert(45, 109); /* - */ + + keypadMap.insert(Qt::Key_Insert, 48); + keypadMap.insert(Qt::Key_End, 49); + keypadMap.insert(Qt::Key_Down, 50); + keypadMap.insert(Qt::Key_PageDown, 51); + keypadMap.insert(Qt::Key_Left, 52); + keypadMap.insert(Qt::Key_Clear, 53); + keypadMap.insert(Qt::Key_Right, 54); + keypadMap.insert(Qt::Key_Home, 55); + keypadMap.insert(Qt::Key_Up, 56); + keypadMap.insert(Qt::Key_PageUp, 57); + keypadMap.insert(Qt::Key_Delete, 46); +} + +void KeyboardHelper::createKeyMap() +{ + /* characters */ + /* q ~ p */ + keyMap.insert(81, 16); + keyMap.insert(87, 17); + keyMap.insert(69, 18); + keyMap.insert(82, 19); + keyMap.insert(84, 20); + keyMap.insert(89, 21); + keyMap.insert(85, 22); + keyMap.insert(73, 23); + keyMap.insert(79, 24); + keyMap.insert(80, 25); + + /* a ~ l */ + keyMap.insert(65, 30); + keyMap.insert(83, 31); + keyMap.insert(68, 32); + keyMap.insert(70, 33); + keyMap.insert(71, 34); + keyMap.insert(72, 35); + keyMap.insert(74, 36); + keyMap.insert(75, 37); + keyMap.insert(76, 38); + + /* z ~ m */ + keyMap.insert(90, 44); + keyMap.insert(88, 45); + keyMap.insert(67, 46); + keyMap.insert(86, 47); + keyMap.insert(66, 48); + keyMap.insert(78, 49); + keyMap.insert(77, 50); + + /* signs */ + keyMap.insert(32, 57); /* space */ + keyMap.insert(44, 51); /* , */ + keyMap.insert(46, 52); /* . */ + keyMap.insert(59, 39); /* ; */ + keyMap.insert(47, 53); /* / */ + keyMap.insert(42, 55); /* * */ + keyMap.insert(106, 55); /* * */ + keyMap.insert(45, 12); /* - */ + keyMap.insert(109, 74); /* - */ + keyMap.insert(61, 13); /* = */ + keyMap.insert(91, 26); /* [ */ + keyMap.insert(93, 27); /* ] */ + keyMap.insert(92, 43); /* \ */ + keyMap.insert(43, 78); /* + */ + keyMap.insert(39, 40); /* Single quote */ + keyMap.insert(96, 41); /* ` */ + + /* special keys */ + keyMap.insert(Qt::Key_Return, 28); /* return */ + keyMap.insert(Qt::Key_Enter, 28); /* enter */ + keyMap.insert(Qt::Key_Escape, 1); /* escape */ + keyMap.insert(Qt::Key_Tab, 15); /* tab */ + keyMap.insert(Qt::Key_Backtab, 15); /* shift tab */ + keyMap.insert(Qt::Key_Backspace, 14); /* backspace */ + keyMap.insert(Qt::Key_Pause, 198); /* pause/break */ + keyMap.insert(Qt::Key_PageUp, 73); /* PgUp */ + keyMap.insert(Qt::Key_PageDown, 81); /* PgDn */ + keyMap.insert(Qt::Key_Home, 71); /* Home */ + keyMap.insert(Qt::Key_End, 79); /* End */ + keyMap.insert(Qt::Key_Insert, 82); /* Insert */ + keyMap.insert(Qt::Key_Delete, 83); /* delete */ + + /* arrow keys */ + keyMap.insert(Qt::Key_Up, 72); /* up arrow */ + keyMap.insert(Qt::Key_Down, 80); /* down arrow */ + keyMap.insert(Qt::Key_Left, 75); /* left arrow */ + keyMap.insert(Qt::Key_Right, 77); /* right arrow */ + + /* modifiers */ + keyMap.insert(Qt::Key_Shift, 42); /* shift */ + keyMap.insert(Qt::Key_Control, 29); /* ctrl */ + keyMap.insert(Qt::Key_Alt, 56); /* alt */ + + /* numbers */ + keyMap.insert(48, 11); /* 0 */ + keyMap.insert(49, 2); /* 1 */ + keyMap.insert(50, 3); /* 2 */ + keyMap.insert(51, 4); /* 3 */ + keyMap.insert(52, 5); /* 4 */ + keyMap.insert(53, 6); /* 5 */ + keyMap.insert(54, 7); /* 6 */ + keyMap.insert(55, 8); /* 7 */ + keyMap.insert(56, 9); /* 8 */ + keyMap.insert(57, 10); /* 9 */ + + /* shift + numbers */ + keyMap.insert(126, 41); /* ~ */ + keyMap.insert(33, 2); /* ! */ + keyMap.insert(64, 3); /* @ */ + keyMap.insert(35, 4); /* # */ + keyMap.insert(36, 5); /* $ */ + keyMap.insert(37, 6); /* % */ + keyMap.insert(94, 7); /* ^ */ + keyMap.insert(38, 8); /* & */ + keyMap.insert(40, 10); /* ( */ + keyMap.insert(41, 11); /* ) */ + + /* shift + signs */ + keyMap.insert(95, 12); /* _ */ + keyMap.insert(124, 43); /* | */ + keyMap.insert(123, 26); /* { */ + keyMap.insert(125, 27); /* } */ + keyMap.insert(58, 39); /* : */ + keyMap.insert(34, 40); /* " */ + keyMap.insert(60, 51); /* < */ + keyMap.insert(62, 52); /* > */ + keyMap.insert(63, 53); /* ? */ + + /* function keys */ + keyMap.insert(Qt::Key_F1, 59); /* f1 */ + keyMap.insert(Qt::Key_F2, 60); /* f2 */ + keyMap.insert(Qt::Key_F3, 61); /* f3 */ + keyMap.insert(Qt::Key_F4, 62); /* f4 */ + keyMap.insert(Qt::Key_F5, 63); /* f5 */ + keyMap.insert(Qt::Key_F6, 64); /* f6 */ + keyMap.insert(Qt::Key_F7, 65); /* f7 */ + keyMap.insert(Qt::Key_F8, 66); /* f8 */ + keyMap.insert(Qt::Key_F9, 67); /* f9 */ + keyMap.insert(Qt::Key_F10, 68); /* f10 */ + keyMap.insert(Qt::Key_F11, 87); /* f11 */ + keyMap.insert(Qt::Key_F12, 88); /* f12 */ +} + +void KeyboardHelper::autoKeyRelease(void) +{ + while (!this->keyCodeList.isEmpty()) { + qDebug() << "auto release scancode: " << this->keyCodeList.last(); + do_qt_keyboard_key_event(KEY_RELEASED, this->keyCodeList.last()); + this->keyCodeList.removeLast(); + } + +#if 0 + clear_finger_slot(false); + qDebug() << "disable multi-touch"; +#endif +} + +int KeyboardHelper::keyCodeOperation(QKeyEvent *event, int keyCode) +{ + /* keypad and specialKey translation */ + if (!this->numLockState && (event->modifiers() == (Qt::KeypadModifier | Qt::ShiftModifier))) { + QMap::iterator keypadIter = this->keypadMap.find(keyCode); + while (keypadIter != this->keypadMap.end()) { + if (keypadIter.key() == keyCode) { + keyCode = keypadIter.value(); + break; + } + } + } + + if (this->isSpecialKey(keyCode)) { + virtio_keyboard_event(224); + } + + QMap::iterator keyMapIter = this->keyMap.find(keyCode); + while (keyMapIter != this->keyMap.end()) { + if (keyMapIter.key() == keyCode) { + break; + } + } + + if (keyMapIter == this->keyMap.end()) { + qDebug() << "unsupported keycode pressed: " << keyCode; + return -1; + } + + return keyMapIter.value(); +} + +bool KeyboardHelper::isSpecialKey(int keyCode) +{ + switch(keyCode) { + case Qt::Key_PageDown: + case Qt::Key_PageUp: + case Qt::Key_Home: + case Qt::Key_End: + case Qt::Key_Insert: + case Qt::Key_Delete: + case Qt::Key_Up: + case Qt::Key_Down: + case Qt::Key_Left: + case Qt::Key_Right: + return true; + default: + break; + } + + return false; +} + +void KeyboardHelper::keyPressed(QKeyEvent *event) +{ + int keyCode = event->key(); + qDebug() << "key pressed :" << event->key() << event->text() << event->nativeScanCode() << event->modifiers() << event->nativeModifiers(); + +#if 0 + /* TODO: multi-touch */ + if (get_emul_max_touch_point() > 1) { + /* multi-touch checking */ + if (event->modifiers() == (Qt::ShiftModifier|Qt::ControlModifier)) { + get_emul_multi_touch_state()->multitouch_enable = 2; + /* add a finger before start the multi-touch processing + if already exist the pressed touch in display */ + qDebug() << "enable multi-touch = mode 2"; + } else if (event->modifiers() == Qt::ShiftModifier || + event->modifiers() == Qt::ControlModifier) { + get_emul_multi_touch_state()->multitouch_enable = 1; + qDebug() << "enable multi-touch = mode 1"; + } + } +#endif + + /* NumLock or CapsLock key */ + if (keyCode == Qt::Key_NumLock) { +#ifdef CONFIG_WIN32 + if (event->nativeModifiers() == 0x1000200) { + this->numLockState = ON; + } else if (event->nativeModifiers() == 0x1000000) { + this->numLockState = OFF; + } +#else + if (event->nativeModifiers() == 0) { + this->numLockState = ON; + } else if (event->nativeModifiers() == 16) { + this->numLockState = OFF; + } +#endif + qDebug() << "num_lock state: " << this->numLockState << "pressed"; + return; + } else if (keyCode == Qt::Key_CapsLock) { +#ifdef CONFIG_WIN32 + if (event->nativeModifiers() == 256) { + this->capsLockState = ON; + } else if (event->nativeModifiers() == 0) { + this->capsLockState = OFF; + } +#else + if (event->nativeModifiers() == 18) { + this->capsLockState = ON; + } else if (event->nativeModifiers() == 16) { + this->capsLockState = OFF; + } +#endif + qDebug() << "caps_lock state: " << this->capsLockState << "pressed"; + return; + } + + /* host numlock check for sync */ + if ((event->modifiers() & Qt::KeypadModifier)) { + if (this->isSpecialKey(keyCode) || keyCode == Qt::Key_Clear) { + if (!(event->modifiers() & Qt::ShiftModifier)) { + this->numLockState = OFF; + } else { + this->numLockState = ON; + } + } else { + if (!(event->modifiers() & Qt::ShiftModifier || keyCode == 42 || keyCode == 43 || keyCode == 45 || keyCode == 47)) { /* (42 = *, 43 = +, 45 = -, 47 = /) on keypad */ + this->numLockState = ON; + } else { + this->numLockState = OFF; + } + } + } + if (event->key() >= 65 && event->key() <= 90) { +#ifdef CONFIG_WIN32 + if (event->nativeModifiers() & 256) { +#else + if (event->nativeModifiers() & 0x02) { +#endif + this->capsLockState = ON; + } else { + this->capsLockState = OFF; + } + } + + if (get_emul_caps_lock_state() != this->capsLockState) { + virtio_keyboard_event(58); + virtio_keyboard_event(58 | 0x80); + set_emul_caps_lock_state(get_emul_caps_lock_state() ^ 1); + qDebug() << "qemu CapsLock state was synchronized with host key value (" << + get_emul_caps_lock_state() << ")"; + } + if (get_emul_num_lock_state() != this->numLockState) { + virtio_keyboard_event(69); + virtio_keyboard_event(69 | 0x80); + set_emul_num_lock_state(get_emul_num_lock_state() ^ 1); + qDebug() << "qemu NumLock state was synchronized with host key value (" << + get_emul_num_lock_state() << ")"; + } + + int ret = this->keyCodeOperation(event, keyCode); + if (ret != -1) { + /* for auto release */ + this->keyCodeList.append(ret); + do_qt_keyboard_key_event(KEY_PRESSED, ret); + } +} + +void KeyboardHelper::keyReleased(QKeyEvent *event) +{ + int keyCode = event->key(); + qDebug() << "key released :" << event->key() << event->text() << event->nativeScanCode() << event->modifiers() << event->nativeModifiers(); + +#if 0 + /* TODO: multi-touch */ + if (event->key() == Qt::Key_Shift && event->modifiers() == Qt::ControlModifier) { + get_emul_multi_touch_state()->multitouch_enable = 1; + qDebug() << "enabled multi-touch = mode 1"; + } else if (event->key() == Qt::Key_Shift || event->key() == Qt::Key_Control) { + clear_finger_slot(false); + qDebug() << "disable multi-touch"; + } +#endif + + if (keyCode == Qt::Key_NumLock) { + qDebug() << "num_lock state: " << this->numLockState << "released"; + return; + } else if (keyCode == Qt::Key_CapsLock) { + qDebug() << "caps_lock state: " << this->capsLockState << "released"; + return; + } + +#ifdef CONFIG_LINUX + /* for keypad keycode translation */ + if (this->numLockState && event->modifiers() == Qt::KeypadModifier) { + if (this->isSpecialKey(keyCode) || keyCode == Qt::Key_Clear) { + switch(keyCode) { + case Qt::Key_Delete: + keyCode = 46; /* . */ + break; + case Qt::Key_Insert: + keyCode = 48; /* 0 */ + break; + case Qt::Key_End: + keyCode = 49; /* 1 */ + break; + case Qt::Key_Down: + keyCode = 50; /* 2 */ + break; + case Qt::Key_PageDown: + keyCode = 51; /* 3 */ + break; + case Qt::Key_Left: + keyCode = 52; /* 4 */ + break; + case Qt::Key_Clear: + keyCode = 53; /* 5 */ + break; + case Qt::Key_Right: + keyCode = 54; /* 6 */ + break; + case Qt::Key_Home: + keyCode = 55; /* 7 */ + break; + case Qt::Key_Up: + keyCode = 56; /* 8 */ + break; + case Qt::Key_PageUp: + keyCode = 57; /* 9 */ + break; + default: + break; + } + } + } +#endif + + int ret = this->keyCodeOperation(event, keyCode); + if (ret != -1) { + do_qt_keyboard_key_event(KEY_RELEASED, ret); + /* remove keycode from list */ + this->keyCodeList.removeOne(ret); + } +} + +KeyboardHelper::~KeyboardHelper() +{ + qDebug("destroy keyboard helper"); +} diff --git a/tizen/src/ui/keyboardhelper.h b/tizen/src/ui/keyboardhelper.h new file mode 100644 index 0000000..7eef329 --- /dev/null +++ b/tizen/src/ui/keyboardhelper.h @@ -0,0 +1,64 @@ +/* + * Qt keyboard helper + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * Sungmin Ha + * Sangho Park + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#ifndef KEYBOARDHELPER_H +#define KEYBOARDHELPER_H + +#include + +enum KbdLedState { + OFF, + ON +}; + +class KeyboardHelper +{ +public: + KeyboardHelper(); + ~KeyboardHelper(); + + void keyPressed(QKeyEvent *event); + void keyReleased(QKeyEvent *event); + void autoKeyRelease(void); + bool isSpecialKey(int keyCode); + int keyCodeOperation(QKeyEvent *event, int keyCode); + +protected: + QList keyCodeList; + QMap keyMap; + QMap keypadMap; + bool numLockState; + bool capsLockState; + +private: + void createKeyMap(); + void createKeypadMap(); +}; + +#endif // KEYBOARDHELPER_H diff --git a/tizen/src/ui/mainform.cpp b/tizen/src/ui/mainform.cpp new file mode 100644 index 0000000..c707786 --- /dev/null +++ b/tizen/src/ui/mainform.cpp @@ -0,0 +1,45 @@ +/* + * Qt UI + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim + * Sangho Park + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#include "mainform.h" + +MainForm::MainForm() : + displayRegion(0, 0, 0, 0) +{ +} + +MainForm::~MainForm() +{ + qDebug("destroy main form"); + + for (int i = 0; i < keyList.count(); i++) { + delete keyList.at(i); + } + keyList.clear(); +} diff --git a/tizen/src/ui/mainform.h b/tizen/src/ui/mainform.h new file mode 100644 index 0000000..28bcede --- /dev/null +++ b/tizen/src/ui/mainform.h @@ -0,0 +1,55 @@ +/* + * Qt UI + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim + * Sangho Park + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#ifndef MAINFORM_H +#define MAINFORM_H + +#include + +#include "hardwarekey.h" + +class MainForm +{ + Q_ENUMS(SkinImgType) + +public: + MainForm(); + ~MainForm(); + + QImage skinImg[2]; + QRect displayRegion; + QList keyList; + + enum SkinImgType { + normal = 0, + pressed = 1 + }; +}; + +#endif // MAINFORM_H diff --git a/tizen/src/ui/mainwindow.cpp b/tizen/src/ui/mainwindow.cpp new file mode 100644 index 0000000..2646346 --- /dev/null +++ b/tizen/src/ui/mainwindow.cpp @@ -0,0 +1,406 @@ +/* + * Qt UI + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * Hyunjin Lee + * SungMin Ha + * GiWoong Kim + * Sangho Park + * Stanislav Vorobiov + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#include "mainwindow.h" +#include "mainform.h" +#include "displayglwidget.h" +#include "displayswwidget.h" + +extern "C" { +int qt5_graphic_hw_display(void); +} + +QOpenGLContext *qt5GLContext = NULL; +QSurfaceFormat qt5GLFormat; + +DisplaySwapper::DisplaySwapper(QGLContext* context, QObject* parent) + : QObject(parent), context(context), terminating(false) +{ + /* do nothing */ +} + +void DisplaySwapper::display() +{ + /* + * TODO: Currently qt5 skin doesn't terminate properly, + * check this once proper termination is implemented. + */ + + if (context) { + while (!terminating) { + context->makeCurrent(); + if (qt5_graphic_hw_display()) { + context->swapBuffers(); + } + context->doneCurrent(); + } + } else { + while (!terminating) { + qt5_graphic_hw_display(); + } + } +} + +MainWindow::MainWindow(UIInformation *uiInfo, QWidget *parent) + : QWidget(parent) +{ + /* initialize */ + this->uiInfo = uiInfo; + this->popupMenu = NULL; + this->skinView = NULL; + this->display = NULL; + this->screenWidget = NULL; + + captureRequestHandler = NULL; + captureRequestData = NULL; + + /* windowing */ + setWindowTitle("Emulator"); + setWindowIcon(QIcon(QPixmap(":/icons/emulator_icon.ico"))); + + //setStyleSheet("background:transparent;"); + //setAttribute(Qt::WA_TranslucentBackground); + setWindowFlags(Qt::FramelessWindowHint); + + winLayout = new QHBoxLayout(this); + winLayout->setMargin(0); + winLayout->setSpacing(0); + + /* scene */ + skinScene = new QGraphicsScene(this); + skinScene->setBackgroundBrush(Qt::black); + + /* view */ + skinView = new SkinView(skinScene, this); + winLayout->addWidget(skinView); + + /* display */ + QGLContext *context = NULL; + if (qt5GLContext) { /* on-screen rendering */ + QGLContext *wrapperContext = QGLContext::fromOpenGLContext(qt5GLContext); + + /* + * Qt5 bug, wrapperContext->requestedFormat() doesn't return + * originating format, it returns actual format, this may result + * in wrong OpenGL context version here. + */ + + QGLFormat format = QGLFormat::fromSurfaceFormat(qt5GLFormat); + + /* + * Qt5 bug, format set here doesn't always have effect, must + * set it after QGLWidget is created. + */ + context = new QGLContext(format); + + display = new DisplayGLWidget(uiInfo->resolution, context, skinView); + + context->setFormat(format); + + context->create(wrapperContext); + } else { /* off-screen rendering */ + DisplaySWWidget *w = new DisplaySWWidget(uiInfo->resolution, skinView); + + display = w; + screenWidget = w; + } + + /* popup menu */ + popupMenu = new ContextMenu(this); + + setContextMenuPolicy(Qt::CustomContextMenu); + connect(this, SIGNAL(customContextMenuRequested(const QPoint&)), + SLOT(showContextMenu(const QPoint&))); + + /* swapper */ + swapperThread = new QThread(this); + + if (context) { + context->doneCurrent(); + context->moveToThread(swapperThread); + } + + swapper = new DisplaySwapper(context); + swapper->moveToThread(swapperThread); + connect(swapperThread, &QThread::finished, swapper, &QObject::deleteLater); + + swapperThread->start(); +} + +void MainWindow::startSwapper() +{ + QMetaObject::invokeMethod(swapper, "display", Qt::QueuedConnection); +} + +void MainWindow::terminateSwapper() +{ + swapper->setTerminating(); + qt5_graphic_hw_invalidate(); +} + +QLabel *MainWindow::getScreenWidget() +{ + return screenWidget; +} + +void MainWindow::showContextMenu(const QPoint& pos) +{ + QAction* selectedItem = 0; + popupMenu->popup(mapToGlobal(pos), selectedItem); + if (selectedItem) { + //qDebug("%s", selectedItem->text().toLocal8Bit().data()); + } else { + qDebug("do nothing"); + } +} + +UIState *MainWindow::getUIState() +{ + return &(uiInfo->uiState); +} + +DockingController *MainWindow::getDockingCon() +{ + return getUIState()->conState.dockingCon; +} + +FloatingController *MainWindow::getFloatingCon() +{ + return getUIState()->conState.floatingCon; +} + +void MainWindow::openController(int index, int dockPos) +{ + if (dockPos == (Qt::AlignRight | Qt::AlignCenter)) { + qDebug("open right-center docking controller %d", index); + } else if (dockPos == (Qt::AlignRight | Qt::AlignTop)) { + qDebug("open right-top docking controller %d", index); + } else if (dockPos == (Qt::AlignRight | Qt::AlignBottom)) { + qDebug("open right-bottom docking controller %d", index); + } else if (dockPos == -1) { + qDebug("open floating controller %d", index); + } else { + qDebug("invalid dock position : %d", dockPos); + dockPos = -1; + } + + closeController(); + + if (uiInfo->conFormList.count() <= index) { + qWarning("controller index out of range"); + return; + } + + ControllerForm *conForm = uiInfo->conFormList.at(index); + if (conForm == NULL) { + qWarning("controller is null"); + return; + } + + QAction *action = NULL; + if (popupMenu != NULL) { + action = (QAction *)popupMenu->getControllerMapper()->mapping(index); + } + + /* create */ + if (dockPos == -1) { + getUIState()->conState.floatingCon = + new FloatingController(conForm, action, this); + } else { + getUIState()->conState.dockingCon = + new DockingController(conForm, action, dockPos, this); + getUIState()->conState.recentlyDockPos = dockPos; + } + + /* update layout */ + getUIState()->conState.conFormIndex = index; + adjustSize(); + + /* arrange */ + if (dockPos == -1) { + if (getUIState()->conState.recentlyFloatPos == QPoint(-1, -1)) { + QPoint globalPos = mapToGlobal(QPoint(0, 0)); + getFloatingCon()->move(globalPos.x() + size().width(), globalPos.y()); + } else { + getFloatingCon()->move(getUIState()->conState.recentlyFloatPos); + getUIState()->conState.recentlyFloatPos = QPoint(-1, -1); + } + + getFloatingCon()->show(); + } else { + winLayout->addWidget(getDockingCon()); + } + + /* Some part of QGLWidget's surface might be lost on Windows when view changing. + * So, we need an additional updating for display. */ + display->update(); +} + +void MainWindow::closeController() +{ + if (getDockingCon() != NULL) { + qDebug("close docking controller"); + + getUIState()->conState.recentlyDockPos = -1; + winLayout->removeWidget(getDockingCon()); + getDockingCon()->close(); + + getUIState()->conState.dockingCon = NULL; + + adjustSize(); + } + + if (getFloatingCon() != NULL) { + qDebug("close floating controller"); + + getUIState()->conState.recentlyFloatPos = getFloatingCon()->pos(); + getFloatingCon()->close(); + + getUIState()->conState.floatingCon = NULL; + } + + /* Some part of QGLWidget's surface might be lost on Windows when view changing. + * So, we need an additional updating for display. */ + display->update(); +} + +void MainWindow::resizeEvent(QResizeEvent *event) +{ + qDebug("resize main window"); + + resize(uiInfo->getUiSize()); + + setRegion(); +} + +void MainWindow::setRegion() +{ + //qDebug("set region"); + + setMask(uiInfo->getUiRegion()); +} + +void MainWindow::rotate(int angle) +{ + qDebug("window rotate : %d", angle); + + getUIState()->mainFormAngle = angle; + + skinView->rotate(); + display->rotate(getUIState()->mainFormAngle); + + adjustSize(); +} + +void MainWindow::scale(int scale) +{ + qDebug("window scale : %d", scale); + + getUIState()->mainFormScale = scale; + + skinView->adjustSize(); + display->scale(getUIState()->mainFormScale); + + adjustSize(); +} + +void MainWindow::capture(void) +{ + qDebug("window screen capture: handler(%p), data(%p)", + captureRequestHandler, captureRequestData); + + if (captureRequestHandler && captureRequestData) { + captureRequestHandler(captureRequestData); + } +} + +void MainWindow::setCaptureRequestHandler(void *data, void (*handler)(void *)) +{ + captureRequestHandler = handler; + captureRequestData = data; +} + +void MainWindow::unsetCaptureRequestHandler(void *data) +{ + captureRequestHandler = NULL; + captureRequestData = NULL; +} + +void MainWindow::processCaptured(bool captured, void *pixels, + int width, int height) +{ + qDebug("window process captured: %d pixel: %p [%dx%d]", + captured, pixels, width, height); + + if (captured) { + QImage image = QImage((uchar *)pixels, width, height, QImage::Format_RGB32); + QPixmap pixmap = QPixmap::fromImage(image); /* deep copy the data */ + + QMetaObject::invokeMethod(popupMenu, "slotShowScreenshot", + Qt::QueuedConnection, + Q_ARG(QPixmap, pixmap)); + qDebug("Image saved: %p", pixels); + } else { + QPixmap pixmap(uiInfo->resolution.width(), uiInfo->resolution.height()); + QMetaObject::invokeMethod(popupMenu, "slotShowScreenshot", Qt::QueuedConnection, Q_ARG(QPixmap, pixmap)); + qDebug("Blank Image saved"); + } + +} + +void MainWindow::setTopMost(bool on) +{ + popupMenu->slotTopMost(on); +} + +MainWindow::~MainWindow() +{ + qDebug("destory main window"); + + swapperThread->quit(); + swapperThread->wait(); +} + +void MainWindow::closeEvent(QCloseEvent *event) +{ + int r = QMessageBox::warning(this, + "Emulator", + "Do you really want to quit this program?", + QMessageBox::Yes | QMessageBox::Default, + QMessageBox::No); + if (r == QMessageBox::Yes) { + /* force close */ + shutdown_qemu_gracefully(); + } else { + event->ignore(); + } +} diff --git a/tizen/src/ui/mainwindow.h b/tizen/src/ui/mainwindow.h new file mode 100644 index 0000000..6fa2563 --- /dev/null +++ b/tizen/src/ui/mainwindow.h @@ -0,0 +1,118 @@ +/* + * Qt UI + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * Hyunjin Lee + * SungMin Ha + * GiWoong Kim + * Sangho Park + * Stanislav Vorobiov + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#ifndef MAINWINDOW_H +#define MAINWINDOW_H + +#include +#include + +#include "menu/contextmenu.h" +#include "skinview.h" +#include "displaybase.h" +#include "skinbezelitem.h" +#include "uiinformation.h" +#include "dockingcontroller.h" +#include "floatingcontroller.h" + +extern "C" { +#include "skin/maruskin_operation.h" +} + +class DisplaySwapper : public QObject +{ + Q_OBJECT + +public: + DisplaySwapper(QGLContext* context, QObject* parent = 0); + + inline void setTerminating() { terminating = true; } + +public slots: + void display(); + +private: + QGLContext *context; + bool terminating; +}; + +class MainWindow : public QWidget +{ + Q_OBJECT + +public: + explicit MainWindow(UIInformation *uiInfo, QWidget *parent = 0); + ~MainWindow(); + + UIState *getUIState(void); + QLabel *getScreenWidget(); + void rotate(int angle); + void scale(int scale); + void capture(void); + void setCaptureRequestHandler(void *data, void (*handler)(void *)); + void unsetCaptureRequestHandler(void *data); + void processCaptured(bool captured, void *pixels, int width, int height); + void setTopMost(bool on); + DockingController *getDockingCon(); + FloatingController *getFloatingCon(); + void openController(int index, int dockPos); + void closeController(); + void startSwapper(); + void terminateSwapper(); + + UIInformation *uiInfo; + +public slots: + void showContextMenu(const QPoint& pos); + +protected: + void resizeEvent(QResizeEvent *event); + void closeEvent(QCloseEvent *); + + void setRegion(); + QLabel *screenWidget; + +private: + /* windowing */ + QHBoxLayout *winLayout; + QGraphicsScene *skinScene; + SkinView* skinView; + DisplayBase *display; + ContextMenu *popupMenu; + QThread *swapperThread; + DisplaySwapper *swapper; + + void (*captureRequestHandler)(void *data); + void *captureRequestData; +}; + +#endif // MAINWINDOW_H diff --git a/tizen/src/ui/menu/Makefile.objs b/tizen/src/ui/menu/Makefile.objs new file mode 100644 index 0000000..7e5454e --- /dev/null +++ b/tizen/src/ui/menu/Makefile.objs @@ -0,0 +1,18 @@ +obj-$(CONFIG_QT) += aboutdialog.o moc_aboutdialog.o +obj-$(CONFIG_QT) += screenshot.o moc_screenshot.o +obj-$(CONFIG_QT) += detailedinfodialog.o moc_detailedinfodialog.o +obj-$(CONFIG_QT) += contextmenu.o moc_contextmenu.o +obj-$(CONFIG_QT) += screenshotview.o + +$(obj)/moc_aboutdialog.o: $(obj)/moc_aboutdialog.cpp +$(obj)/moc_aboutdialog.cpp: $(obj)/aboutdialog.h + moc $< -o $@ +$(obj)/moc_detailedinfodialog.o: $(obj)/moc_detailedinfodialog.cpp +$(obj)/moc_detailedinfodialog.cpp: $(obj)/detailedinfodialog.h + moc $< -o $@ +$(obj)/moc_contextmenu.o: $(obj)/moc_contextmenu.cpp +$(obj)/moc_contextmenu.cpp: $(obj)/contextmenu.h + moc $< -o $@ +$(obj)/moc_screenshot.o: $(obj)/moc_screenshot.cpp +$(obj)/moc_screenshot.cpp: $(obj)/screenshot.h + moc $< -o $@ diff --git a/tizen/src/ui/menu/aboutdialog.cpp b/tizen/src/ui/menu/aboutdialog.cpp new file mode 100644 index 0000000..14f5d16 --- /dev/null +++ b/tizen/src/ui/menu/aboutdialog.cpp @@ -0,0 +1,120 @@ +/* + * Qt UI + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim + * Sangho Park + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#include "aboutdialog.h" +#include "build_info.h" + +#define SDK_NAME "Tizen SDK" +#define URL_TIZEN_ORG "https://developer.tizen.org"; + +AboutDialog::AboutDialog(QWidget *parent) : + QDialog(parent, Qt::WindowTitleHint | Qt::WindowCloseButtonHint) +{ + setWindowTitle("About Emulator"); + + QVBoxLayout *baseLayout = new QVBoxLayout(this); + baseLayout->setMargin(0); + baseLayout->setSpacing(5); + + /* upside */ + QHBoxLayout *upsideLayout = new QHBoxLayout(); + upsideLayout->setMargin(0); + upsideLayout->setSpacing(0); + + QLabel *imageLabel = new QLabel(this); + imageLabel->setPixmap(QPixmap(":about.png")); + upsideLayout->addWidget(imageLabel); + + QSettings sdkVersion("../../../sdk.version", QSettings::IniFormat); + QString version = sdkVersion.value("TIZEN_SDK_VERSION").toString(); + if (version.isEmpty() == true) { + qWarning("failed to load SDK version"); + version = "Undefined"; + } + + QString SnapshotName = "Undefined"; + QFile file("../../../install-manager/installmanager.conf"); + if (file.open(QIODevice::ReadOnly | QIODevice::Text) == true) { + QTextStream in(&file); + while (!in.atEnd()) { + QString line = in.readLine(); + if (line.startsWith("Snapshot-Path", Qt::CaseInsensitive) == true) { + QStringList snapshotPath = line.split(":", QString::SkipEmptyParts)[1].split("/"); + SnapshotName = snapshotPath.last().trimmed(); + qDebug() << "Snapshot Name :" << SnapshotName; + } + } + + file.close(); + } else { + qWarning("failed to load snapshot name"); + } + + QString aboutText = QString(SDK_NAME) + "

" + + "Version : " + version + "
" + + "Snapshot : " + SnapshotName + "
" + + "Build Date : " + QString(build_date) + "


" + + "Visit " + URL_TIZEN_ORG; + + QLabel *textLabel = new QLabel(this); + textLabel->setStyleSheet("background-color: white"); + textLabel->setTextFormat(Qt::RichText); + //textLabel->setTextInteractionFlags(Qt::TextSelectableByMouse); + textLabel->setOpenExternalLinks(true); + textLabel->setMargin(10); + textLabel->setText(aboutText); + upsideLayout->addWidget(textLabel); + + baseLayout->addLayout(upsideLayout); + + /* downside */ + QHBoxLayout *downsideLayout = new QHBoxLayout(); + downsideLayout->setAlignment(Qt::AlignRight); + downsideLayout->setMargin(10); + + QPushButton *okBtn = new QPushButton("OK", this); + connect(okBtn, SIGNAL(clicked()), this, SLOT(close())); + downsideLayout->addWidget(okBtn); + + baseLayout->addLayout(downsideLayout); +} + +void AboutDialog::showEvent(QShowEvent *event) +{ + Q_UNUSED(event) + + QWidget *win = ((QWidget *)this->parent()); + move(win->geometry().center().x() - (geometry().size().width() / 2), + win->geometry().center().y() - (geometry().size().height() / 2)); +} + +AboutDialog::~AboutDialog() +{ + qDebug("destroy about dialog"); +} diff --git a/tizen/src/ui/menu/aboutdialog.h b/tizen/src/ui/menu/aboutdialog.h new file mode 100644 index 0000000..f81c96d --- /dev/null +++ b/tizen/src/ui/menu/aboutdialog.h @@ -0,0 +1,47 @@ +/* + * Qt UI + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim + * Sangho Park + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#ifndef ABOUTDIALOG_H +#define ABOUTDIALOG_H + +#include + +class AboutDialog : public QDialog +{ + Q_OBJECT + +public: + explicit AboutDialog(QWidget *parent = 0); + ~AboutDialog(); + +protected: + void showEvent(QShowEvent *event); +}; + +#endif // ABOUTDIALOG_H diff --git a/tizen/src/ui/menu/contextmenu.cpp b/tizen/src/ui/menu/contextmenu.cpp new file mode 100644 index 0000000..85f4002 --- /dev/null +++ b/tizen/src/ui/menu/contextmenu.cpp @@ -0,0 +1,663 @@ +/* + * Qt UI + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * SungMin Ha + * GiWoong Kim + * Sangho Park + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#include + +#include "contextmenu.h" +#include "mainwindow.h" + +#ifdef CONFIG_WIN32 +#include +#elif defined (CONFIG_LINUX) +#include +#include +#endif + +ContextMenu::ContextMenu(QWidget *parent) : QMenu(parent) +{ + this->parent = (MainWindow *)parent; + this->infoDialog = NULL; + this->aboutDialog = NULL; + this->screenshotDialog = NULL; + this->vmName = ((MainWindow *)parent)->uiInfo->vmName + " : " + + QString::number(get_device_serial_number()); + + actionDetailedInfo = NULL; + actionTopMost = NULL; + actionShell = NULL; + actionControlPanel = NULL; + actionAbout = NULL; + actionForceClose = NULL; + actionClose = NULL; + + longPressTimer = new QTimer(this); + + createItems(); + + installEventFilter(this); +} + +void ContextMenu::createItems() { + MainWindow *win = parent; + QAction *action = NULL; + + /* Detailed Info menu */ + actionDetailedInfo = addAction(vmName); + actionDetailedInfo->setIcon(QIcon(QPixmap(":/icons/detailed_info.png"))); + connect(actionDetailedInfo, SIGNAL(triggered()), this, SLOT(slotDetailedInfo())); + + addSeparator(); + + /* Always On Top menu */ + actionTopMost = addAction("&Always on Top"); + actionTopMost->setCheckable(true); + connect(actionTopMost, SIGNAL(triggered(bool)), this, SLOT(slotTopMost(bool))); + + /* = Rotate menu = */ + if (win->uiInfo->mainFormList.count() > 1) { + QMenu *rotateMenu = addMenu(QIcon(QPixmap(":/icons/rotate.png")), "&Rotate"); + QActionGroup *rotateGroup = new QActionGroup(this); + rotateMapper = new QSignalMapper(this); + connect(rotateMapper, SIGNAL(mapped(int)), this, SLOT(slotRotate(int))); + + action = rotateMenu->addAction("Portrait"); + action->setActionGroup(rotateGroup); + action->setCheckable(true); + rotateMapper->setMapping(action, 0); + connect(action, SIGNAL(triggered()), rotateMapper, SLOT(map())); + + action = rotateMenu->addAction("Landscape"); + action->setActionGroup(rotateGroup); + action->setCheckable(true); + rotateMapper->setMapping(action, 270); + connect(action, SIGNAL(triggered()), rotateMapper, SLOT(map())); + + action = rotateMenu->addAction("Reverse Portrait"); + action->setActionGroup(rotateGroup); + action->setCheckable(true); + rotateMapper->setMapping(action, 180); + connect(action, SIGNAL(triggered()), rotateMapper, SLOT(map())); + + action = rotateMenu->addAction("Reverse Landscape"); + action->setActionGroup(rotateGroup); + action->setCheckable(true); + rotateMapper->setMapping(action, 90); + connect(action, SIGNAL(triggered()), rotateMapper, SLOT(map())); + + action = (QAction *)rotateMapper->mapping(win->getUIState()->mainFormAngle); + action->setChecked(true); + } + /* =============== */ + + /* = Scale menu = */ + QMenu *scaleMenu = addMenu(QIcon(QPixmap(":/icons/scale.png")), "&Scale"); + QActionGroup *scaleGroup = new QActionGroup(this); + scaleMapper = new QSignalMapper(this); + connect(scaleMapper, SIGNAL(mapped(int)), this, SLOT(slotScale(int))); + + action = scaleMenu->addAction("1x"); + action->setActionGroup(scaleGroup); + action->setCheckable(true); + scaleMapper->setMapping(action, 100); + connect(action, SIGNAL(triggered()), scaleMapper, SLOT(map())); + + action = scaleMenu->addAction("3/4x"); + action->setActionGroup(scaleGroup); + action->setCheckable(true); + scaleMapper->setMapping(action, 75); + connect(action, SIGNAL(triggered()), scaleMapper, SLOT(map())); + + action = scaleMenu->addAction("1/2x"); + action->setActionGroup(scaleGroup); + action->setCheckable(true); + scaleMapper->setMapping(action, 50); + connect(action, SIGNAL(triggered()), scaleMapper, SLOT(map())); + + action = scaleMenu->addAction("1/4x"); + action->setActionGroup(scaleGroup); + action->setCheckable(true); + scaleMapper->setMapping(action, 25); + connect(action, SIGNAL(triggered()), scaleMapper, SLOT(map())); + + // TODO: interpolation + + action = (QAction *)scaleMapper->mapping(win->getUIState()->mainFormScale); + action->setChecked(true); + /* ============== */ + + /* = Controller menu = */ + QMenu *controllerMenu = NULL; + if (win->uiInfo->conFormList.isEmpty() == false) { + controllerMenu = addMenu("Controller"); + QActionGroup *controllerGroup = new QActionGroup(this); + controllerMapper = new QSignalMapper(this); + connect(controllerMapper, SIGNAL(mapped(int)), this, SLOT(slotController(int))); + + action = controllerMenu->addAction("None"); + action->setActionGroup(controllerGroup); + action->setCheckable(true); + action->setChecked(true); + connect(action, SIGNAL(triggered()), this, SLOT(slotCloseCon())); + + for (int i = 0; i < win->uiInfo->conFormList.count(); i++) { + action = controllerMenu->addAction(win->uiInfo->conFormList.at(i)->name); + action->setActionGroup(controllerGroup); + action->setCheckable(true); + controllerMapper->setMapping(action, i); + connect(action, SIGNAL(triggered()), controllerMapper, SLOT(map())); + } + } + + addSeparator(); + + /* = Advanced menu = */ + QMenu *advancedMenu = addMenu(QIcon(QPixmap(":/icons/advanced.png")), "Ad&vanced"); + + /* Advanced > Screen Shot menu */ + action = advancedMenu->addAction("Screen Shot"); + action->setIcon(QIcon(QPixmap(":/icons/screen_shot.png"))); + connect(action, SIGNAL(triggered()), this, SLOT(slotRequestScreenshot())); + + /* = Host Keyboard menu = */ + QMenu *keyboardMenu = advancedMenu->addMenu( + QIcon(QPixmap(":/icons/host_keyboard.png")), "&Host Keyboard"); + QActionGroup *keyboardGroup = new QActionGroup(this); + + action = keyboardMenu->addAction("On"); + action->setActionGroup(keyboardGroup); + action->setCheckable(true); + connect(action, SIGNAL(toggled(bool)), this, SLOT(slotHostKeyboard(bool))); + + action = keyboardMenu->addAction("Off"); + action->setActionGroup(keyboardGroup); + action->setCheckable(true); + action->setChecked(true); + + advancedMenu->addSeparator(); + + /* Advanced > About menu */ + actionAbout = advancedMenu->addAction("&About"); + actionAbout->setIcon(QIcon(QPixmap(":/icons/about.png"))); + connect(actionAbout, SIGNAL(triggered()), this, SLOT(slotAbout())); + + /* Advanced > Force Close menu */ + actionForceClose = advancedMenu->addAction("&Force Close"); + actionForceClose->setIcon(QIcon(QPixmap(":/icons/force_close.png"))); + connect(actionForceClose, SIGNAL(triggered()), this, SLOT(slotForceClose())); + /* ================= */ + + /* Shell menu */ + actionShell = addAction("S&hell"); + actionShell->setIcon(QIcon(QPixmap(":/icons/shell.png"))); + connect(actionShell, SIGNAL(triggered()), this, SLOT(slotShell())); + + /* Control Panel menu */ + actionControlPanel = addAction("Control &Panel"); + actionControlPanel->setIcon(QIcon(QPixmap(":/icons/control_panel.png"))); + connect(actionControlPanel, SIGNAL(triggered()), this, SLOT(slotControlPanel())); + + addSeparator(); + + /* Close menu */ + actionClose = addAction("&Close"); + actionClose->setIcon(QIcon(QPixmap(":/icons/close.png"))); + connect(actionClose, SIGNAL(triggered()), this, SLOT(slotClose())); +} + +bool ContextMenu::eventFilter(QObject *obj, QEvent *event) +{ + ContextMenu *menu = dynamic_cast(obj); + + if (menu != NULL && + (event->type() == QEvent::MouseButtonPress || + event->type() == QEvent::MouseButtonRelease)) { + QMouseEvent *mouseEvent = dynamic_cast(event); + + if (mouseEvent != NULL && mouseEvent->button() == Qt::RightButton) { + mouseEvent->ignore(); /* filtering */ + return true; + } + } + + return QObject::eventFilter(obj, event); +} + +void ContextMenu::slotDetailedInfo() +{ + qDebug("VM info"); + + if (infoDialog == NULL) { + infoDialog = new DetailedInfoDialog((QWidget *)parent); + } + + infoDialog->show(); +} + +void ContextMenu::slotTopMost(bool on) +{ + qDebug("stays on top : %s", on? "on" : "off"); + +#ifdef CONFIG_WIN32 + HWND hWnd = (HWND)parent->winId(); + HWND hWndInsertAfter = ((on == true) ? HWND_TOPMOST : HWND_NOTOPMOST); + SetWindowPos(hWnd, hWndInsertAfter, parent->pos().x(), parent->pos().y(), 0, 0, SWP_NOSIZE); +#elif defined(CONFIG_LINUX) + Display* display = XOpenDisplay(NULL); + if (display == NULL) { + qDebug("Error: XOpenDisplay() Failed. Always on top failed."); + return; + } + + XClientMessageEvent event; + memset(&event, 0, sizeof(event)); + event.type = ClientMessage; + event.window = parent->winId(); + event.message_type = XInternAtom(display, "_NET_WM_STATE", False); + event.format = 32; + event.data.l[0] = on ? 1 : 0; /* 1:_NET_WM_STATE_ADD, 0:_NET_WM_STATE_REMOVE */ + event.data.l[1] = XInternAtom(display, "_NET_WM_STATE_ABOVE", False); + event.data.l[2] = 0; /* unused */ + event.data.l[3] = 0; + event.data.l[4] = 0; + + XSendEvent(display, DefaultRootWindow(display), False, + SubstructureRedirectMask | SubstructureNotifyMask, (XEvent *)&event); + XFlush(display); + + XCloseDisplay(display); +#elif defined(CONFIG_DARWIN) + if (on == true) { + parent->setWindowFlags(parent->windowFlags() | Qt::WindowStaysOnTopHint); + } else { + parent->setWindowFlags(parent->windowFlags() & ~(Qt::WindowStaysOnTopHint)); + } + + parent->show(); +#endif + + actionTopMost->setChecked(on); + parent->getUIState()->setOnTop(on); +} + +void ContextMenu::slotRotate(int angle) +{ + qDebug("rotate : %d", angle); + + parent->rotate(angle); +} + +void ContextMenu::slotScale(int scale) +{ + qDebug("scale : %d", scale); + + parent->scale(scale); +} + +void ContextMenu::slotController(int index) +{ + qDebug("controller : %d", index); + + parent->openController(index, + parent->getUIState()->conState.recentlyDockPos); +} + +void ContextMenu::slotCloseCon() +{ + qDebug("controller : None"); + + parent->closeController(); + parent->getUIState()->conState.conFormIndex = -1; +} + +void ContextMenu::slotShell() +{ + qDebug("SDB shell"); + + if (is_sdbd_initialized == 0) { + QString msg = "SDB is not ready.\nPlease wait until the emulator is completely boot up."; + qDebug() << msg; + + QMessageBox *msgBox = new QMessageBox(QMessageBox::Information, + "Emulator", msg, QMessageBox::Ok, (QWidget*)parent); + msgBox->setAttribute(Qt::WA_DeleteOnClose); + msgBox->setModal(false); + msgBox->show(); + + return; + } + + QString sdbPort = QString::number(get_device_serial_number()); + QString sdbSerialName = "emulator-" + sdbPort; + + QString sdbPath = QCoreApplication::applicationDirPath(); +#ifdef CONFIG_WIN32 + sdbPath += "\\..\\..\\ansicon.exe"; +#else + sdbPath += "/../../sdb"; +#endif + + QFileInfo sdbFileInfo(sdbPath); + if (sdbFileInfo.exists() == false) { + QString msg = "SDB file does not exist in the following path.\n" + + sdbFileInfo.absoluteFilePath(); + qWarning() << msg; + + QMessageBox *msgBox = new QMessageBox(QMessageBox::Warning, + "Emulator", msg, QMessageBox::Ok, (QWidget*)parent); + msgBox->setAttribute(Qt::WA_DeleteOnClose); + msgBox->setModal(false); + msgBox->show(); + + return; + } + + QString command; + QStringList arguments; + +#ifdef CONFIG_WIN32 + command = "cmd.exe"; + arguments << "/c" << "start" << sdbPath << "sdb" << "-s" << sdbSerialName << "shell"; +#elif defined CONFIG_DARWIN + command = QCoreApplication::applicationDirPath() + "/sdbscript"; + arguments << sdbSerialName; +#else + command = "/usr/bin/gnome-terminal"; + QString title = "--title=" + vmName; + arguments << title << "-x" << sdbPath << "-s" << sdbSerialName << "shell"; +#endif + + qDebug() << command << arguments; + + try { + QProcess::startDetached(command, arguments); + } catch (QString error) { + QString msg = "Failed to open Shell : " + error; + qDebug() << msg; + + QMessageBox *msgBox = new QMessageBox(QMessageBox::Warning, + "Emulator", msg, QMessageBox::Ok ,(QWidget*)parent); + msgBox->setAttribute(Qt::WA_DeleteOnClose); + msgBox->setModal(false); + msgBox->show(); + + return; + } +} + +#ifdef CONFIG_WIN32 +#define JAVA_MAX_COMMAND_LENGTH 1024 +#define MY_KEY_WOW64_64KEY 0x0100 + +typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL); +LPFN_ISWOW64PROCESS menu_fnIsWow64Process; + +static int menu_is_wow64(void) +{ + int result = 0; + + /* IsWow64Process is not available on all supported versions of Windows. + Use GetModuleHandle to get a handle to the DLL that contains the function + and GetProcAddress to get a pointer to the function if available. */ + + menu_fnIsWow64Process = (LPFN_ISWOW64PROCESS) GetProcAddress( + GetModuleHandle(TEXT("kernel32")),"IsWow64Process"); + + if (NULL != menu_fnIsWow64Process) { + if (!menu_fnIsWow64Process(GetCurrentProcess(),&result)) { + // handle error + //fprintf(stderr, "Cannot find 'IsWow64Process'\n"); + } + } + return result; +} + +static bool menu_get_java_path(char** java_path) +{ + HKEY hKeyNew; + HKEY hKey; + //char strJavaRuntimePath[JAVA_MAX_COMMAND_LENGTH] = {0}; + char strChoosenName[JAVA_MAX_COMMAND_LENGTH] = {0}; + char strSubKeyName[JAVA_MAX_COMMAND_LENGTH] = {0}; + char strJavaHome[JAVA_MAX_COMMAND_LENGTH] = {0}; + int index; + DWORD dwSubKeyNameMax = JAVA_MAX_COMMAND_LENGTH; + DWORD dwBufLen = JAVA_MAX_COMMAND_LENGTH; + + RegOpenKeyEx(HKEY_LOCAL_MACHINE, + "SOFTWARE\\JavaSoft\\Java Runtime Environment", + 0, + KEY_QUERY_VALUE | KEY_ENUMERATE_SUB_KEYS | MY_KEY_WOW64_64KEY, + &hKey); + RegEnumKeyEx(hKey, 0, (LPSTR)strSubKeyName, &dwSubKeyNameMax, + NULL, NULL, NULL, NULL); + strcpy(strChoosenName, strSubKeyName); + + index = 1; + while (ERROR_SUCCESS == + RegEnumKeyEx(hKey, index, (LPSTR)strSubKeyName, &dwSubKeyNameMax, + NULL, NULL, NULL, NULL)) { + if (strcmp(strChoosenName, strSubKeyName) < 0) { + strcpy(strChoosenName, strSubKeyName); + } + index++; + } + + RegOpenKeyEx(hKey, strChoosenName, 0, + KEY_QUERY_VALUE | MY_KEY_WOW64_64KEY, &hKeyNew); + RegQueryValueEx(hKeyNew, "JavaHome", NULL, + NULL, (LPBYTE)strJavaHome, &dwBufLen); + RegCloseKey(hKey); + + if (strJavaHome[0] != '\0') { + sprintf(*java_path, "%s\\bin\\javaw.exe", strJavaHome); + } else { + return false; + } + + return true; +} +#endif + +void ContextMenu::showPopup(QString msg) +{ + qDebug() << msg; + + QMessageBox *msgBox = new QMessageBox(QMessageBox::Warning, + "Emulator", msg, QMessageBox::Ok, (QWidget*)parent); + msgBox->setAttribute(Qt::WA_DeleteOnClose); + msgBox->setModal(false); + msgBox->show(); +} + +void ContextMenu::slotControlPanel() +{ + qDebug("Control Panel"); + + MainWindow *win = (MainWindow *)parent; + QString basePortOpt = "base.port=" + QString::number(win->uiInfo->basePort); + QString vmNameOpt = "vmname=" + win->uiInfo->vmName; + + QString ecpPath = QCoreApplication::applicationDirPath(); +#ifdef CONFIG_WIN32 + ecpPath += "\\emulator-control-panel.jar"; +#else + ecpPath += "/emulator-control-panel.jar"; +#endif + + QFileInfo ecpFileInfo(ecpPath); + if (!ecpFileInfo.exists()) { + showPopup("Control Panel file does not exist in the following path.\n" + + ecpFileInfo.absoluteFilePath()); + return; + } + + QString command; + QStringList arguments; +#ifdef CONFIG_WIN32 + char* path = (char*)malloc(JAVA_MAX_COMMAND_LENGTH); + memset(path, 0, sizeof(char) * JAVA_MAX_COMMAND_LENGTH); + + if (menu_is_wow64()) { + arguments << "-d64"; + + if (menu_get_java_path(&path)) { + command = QString::fromLocal8Bit(path); + } else { + showPopup("Failed to get java path."); + free(path); + return; + } + } else { + command = "javaw.exe"; + } + free(path); +#else + command = "java"; +#endif + +#ifdef CONFIG_DARWIN + /* SWT Display must be created on main thread due to Cocoa restrictions */ + arguments << "-XstartOnFirstThread"; +#endif + arguments << "-jar" << ecpPath << vmNameOpt << basePortOpt; + + qDebug() << command << arguments; + + try { + QProcess::startDetached(command, arguments); + } catch (QString error) { + showPopup("Failed to open Control Panel : " + error); + return; + } +} + +void ContextMenu::slotRequestScreenshot() +{ + qDebug("request screenshot"); + + parent->capture(); +} + +void ContextMenu::slotShowScreenshot(const QPixmap &screenshot) +{ + qDebug("show screenshot"); + + if (screenshotDialog == NULL) { + screenshotDialog = new Screenshot(this, screenshot); + } + + screenshotDialog->refresh(screenshot); + screenshotDialog->show(); +} + +void ContextMenu::slotHostKeyboard(bool on) +{ + qDebug("host keyboard : %s", on? "on" : "off"); + + do_host_kbd_enable(on); +} + +void ContextMenu::slotAbout() +{ + qDebug("about"); + + if (aboutDialog == NULL) { + aboutDialog = new AboutDialog((QWidget *)parent); + } + + aboutDialog->show(); +} + +void ContextMenu::slotForceClose() +{ + qDebug("force close"); + + QMessageBox *msg = new QMessageBox((QWidget*)parent); + msg->setAttribute(Qt::WA_DeleteOnClose); + msg->setWindowTitle("Emulator"); + msg->setText("If you force stop an emulator, it may cause some problems.\n" + "Are you sure you want to continue?"); + msg->setStandardButtons(QMessageBox::Yes|QMessageBox::No); + msg->setDefaultButton(QMessageBox::Yes); + msg->setIcon(QMessageBox::Question); + msg->setModal(false); + msg->show(); + connect(msg, SIGNAL(buttonClicked(QAbstractButton *)), + this, SLOT(slotForceCloseSelected(QAbstractButton *))); +} + +void ContextMenu::slotForceCloseSelected(QAbstractButton *btn) +{ + if (btn->text().compare("&Yes") == 0) { + qDebug() << "exit!"; + /* force close */ + shutdown_qemu_gracefully(); + } else { + qDebug() << "cancel"; + } +} + +void ContextMenu::slotPwkeyRelease() +{ + do_hw_key_event(KEY_RELEASED, HARD_KEY_POWER); +} + +void ContextMenu::slotClose() +{ + qDebug("close"); + do_hw_key_event(KEY_PRESSED, HARD_KEY_POWER); + + longPressTimer->setInterval(CLOSE_POWER_KEY_INTERVAL); + longPressTimer->setSingleShot(true); + connect(longPressTimer, SIGNAL(timeout()), this, SLOT(slotPwkeyRelease())); + longPressTimer->start(); +} + +QSignalMapper *ContextMenu::getRotateMapper() +{ + return rotateMapper; +} + +QSignalMapper *ContextMenu::getScaleMapper() +{ + return scaleMapper; +} + +QSignalMapper *ContextMenu::getControllerMapper() +{ + return controllerMapper; +} + +ContextMenu::~ContextMenu() +{ + qDebug("destroy menu"); + + longPressTimer->stop(); +} diff --git a/tizen/src/ui/menu/contextmenu.h b/tizen/src/ui/menu/contextmenu.h new file mode 100644 index 0000000..33a2b1d --- /dev/null +++ b/tizen/src/ui/menu/contextmenu.h @@ -0,0 +1,109 @@ +/* + * Qt UI + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * SungMin Ha + * GiWoong Kim + * Sangho Park + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#ifndef CONTEXTMENU_H +#define CONTEXTMENU_H + +#include + +#include "detailedinfodialog.h" +#include "aboutdialog.h" +#include "screenshot.h" + +class MainWindow; + +extern "C" { +#include "skin/maruskin_operation.h" +#include "skin/maruskin_server.h" +#include "emul_state.h" +} + +#define CLOSE_POWER_KEY_INTERVAL 1200 /* milli-seconds */ + +class ContextMenu : public QMenu +{ + Q_OBJECT + +public: + explicit ContextMenu(QWidget *parent = 0); + ~ContextMenu(); + + QSignalMapper *getRotateMapper(); + QSignalMapper *getScaleMapper(); + QSignalMapper *getControllerMapper(); + Screenshot *screenshotDialog; + +signals: + +public slots: + void slotDetailedInfo(); + void slotTopMost(bool on); + void slotRotate(int angle); + void slotScale(int scale); + void slotController(int index); + void slotCloseCon(); + void slotShell(); + void slotControlPanel(); + void slotRequestScreenshot(); + void slotShowScreenshot(const QPixmap &); + void slotHostKeyboard(bool on); + void slotAbout(); + void slotForceClose(); + void slotForceCloseSelected(QAbstractButton *); + void slotClose(); + void slotPwkeyRelease(); + +protected: + void createItems(); + bool eventFilter(QObject *obj, QEvent *event); + +private: + MainWindow *parent; + + QString vmName; + DetailedInfoDialog *infoDialog; + AboutDialog *aboutDialog; + QTimer *longPressTimer; + + QSignalMapper *rotateMapper; + QSignalMapper *scaleMapper; + QSignalMapper *controllerMapper; + + QAction *actionDetailedInfo; + QAction *actionTopMost; + QAction *actionShell; + QAction *actionControlPanel; + QAction *actionAbout; + QAction *actionForceClose; + QAction *actionClose; + + void showPopup(QString msg); +}; +#endif // CONTEXTMENU_H diff --git a/tizen/src/ui/menu/detailedinfodialog.cpp b/tizen/src/ui/menu/detailedinfodialog.cpp new file mode 100644 index 0000000..1650546 --- /dev/null +++ b/tizen/src/ui/menu/detailedinfodialog.cpp @@ -0,0 +1,241 @@ +/* + * Qt UI + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim + * Sangho Park + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#include "detailedinfodialog.h" +#include "mainwindow.h" + +extern int _qemu_argc; +extern char **_qemu_argv; + +extern char tizen_target_img_path[]; //TODO: not legacy + +DetailedInfoDialog::DetailedInfoDialog(QWidget *parent) : + QDialog(parent, Qt::WindowTitleHint | Qt::WindowCloseButtonHint) +{ + QStringList imagePathList = getImagePathList(); + MainWindow *win = ((MainWindow *)parent); + + setWindowTitle("Detailed Info"); + + baseLayout = new QVBoxLayout(this); + baseLayout->setMargin(10); + baseLayout->setSpacing(10); + + /* upside */ + upsideLayout = new QHBoxLayout(this); + upsideLayout->setMargin(0); + upsideLayout->setSpacing(0); + + /* VM information table */ + infoTable = new QTableWidget(this); + infoTable->setRowCount(11); + infoTable->setColumnCount(2); + infoTable->setEditTriggers(QAbstractItemView::NoEditTriggers); + infoTable->setAlternatingRowColors(true); + + infoTable->verticalHeader()->hide(); + infoTable->resizeRowsToContents(); + infoTable->horizontalHeader()->setStretchLastSection(true); + infoTable->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); + + QStringList header; + header << "Feature" << "Value"; + infoTable->setHorizontalHeaderLabels(header); + + /* table items */ + int index = 0; + item = new QTableWidgetItem("VM Name"); + infoTable->setItem(index, 0, item); + item = new QTableWidgetItem(win->uiInfo->vmName); + infoTable->setItem(index++, 1, item); + + item = new QTableWidgetItem("Skin Name"); + infoTable->setItem(index, 0, item); + item = new QTableWidgetItem(win->uiInfo->skinName); + infoTable->setItem(index++, 1, item); + + item = new QTableWidgetItem("CPU"); + infoTable->setItem(index, 0, item); + item = new QTableWidgetItem("x86"); + infoTable->setItem(index++, 1, item); + + item = new QTableWidgetItem("Ram Size"); + infoTable->setItem(index, 0, item); + item = new QTableWidgetItem(QString(get_emul_ram_size()) + " MB"); + infoTable->setItem(index++, 1, item); + + item = new QTableWidgetItem("Display Resolution"); + infoTable->setItem(index, 0, item); + item = new QTableWidgetItem(QString::number(win->uiInfo->resolution.width()) + + "x" + QString::number(win->uiInfo->resolution.height())); + infoTable->setItem(index++, 1, item); + +#if 0 + item = new QTableWidgetItem("Display Density"); + infoTable->setItem(index, 0, item); + item = new QTableWidgetItem("0"); // TODO: + infoTable->setItem(index++, 1, item); +#endif + + item = new QTableWidgetItem("File Sharing Path"); + infoTable->setItem(index, 0, item); + QString sharingPath(get_emul_file_sharing_path()); + item = new QTableWidgetItem((sharingPath.isEmpty()) ? "None" : sharingPath); + infoTable->setItem(index++, 1, item); + + item = new QTableWidgetItem("CPU Virtualization"); + infoTable->setItem(index, 0, item); + item = new QTableWidgetItem((get_emul_cpu_accel()) ? "Enabled" : "Disabled"); + infoTable->setItem(index++, 1, item); + + item = new QTableWidgetItem("GPU Virtualization"); + infoTable->setItem(index, 0, item); + item = new QTableWidgetItem((get_emul_gpu_accel()) ? "Enabled" : "Disabled"); + infoTable->setItem(index++, 1, item); + + for (int i = 0; i < imagePathList.size(); i++) { + item = new QTableWidgetItem("Image Path " + QString::number(i + 1)); + infoTable->setItem(index, 0, item); + item = new QTableWidgetItem(imagePathList[i]); + item->setToolTip(imagePathList[i]); + infoTable->setItem(index++, 1, item); + } + item = new QTableWidgetItem("Log Path"); + infoTable->setItem(index, 0, item); + item = new QTableWidgetItem(get_log_path()); + item->setToolTip(get_log_path()); + infoTable->setItem(index++, 1, item); + + /* temp */ + item = new QTableWidgetItem("Logging Telnet Port"); + infoTable->setItem(index, 0, item); + item = new QTableWidgetItem(QString::number(get_emul_serial_port())); + infoTable->setItem(index++, 1, item); + + /* add double click event listener */ + connect(infoTable, SIGNAL(cellDoubleClicked(int, int)), this, SLOT(slotDoubleClicked(int, int))); + + int tableHeight = infoTable->horizontalHeader()->height(); + for (int i = 0; i < infoTable->rowCount(); i++) { + tableHeight += infoTable->rowHeight(i); + } + infoTable->setMinimumWidth(200); + infoTable->setMinimumHeight(tableHeight + 2/*border*/); + upsideLayout->addWidget(infoTable); + + baseLayout->addLayout(upsideLayout); + + /* downside */ + downsideLayout = new QHBoxLayout(this); + downsideLayout->setAlignment(Qt::AlignRight); + downsideLayout->setMargin(0); + + okBtn = new QPushButton("OK", this); + connect(okBtn, SIGNAL(clicked()), this, SLOT(close())); + downsideLayout->addWidget(okBtn); + + baseLayout->addLayout(downsideLayout); +} + +QStringList DetailedInfoDialog::getImagePathList() +{ + QStringList imagePathList; + for (int i = 0; i <_qemu_argc; i++) { + if (QString(_qemu_argv[i]).compare("-drive") == 0) { + i += 1; + QStringList splitString = QString(_qemu_argv[i]).split(","); + QStringList splitString2 = splitString[0].split("="); + QString drivePath = splitString2[splitString2.length() -1]; + imagePathList << drivePath; + } + } + qDebug() << imagePathList; + return imagePathList; +} + +void DetailedInfoDialog::slotDoubleClicked(int nRow, int nCol) +{ + QTableWidgetItem *item; + QString string; + + /* Feature side double click event is occured, ignore it */ + if (nCol == 0) + return; + + item = infoTable->item(nRow, 0); + if (item->text().compare("File Sharing Path", Qt::CaseInsensitive) == 0 || + item->text().compare("Image Path", Qt::CaseInsensitive) == 0 || + item->text().compare("Log Path", Qt::CaseInsensitive) == 0) { + /* get path name */ + item = infoTable->item(nRow, nCol); + if (item->text().compare("None", Qt::CaseInsensitive) == 0 || + item->text().compare("", Qt::CaseInsensitive) == 0) { + /* ignore this event */ + return; + } + } else { + /* ignore this event */ + return; + } + + if (QFileInfo(item->text()).isDir() == true) { + /* path name is a directory name */ + QDesktopServices::openUrl(QUrl("file:///" + item->text(), QUrl::TolerantMode)); + } else if (QFileInfo(item->text()).isFile() == true) { + /* path name is a file name */ + QDesktopServices::openUrl(QUrl("file:///" + QFileInfo(item->text()).absolutePath(), QUrl::TolerantMode)); + } else { + qDebug("wrong path name"); + } + + return; +} + +void DetailedInfoDialog::showEvent(QShowEvent *event) +{ + Q_UNUSED(event) + + QWidget *win = ((QWidget *)this->parent()); + move(win->geometry().center().x() - (geometry().size().width() / 2), + win->geometry().center().y() - (geometry().size().height() / 2)); +} + +DetailedInfoDialog::~DetailedInfoDialog() +{ + QTableWidgetItem *item; + + for (int i = 0; i < infoTable->rowCount(); i++) { + for (int j = 0; j < infoTable->columnCount(); j++) { + item = infoTable->item(i, j); + delete item; + } + } + + qDebug("destroy detailed info dialog"); +} diff --git a/tizen/src/ui/menu/detailedinfodialog.h b/tizen/src/ui/menu/detailedinfodialog.h new file mode 100644 index 0000000..d20d299 --- /dev/null +++ b/tizen/src/ui/menu/detailedinfodialog.h @@ -0,0 +1,60 @@ +/* + * Qt UI + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim + * Sangho Park + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#ifndef DETAILEDINFODIALOG_H +#define DETAILEDINFODIALOG_H + +#include +#include + +class DetailedInfoDialog : public QDialog +{ + Q_OBJECT + +public: + explicit DetailedInfoDialog(QWidget *parent = 0); + ~DetailedInfoDialog(); + +protected: + void showEvent(QShowEvent *event); + +public slots: + void slotDoubleClicked(int nRow, int nCol); + +private: + QStringList getImagePathList(); + QVBoxLayout *baseLayout; + QHBoxLayout *upsideLayout; + QTableWidget *infoTable; + QTableWidgetItem *item; + QHBoxLayout *downsideLayout; + QPushButton *okBtn; +}; + +#endif // DETAILEDINFODIALOG_H diff --git a/tizen/src/ui/menu/screenshot.cpp b/tizen/src/ui/menu/screenshot.cpp new file mode 100644 index 0000000..c672cd4 --- /dev/null +++ b/tizen/src/ui/menu/screenshot.cpp @@ -0,0 +1,240 @@ +/* + * Qt Screenshot + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * Munkyu Im + * Sangho Park + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#include +#include +#include "screenshot.h" +#include "screenshotview.h" +#include "mainwindow.h" + +void Screenshot::copy() { + qDebug("copy"); + QClipboard* clipboard = QApplication::clipboard(); + QPixmap pixmap(screenshotPixmap); + clipboard->clear(); + clipboard->setPixmap(pixmap); +} + +QString Screenshot::getRatio() { + return ratioStr; +} + +void Screenshot::setRatio(int level) { + switch (level) { + case 0: + ratio = 0.125; + break; + case 1: + ratio = 0.25; + break; + case 2: + ratio = 0.50; + break; + case 3: + ratio = 1; + break; + case 4: + ratio = 2; + break; + case 5: + ratio = 4; + break; + } + ratioStr = QString::number(ratio * 100).append("%"); +} + +void Screenshot::scaleChanged(int level) { + qDebug("scale changed: %d", level); + sliderLevel = level; + QPixmap pixmap(screenshotPixmap); + setRatio(level); + scene->clear(); + scene->addPixmap(pixmap.scaled(pixmap.size() * ratio, Qt::KeepAspectRatio, Qt::FastTransformation)); + slider->setToolTip(ratioStr); + + updateStatusBar(); +} + +int Screenshot::getSliderLevel() { + return sliderLevel; +} + +void Screenshot::refresh(const QPixmap &pixmap) { + qDebug("refresh"); + + this->frameBuf = pixmap; + + ratioStr = "100%"; + sliderLevel = 3; + slider->setValue(3); + scene->clear(); + + QMatrix rm; + rm.rotate(getRotateAngle()); + screenshotPixmap = screenshotPixmap.transformed(rm); + scene->addPixmap(screenshotPixmap); + slider->setToolTip(ratioStr); +} + +void Screenshot::setStatusBar(qreal posX, qreal posY) { + this->posX = QString::number(posX); + this->posY = QString::number(posY); + + statusBar->showMessage("x: " + this->posX + ", y:" + this->posY + + " (Resolution: " + QString::number(screenshotPixmap.width()) + "x" + QString::number(screenshotPixmap.height()) + + ", " + qPrintable(getRatio()) + ")"); +} + +void Screenshot::updateStatusBar() { + statusBar->showMessage("x: " + this->posX + ", y:" + this->posY + + " (Resolution: " + QString::number(screenshotPixmap.width()) + "x" + QString::number(screenshotPixmap.height()) + + ", " + qPrintable(getRatio()) + ")"); +} + +bool Screenshot::save() { + qDebug("save"); + QString vmname = ((MainWindow *) this->parent()->parent())->uiInfo->vmName; + QDateTime currentDateTime = QDateTime::currentDateTime(); + QString date = currentDateTime.toString("yyyy-MM-dd-HHmmss"); + QString defaultFile = QDir::homePath() + QDir::separator() + vmname + "-" + date + ".png"; + QString filterName = "Image files (*.png *.jpg *.jpeg *.bmp)"; + QString filename = QFileDialog::getSaveFileName(this, "Save Image", defaultFile, filterName); + + if(filename.isEmpty()) { + qDebug("can not have file"); + return false; + } else { + QPixmap pixmap(screenshotPixmap); + qDebug() << filename; + pixmap.save(filename); + return true; + } +} + +int Screenshot::getRotateAngle() { + int rotateAngle = ((MainWindow *)(this->parent()->parent()))->getUIState()->mainFormAngle; + // Too many logs are printed while mouse is moved. + // Thus comment out this line. + //qDebug("rotatedAngle: %d", rotateAngle); + return rotateAngle; +} + +void Screenshot::makeWidgets() { + toolbar = new QToolBar(this); + + slider = new QSlider(Qt::Horizontal, this); + slider->setRange(0, 5); + slider->setValue(3); + sliderLevel = 3; + slider->setFixedWidth(100); + slider->setToolTip("100%"); + connect(slider, SIGNAL(valueChanged(int)), this, SLOT(scaleChanged(int))); + + gridlayout = new QGridLayout; + gridlayout->setContentsMargins(0, 0, 0, 0); + + saveAct = new QAction(tr("&Save"), this); + saveAct->setShortcuts(QKeySequence::Save); + saveAct->setIcon(QIcon(":/icons/save_screenshot_dialog.png")); + saveAct->setToolTip("Save to file"); + connect(saveAct, SIGNAL(triggered()), this, SLOT(save())); + + copyAct = new QAction(tr("&Copy"), this); + copyAct->setShortcuts(QKeySequence::Copy); + copyAct->setIcon(QIcon(":/icons/copy_screenshot_dialog.png")); + copyAct->setToolTip("Copy to clipboard"); + connect(copyAct, SIGNAL(triggered()), this, SLOT(copy())); + + refreshAct = new QAction(tr("&Refresh"), this); + refreshAct->setShortcuts(QKeySequence::Refresh); + refreshAct->setIcon(QIcon(":/icons/refresh_screenshot_dialog.png")); + refreshAct->setToolTip("Refresh Image"); + connect(refreshAct, SIGNAL(triggered()), this->parent(), + SLOT(slotRequestScreenshot())); +} + +void Screenshot::setImage() { + scene = new QGraphicsScene(this); + + qDebug() << screenshotPixmap; + + QMatrix rm; + rm.rotate(getRotateAngle()); + screenshotPixmap = screenshotPixmap.transformed(rm); + scene->addPixmap(screenshotPixmap); + + view = new ScreenshotView(scene, this); + ratioStr = "100%"; + view->setScene(scene); + view->setMouseTracking(true); + + QScrollArea *area = new QScrollArea(this); + area->setFixedSize(screenshotPixmap.width(), screenshotPixmap.height()); + view->setCornerWidget(area); + view->verticalScrollBar()->setValue(1); + view->horizontalScrollBar()->setValue(1); +} + +Screenshot::Screenshot(QWidget *parent, const QPixmap &pixmap) : + QDialog(parent), screenshotPixmap(pixmap) { + QString vmname = ((MainWindow *) parent->parent())->uiInfo->vmName + " : " + + QString::number(get_device_serial_number()); + MainWindow *mainWindow = (MainWindow *) parent->parent(); + this->resize(mainWindow->uiInfo->getMainSize()); + setWindowTitle("Screen Shot - " + vmname); + + makeWidgets(); + + setImage(); + + statusBar = new QStatusBar; + + toolbar->addAction(saveAct); + toolbar->addAction(copyAct); + toolbar->addAction(refreshAct); + toolbar->addWidget(slider); + gridlayout->addWidget(toolbar, 0, 0); + gridlayout->addWidget(view, 1, 0); + gridlayout->addWidget(statusBar, 2, 0); + + this->setLayout(gridlayout); +} + +void Screenshot::showEvent(QShowEvent *event) { + Q_UNUSED(event) + + QWidget *win = ((QWidget *) this->parent()); + move(win->geometry().center().x(), + win->geometry().center().y() - (geometry().size().height() / 2)); +} + +Screenshot::~Screenshot() { + qDebug("distructor"); + ((ContextMenu *)this->parent())->screenshotDialog = NULL; +} diff --git a/tizen/src/ui/menu/screenshot.h b/tizen/src/ui/menu/screenshot.h new file mode 100644 index 0000000..ff111af --- /dev/null +++ b/tizen/src/ui/menu/screenshot.h @@ -0,0 +1,87 @@ +/* + * Qt Screenshot + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * Munkyu Im + * Sangho Park + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#ifndef SCREENSHOT_H +#define SCREENSHOT_H + +#include + +class Screenshot: public QDialog { +Q_OBJECT + +public: + explicit Screenshot(QWidget *me, const QPixmap &screenshot); + ~Screenshot(); + void setStatusBar(qreal posX, qreal poxY); + int getSliderLevel(); + int getRotateAngle(); + QString getRatio(); + QPixmap frameBuf; + +public slots: + void refresh(const QPixmap &); + +protected: + void showEvent(QShowEvent *event); + QGraphicsScene* scene; + +private slots: + bool save(); + void copy(); + void scaleChanged(int level); + +private: + void makeWidgets(); + void setImage(); + void setRatio(int level); + void updateStatusBar(); + + QString posX; + QString posY; + QGridLayout *gridlayout; + QGraphicsView* view; + int sliderLevel; + QLabel *label; + QSlider* slider; + QPixmap screenshotPixmap; + QToolBar *toolbar; + + QStatusBar *statusBar; + QMenu *fileMenu; + QMenu *editMenu; + QMenu *helpMenu; + QToolBar *toolBar; + float ratio; + QString ratioStr; + QAction *saveAct; + QAction *copyAct; + QAction *refreshAct; +}; + +#endif diff --git a/tizen/src/ui/menu/screenshotview.cpp b/tizen/src/ui/menu/screenshotview.cpp new file mode 100644 index 0000000..bc06e84 --- /dev/null +++ b/tizen/src/ui/menu/screenshotview.cpp @@ -0,0 +1,103 @@ +/* + * Qt Screenshot + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * Munkyu Im + * Sangho Park + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#include "screenshotview.h" +#include "screenshot.h" +#include + +ScreenshotView::ScreenshotView(QGraphicsScene *scene, QWidget *parent) : + QGraphicsView(scene, parent) { +} + +void ScreenshotView::mouseMoveEvent(QMouseEvent *event) { + int max_x; + int max_y; + Screenshot *screenshot = (Screenshot *)(this->parent()); + QPointF fixedPos = this->mapToScene(event->pos()); + int sliderLevel = screenshot->getSliderLevel(); + + switch (screenshot->getRotateAngle()) { + case 90: + case 270: + max_x = screenshot->frameBuf.size().height(); + max_y = screenshot->frameBuf.size().width(); + break; + case 0: + case 180: + default: + max_x = screenshot->frameBuf.size().width(); + max_y = screenshot->frameBuf.size().height(); + break; + } + + // Too many logs are printed while mouse is moved. + // Thus comment out this line. + //qDebug("sliderLevel: %d", sliderLevel); + int x; + int y; + float expo = 0; + switch (sliderLevel) { + case 0: + expo = 3; + break; + case 1: + expo = 2; + break; + case 2: + expo = 1; + break; + case 3: + expo = 0; + break; + case 4: + expo = -1; + break; + case 5: + expo = -2; + break; + default: + break; + } + + x = (int)(fixedPos.x() * pow(2, expo)); + y = (int)(fixedPos.y() * pow(2, expo)); + if(x > max_x) { + x = max_x; + } + if(y > max_y) { + y = max_y; + } + + if (scene()->sceneRect().contains(fixedPos)) { + screenshot->setStatusBar(x, y); + } +} + +ScreenshotView::~ScreenshotView() { +} diff --git a/tizen/src/ui/menu/screenshotview.h b/tizen/src/ui/menu/screenshotview.h new file mode 100644 index 0000000..fda6a0b --- /dev/null +++ b/tizen/src/ui/menu/screenshotview.h @@ -0,0 +1,45 @@ +/* + * Qt Screenshot + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * Munkyu Im + * Sangho Park + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#ifndef SCREENSHOTVIEW_H +#define SCREENSHOTVIEW_H + +#include + +class ScreenshotView: public QGraphicsView { + +public: + ScreenshotView(QGraphicsScene *scene, QWidget *parent); + ~ScreenshotView(); + +protected: + void mouseMoveEvent(QMouseEvent *event); + +}; +#endif diff --git a/tizen/src/ui/resource/about.png b/tizen/src/ui/resource/about.png new file mode 100644 index 0000000000000000000000000000000000000000..b276703a7ad579d5a0257ae176481fe47ae4db06 GIT binary patch literal 29162 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 Bn`i(4 literal 0 HcmV?d00001 diff --git a/tizen/src/ui/resource/icons/close.png b/tizen/src/ui/resource/icons/close.png new file mode 100644 index 0000000000000000000000000000000000000000..a1395ce2c49283764ebf024661cadfb099da77f1 GIT binary patch literal 3604 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 N002ovPDHLkV1mGnV(0(> literal 0 HcmV?d00001 diff --git a/tizen/src/ui/resource/icons/copy_screenshot_dialog.png b/tizen/src/ui/resource/icons/copy_screenshot_dialog.png new file mode 100644 index 0000000000000000000000000000000000000000..a07a5f720beb7dc99096f0defabb63ba50394e82 GIT binary patch literal 3267 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 BB6|P; literal 0 HcmV?d00001 diff --git a/tizen/src/ui/resource/icons/detailed_info.png b/tizen/src/ui/resource/icons/detailed_info.png new file mode 100644 index 0000000000000000000000000000000000000000..149ffa263ec7ef81087af5e9930de350e75fd505 GIT binary patch literal 3426 zcmV-o4W06dP)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0007wNklZEdXu7{AZY&odkjFUg&qox^oqoL>o z(d+ftxBmcAN}O|e?~?(ntgIlV94Kq8Q%WVUSQSDr9*^1F+{74z)|$GmvDPA`{1dlJ zjg%50M5Q7RRaF7ty+=w(Q4|OvkW!+Q!h26uRg`6!T8^Nx;<>rGvnqr@Q4~~FMZe!q zZCGnl)y_G#wzeqCGFH;!F!HLkKA>_%qj~RB)(F@%4bHiwZ0i`o%-|@CM;r8n4K4{BJNAoKgP*$*a&>V_rT2 zKq=J%%13838hP1mH|NbchcSlH>2s)s%gC97Qyj;Fgb=K*u0Bhm4|G>G?>*t@Tna8u&9{W; z8t@x1=Pn;+Yc2BFDF9~9U&VY}ZgJKH3n8HL_pfVOYqsxRM{j2a|Ly!50P!H~@p6~$oB#j-07*qoM6N<$ Ef<-N9s{jB1 literal 0 HcmV?d00001 diff --git a/tizen/src/ui/resource/icons/emulator_icon.ico b/tizen/src/ui/resource/icons/emulator_icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..a170e868126453d2f77cd16476aefb8ea8b2826d GIT binary patch literal 67646 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 literal 0 HcmV?d00001 diff --git a/tizen/src/ui/resource/icons/host_keyboard.png b/tizen/src/ui/resource/icons/host_keyboard.png new file mode 100644 index 0000000000000000000000000000000000000000..69a87f3207088fff6818621c88924c9804fffa5f GIT binary patch literal 3436 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 DloqjR literal 0 HcmV?d00001 diff --git a/tizen/src/ui/resource/icons/save_screenshot_dialog.png b/tizen/src/ui/resource/icons/save_screenshot_dialog.png new file mode 100644 index 0000000000000000000000000000000000000000..523fe9efd30f1f4bf831061ed19983e404a81dda GIT binary patch literal 3272 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 D`~$mU literal 0 HcmV?d00001 diff --git a/tizen/src/ui/resource/icons/screen_shot.png b/tizen/src/ui/resource/icons/screen_shot.png new file mode 100644 index 0000000000000000000000000000000000000000..74c85152f2e7a8abd800c12ea614dde34647fdaa GIT binary patch literal 3434 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 M07*qoM6N<$f}}ZL?f?J) literal 0 HcmV?d00001 diff --git a/tizen/src/ui/resource/icons/shell.png b/tizen/src/ui/resource/icons/shell.png new file mode 100644 index 0000000000000000000000000000000000000000..e89f1b1690a65fa25256a9ae5aab1fe7ddfd5d4a GIT binary patch literal 3501 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 b-SN)=1Acp-bRZ(&00000NkvXXu0mjfK2@Ju literal 0 HcmV?d00001 diff --git a/tizen/src/ui/resource/mobile-720x1280-3btn/default.dbi b/tizen/src/ui/resource/mobile-720x1280-3btn/default.dbi new file mode 100644 index 0000000..1ba4d64 --- /dev/null +++ b/tizen/src/ui/resource/mobile-720x1280-3btn/default.dbi @@ -0,0 +1,250 @@ + + + 2.2 + + + + + + + default_0.png + default_0_p.png + + + + + + 169 + Menu + + Menu + + + + + 139 + Home + + Home + + + + + 158 + Back + + Back + + + + + 116 + Power + + Power + + + + + 115 + Volume + + + Volume + + + + + + 114 + Volume - + + Volume - + + + + + + + + + default_L90.png + default_L90_p.png + + + + + + 169 + Menu + + Menu + + + + + 139 + Home + + Home + + + + + 158 + Back + + Back + + + + + 116 + Power + + Power + + + + + 115 + Volume + + + Volume + + + + + + 114 + Volume - + + Volume - + + + + + + + + + default_180.png + default_180_p.png + + + + + + 169 + Menu + + Menu + + + + + 139 + Home + + Home + + + + + 158 + Back + + Back + + + + + 116 + Power + + Power + + + + + 115 + Volume + + + Volume + + + + + + 114 + Volume - + + Volume - + + + + + + + + + default_R90.png + default_R90_p.png + + + + + + 169 + Menu + + Menu + + + + + 139 + Home + + Home + + + + + 158 + Back + + Back + + + + + 116 + Power + + Power + + + + + 115 + Volume + + + Volume + + + + + + 114 + Volume - + + Volume - + + + + + + + + + + + + + diff --git a/tizen/src/ui/resource/mobile-720x1280-3btn/default_0.png b/tizen/src/ui/resource/mobile-720x1280-3btn/default_0.png new file mode 100644 index 0000000000000000000000000000000000000000..04e01d6e0382847c0feefd76d089819e05a5502e GIT binary patch literal 84480 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 a9So8?;>S63DcTWz)44MSr;D_$Z~q_sGv)FC literal 0 HcmV?d00001 diff --git a/tizen/src/ui/resource/mobile-720x1280-3btn/default_0_p.png b/tizen/src/ui/resource/mobile-720x1280-3btn/default_0_p.png new file mode 100644 index 0000000000000000000000000000000000000000..4049ae29f6b880ab30358c094f686d6296ba38e1 GIT binary patch literal 93387 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

6{Zu`z>qGG^zWiaW3uwa<=oZuxn{>x%6&U9u^ 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 z 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ÆW^yWAdzI>ZFyU%}8rC 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 UZMzpQpx{eS%RsYG-74(=0DcW~rT_o{ literal 0 HcmV?d00001 diff --git a/tizen/src/ui/resource/mobile-720x1280-3btn/default_180.png b/tizen/src/ui/resource/mobile-720x1280-3btn/default_180.png new file mode 100644 index 0000000000000000000000000000000000000000..750d056fc6945616accab84adaf5d9e1fe48b5b2 GIT binary patch literal 84336 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

PoP;I{;z?Nbq~`I-0HPm)X4N*WvD@ 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 literal 0 HcmV?d00001 diff --git a/tizen/src/ui/resource/mobile-720x1280-3btn/default_L90.png b/tizen/src/ui/resource/mobile-720x1280-3btn/default_L90.png new file mode 100644 index 0000000000000000000000000000000000000000..6d0724c9503af75ba2796a25ac66213139eb1a1d GIT binary patch literal 80062 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�nR# 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 Zh$$!esEfnK literal 0 HcmV?d00001 diff --git a/tizen/src/ui/resource/mobile-720x1280-3btn/default_L90_p.png b/tizen/src/ui/resource/mobile-720x1280-3btn/default_L90_p.png new file mode 100644 index 0000000000000000000000000000000000000000..babe9d452b029bc931f63c2eb154aa6cc36523a2 GIT binary patch literal 90873 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

rQOo9=Dxucnt`EmoAdh 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 literal 0 HcmV?d00001 diff --git a/tizen/src/ui/resource/mobile-720x1280-3btn/default_R90.png b/tizen/src/ui/resource/mobile-720x1280-3btn/default_R90.png new file mode 100644 index 0000000000000000000000000000000000000000..462c544153ce2a4b08f4808d7b1b991a5f8dbe0a GIT binary patch literal 79184 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

jh^n#tO%bx;lZNCm4OUB{ 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 literal 0 HcmV?d00001 diff --git a/tizen/src/ui/resource/mobile-720x1280-3btn/default_R90_p.png b/tizen/src/ui/resource/mobile-720x1280-3btn/default_R90_p.png new file mode 100644 index 0000000000000000000000000000000000000000..2d54428e19c8d54749ea18314acf70275cb9ecfd GIT binary patch literal 91402 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 se?G1Q$ASO()S>df+2&>ce?KY|%gWxH3HM@A + + about.png + icons/emulator_icon.ico + icons/shell.png + icons/about.png + icons/advanced.png + icons/close.png + icons/force_close.png + icons/rotate.png + icons/scale.png + icons/control_panel.png + icons/detailed_info.png + icons/screen_shot.png + icons/host_keyboard.png + icons/save_screenshot_dialog.png + icons/copy_screenshot_dialog.png + icons/refresh_screenshot_dialog.png + + diff --git a/tizen/src/ui/resource/wearable-320x320-1btn/default.dbi b/tizen/src/ui/resource/wearable-320x320-1btn/default.dbi new file mode 100644 index 0000000..8ef39c0 --- /dev/null +++ b/tizen/src/ui/resource/wearable-320x320-1btn/default.dbi @@ -0,0 +1,91 @@ + + + 2.2 + + + + + + + default_0.png + default_0_p.png + + + + + + 116 + Power + + Power + + + + + + + + + default_L90.png + default_L90_p.png + + + + + + 116 + Power + + Power + + + + + + + + + default_180.png + default_180_p.png + + + + + + 116 + Power + + Power + + + + + + + + + default_R90.png + default_R90_p.png + + + + + + 116 + Power + + Power + + + + + + + + + + + + + + diff --git a/tizen/src/ui/resource/wearable-320x320-1btn/default_0.png b/tizen/src/ui/resource/wearable-320x320-1btn/default_0.png new file mode 100755 index 0000000000000000000000000000000000000000..cd23252ee7433207077d7aae6ffd43c6cf537ad5 GIT binary patch literal 16167 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 literal 0 HcmV?d00001 diff --git a/tizen/src/ui/resource/wearable-320x320-1btn/default_0_p.png b/tizen/src/ui/resource/wearable-320x320-1btn/default_0_p.png new file mode 100644 index 0000000000000000000000000000000000000000..4cfaf7874f4cc5ae97a475deaced5b13bba1730e GIT binary patch literal 15349 zcmaL;2{@GR_XmzYV=b~&C_60@p{$WDDr?BTQ)CU|54R z_PwlGX6ARM-k8|zy@-Zihwm#Jxg!YmapD_=B)&e0AXJ+6ii%oVb}k++?shKsxl|Mtx$e8U z*x28@iy%HD$vU>WItxrPI}@7QLgku<@dHA>w)2lw=P9J8x_4(-a z>tw7gX-`NaBQX(-w=NucO7)#`n)^*;@Y^R(+xCC>zjYk^v@_d*FCCJd%iBmU?xL(e zbR(aGTEuT4Lu1?7XN&fG`n4;5Q;yW>uykUxRa()_3DDQgjwPapLm zr2b}7{YAD=0^OoQf+-5~2vzS9eOc`gh5?cHi&V%&242suB93N;Zp-8&&jO6to zlS2Zolm-TZ9K4+>C-@n}Zw}4J5%_XuH5_b2=c=tum^uZsF($Fg#zP*e{*(~%+8!T&2uN*rif0y6iHhc zG1$0I)Xnwu=as|5Gt<-GRlh2j+-@@nz}q%h)EnUL?FLF8>}*Ze{yY;TY!;+M_Ghx; z+opO3Ti1)jkM4}kMkyVXQxgu@`%ZmTxl?J#$1rv4m}}&<#E1>yj8kC>FU~if?Il?M z#9r7ZmBor79~@*+{?P*2W>%!zYUk(;J?ek%Ajo>P%jbUHL!=nH;2&Mygf%&wQrcMr zW25rI6+z6eoe|V+E0$|Mgdo?_g7`jMW!?OI@=S zu(?^D&wHrA`?%u+JD;UczdXBW{Vlu4G52W&8}uq@W$x4M-9D7^nfFuBVX~_&hmPOo z9(jVg^VINk19ySEt&o!rHYl=5-g8yyrJ&4_PCT7#gvxR?N-7f6Cs{H*PUxeHxebQ z*nF{m{v@Ty*LxQQo4zP~ynNwsj8*%`Q+Y>nn^->R=aE*2ZCQ1F^d>tNbiMwtIGMKs z*KLlg%7*HO8sC+(x!BH#9vwL>ahUYct%h@_VzSjrc&d)>em!|d_)@5$@`clb$D)o4 z(fdD9{3>zgSeT;lxyt7xDj(nJ_8#lK(d(>zdf`G&lBhDv>6q3LYsVr=$(I+n_*+7z zlc&E-i%hdlbFZ6FCEt;EefLM_C$Dy!gDUe3{fy`g#obrJSM}Z|YL929>mC)0GFHe> zFVil(6`Flq)H6}CBbZ4=EhGO;Y#)o=3A-Kp!g-IXqvNq08u8r*z3mH1^YQbfo8Cug z9y10vKe6RyPC7|>(w5o#WZ^6IOy<6D=4RcC5|@@<%_Yz!xab-3mGM1bjBcZfRgL9| zW#tpn&3T{se&Ri~-iBVgZd8uBPC&s8JrSL$oWuQbxq9!DwU%^Pb!>C4WQV@D&34h1 zdlzVg3!^alqW(ow@!hSoj}}v(nz*Q~n2UWba68iEKK2X}`^xjNWB7p=U-c^-dv&gQ?FeAy!OyIJja_AzY+L!f?@6a&-1LAqUx2G?wUHjkBg5p z%vH|4m8-N=BVMqQm7G~~z1nC$i1uo;>N(SMO14p*(-QWPIKLos@!^Q3g6n5&C4 zyHNA!?^}vyU*r`tZpYq^|M4igvPb&uz>Q}&=pyW!OsCFFIW;*oz2%|c;pS1hxp;Fm zQTt|P=K0Jk>Q~g8JHBUp0Qc+jr`>NvxC+7)mcZgDm7v>a#IFvzkK*z)>@WR&irBKJH=>0nNwN7 zZQDC1Y|9%9zO2U7!~|3YJj2OQ(u5Av=CT{J2fCNIF-Yl4O(b@{UX=@I+>BcgvNi0Y z@A@t>Rd&4n{8#&Aouob`+Y`2x?!g;R!o$=awhP9~3MR2OjknZHt9op?n*H$W-AYa> zPHI@m9xYrIU$tKi9ZUTtntDFPNW{JSON-*eSeaj@Z0FO-0Qh+tRtyLRLc2 z2KhrD$}_y*@7!KHA-gT>mO3RnB`q-_JYi(ofBYVB*G0-njo#fZ8eX{?kyd$?@oLn={D(82^SSL>mY?Ty@65gG zjPA6j4bcjmAMB>QJ$pO+OW=`nA)z4#kL4ooKQUzKxfCzv-7}`>j=i>bE$-SxlI=vAa!rCZM&AYulMPkwsj*24@)d|X->bzQtZan-O#Vqd<$vOp zP>b1p-}KIg&5$gn9KmB3q~he&pJ-fu`Rgh@Up7<3+4bYzXCtY68`v9cPYLyi_dNNo zXv)W-v98Q_)9=M{^d~XjGmRn{7iKCSoy&RtNu5T0JV`2rDbb6|Nmxdz=2GyB=;y8q z@40Wrl-VxY&f0jj=iLn{!Z$jHmkV*kQnor4KhGmK5}+zm$ehbC4{OcJ&>lnqnm9f2>cD zCtdNhjL&I6Gk3)xz96uM$M2?Nkoo7fho4JPj!V>fR5Kv~OJhSTW}1dVM%dEZdykV@ zWf{Ys7BGySh-XB9=NAut5)ZNn+U+o<)y*>2Dxo4Ht z|I@bU^1!IcryZPZYwf5WO7G@?&A{D#mHpx!xq`6w3xDGFoy_tzoLpC$Nqb3gl&5LS zhAR69*n4GkwW9|4my~FmIcxFBYu*Ah;xu~CUN`+begB&8^uo?z><$Nw)QDGvf8Gzu zK29%oTXrD_g~av58%a8e`zCixsx-gJ_6#mg_#G&Xa?-sPl{WHK-Oz2dA6aqVn8#|wkiznp-{tdpp-~^LU;Gcn|q0XLHJ?Zi5 z@iBEy4>E9z^-Ii!qfHG>9JQ@JBA3iJ_4ijkdyjduuf4_6X-+@jLh};rc0X?EbZ70y zFvr9Y$Vgvp99W46j6%N2Wu>fr6G8mWA_yiJL3Ro7djUZ_FCxgIC4xx3LXZE~a_w!d8pO{k=lwZ2%ZPRp!Lf5q)$7<+T4vK!lylEX7E2kz46<6~9Bqx)C1 z#+`4CFUMLJFYO1}yXF++=T6L-z0du2W$n}H^2ArKy2q=%SKuusCYEvS6gRRIj$Jb_ zFo+j-9?O2lDv@|INxaf#6dSm|l4!o>Ir{m9@)?gG4dnh?i+ZKy<&J%sH~rRI&kc-^ z3)Eq|hRO22xcj-eX&*m+T*`ktPsa7>c5coS9)VkruPdqcUK{)zOiAP4(ule! zA(16_@Pn=_Bjb9PtiNtxokfnWc3!}F|m&u=< z&CTqZ8Z&qIjZagU_LA~){$!1%@;aOV_hcNR%oDS>*{A6Qni?4yd8wM=Q;v#vaCFq+ ziRsBo4Ro*w+`T)svHSh}i`O;+2XcG!r zdM#Vqtj^>swk9SfH(d(%tDX%7AlKgBO1|vcu)Vp-$KdcIn?kEhEBktKGBfdJ?XL#v z%(riY5ksM(p*`=NP2RE3Gbsq)iPb~xZHs-Ha-~8wn=f)@Pk(SGFMdpK$>j~I_+I3k=jah#j8 zTI4)AX-BT*jUy$ka^Ei_-rZTlV*9y26p&2Lb|gK$@pf^I^Z5^BG{VnFg2PpLE@e7T ze98&pDY#dVguDXJ*l441g(@S3wAR4fy?v__Y*H>Z-TGXnJHNE;U4Cyu$-O4Nm{wjZkv8kRybj)& z))wRa7K7EimMcfurj(mnT$waUnlB4SMqi4II5TxpGV*k@t98WbsAfejjMW21Csvlh z@6VR1e16~QGvye0j=I0SY?Sn|cY9@&)uBc>A>!K?bWF}m?bdfMT3>4CywhIT{2BKA zW83!#>wMwCHk;);&suC8wYGZ_SWcflolxi?AL;9(eX$s9gnel9e?kqNl*Dn#I}n`rD&tj~zZ6b2#HgPUA=< zlO~2F6gPG5v%w0s!LuN=G%MoFc{8^FlHZty+XYWan*TVAl=_zoTI_{4H8qJ|zO0P& zwGf zDqYrVEv__WYgG{u5$(pV!Hc^%SutS;7Z)N#OD%e4VWkF!z?xau#@@3^6pUW+UVYV( zG_)pQ&%%Q=H8(ScU0bQI*AKZOt-9V-Ne<=MexHfBCq_DJBwuu8OmuE7 z>YtF+tC{>!*gzNcdw18jadytV*-to@&pl{hjkRznON;lNmYTAFfPjO&{dvO4LZv71 zIi;o7IW$v+nR7?WosF#`7M7MyBkw)&2fqAM+35SZfP!rg`kpQNIlt7S7ITxnvEsDi z;9`>JngwkCk+dPsF)nhckL}LYw{gyd$zWBWbMbiVO}XgvLfK*B4AlOV`S9_;PSyWm65z zQ#AwY2)S0DBCmL7NG&LSeojHLH*-1CdA!R0bo7($)$!`pCbB_MWXxQNLm|jL6xEGzp@2c%2xSK6QHZVf;G`R;byv zgiwFH%4_Q>eltsM7>^I6p`pnSAFO{*A0u&Rt3BMPYq9a@T=x~!Vjmza{GFU>LZ z?OVi~o^0H7jOG~?2vQgKch+1EkSEPk#Ar$s&=nu zI%sqqNszqr7YLP1OiT<>&9SN(>w?i|5Trr^DT;UZuQ4YN{v0}$%HcFtaf_HkH8eZ~ ztIQCw?VRsIav}>J#-OnUkHohKhTm5@Wo+*JC-Xu8@7@Iu!9xdubqzm0fb*8R&uN%dd)+*z z@wz+g__^io?(U~D(Rq1D#r+=-PenfofOK)|n@Cr7Zmybnp#cP~-#*d?^XFnzBqQIh zt~$eW$w`97C=)?3Omb%udm9=W47`s&Y34i}Y5MT=?!jwCl`{p!4XpdxoG7USGKL~?e}oww~s0MV2aaoq4(_g zCtn@(Zo7r(l`HMlboB#}$CWq^2|7)DGVMbb)+suo!O2PQ zRCLS09~q7)&=6a5PhsE|KT!)(?z0hW&A#u*>%XXfVA0>ut^)52@WlG3sZ!E$^nbK! z-W+i(JRj3)=jUe(+7FVK|7@uR8Lzv$d)0&8q6su101%N~%7fS7RV{9Nl)sPUBs23z z7=gvDdY4)?(~^^*h>`BtVP>n6+g~VlAIR1a@cVmFggJeZ`ELgPQ}?d>rfp>Q|Qg4}3jtWu}2W;-#jl$bFD7}= ze#QcSy$-)s2-*9<#DoS`)((YuZm(9aEkgRTmxbOt$804kA#u+Bw==c>&gwu%lEl_b zyv5+bX0j5=8xoD7&BMQcXcgYYAHWCvOZb@?# z`r#{)%b@x3qPyX6NSoQ%E&1>v?b@mIvNG{xX4-v342#l=N!G~uU+U~ws7d)upKXTqNd z#8OgHgUcxchyYSC{O3=_g#VfhoIK}@QIS*Gb#)eIW@Z4frdz0sVq$kGDJdDjib(4s zr+A~4=TFrA2~kMzwxaV!9YQR(4t}1fYZ>>my?y&Czz+CQaBy(q>(_bjSzB7Ig^LCq zEG^}mUX95F8k?AS9{h3b=_t8+Dnwna;$qoh&jx?u8 z>+2(?wGWKawUmF{H+-vtzUTK;v-{2lDjTP>-#j7}cu+w+>&l4r{=AzG10g~c zNFyB5K9-{+BW^oeQO#4rP4i$*aCGG>MNe|W_6-)8R=yc6cWFNv<3IbfdFmF}B78&3 zb)!G5@eXXWaMQHx7Att1_tv{L&NOmNlk4m^W>~M1b0;%xsC(+@dtLV5NbA*VL9Zoj#UdxV=Imp`^Mw5jL&Y|jcAP>+BLfx`*VU; z{_x<)nAniK2seT`b`qh0_{>0B&xIiIZ}ut45P50@uFEZvlVr%G_7McCGNw;gIq4CM zS`Utt1W6-D;M(LOa)boAf1Uz!6+r~A@6ZA3mNAb%&St1qW|0KTiPs+a&|C16d zA09IH@ZZFj{z>_F;(tZQ ztWYu!!CP&|{_KyJ0cPo*g5GruqXil5=Syk(@mG<&TTbZ8hOE~kx6hVNYK!&HP$g^k z#pzfT*sj!#1Q=*Mt4LgV?~$rsRM>8xK2XHAN4R=|eo~tZN$h|^&B{}USLR;KV^0OS zL|N;wg>}10bsxcfWn^Ubx(ElFiU^{15s9!Vf$|i)q}#P>ua#cg)PT%7!hT)39AURB z{4ruC57;LfHau)}Q&W>argeS|zq+>hGhAr#nZ(2gGURzE9xZy>3gUQl^Hk5~W(j`V zg`nSKrwdkxq_y4^PB0zHoVpAd=3wT{q(iWg7*=aJTdN2de#_r~e}n=FcCtGIaFn3_ zm^~;{;GkF_NS%jxa;8RFz!sbj1>Hj~gd&)wZXBsZ2~uRyzEw{T_Ke}7!W^t}lECF; zFO$4fG7o~uvleb8S^){tj}Mxq#vI_$#Lwla!F~=Q72HS>x7MPF5E=ZD7DmEVN1feo z=5iRRpdhWkuSU(4tN|r1pvg0E@5v_xY#+~1C{`9y0tn9- zBg1G%TB1b{h8~#6zw29gQ69{LOg=R}ibBduN!oll0Gu+LMKC|g8tTTbS{9Hf^u67t zD{m>>au?zPiQ0{k-5nCZjDd1QnuE@t0YYaa38p%T#P=K-aSr6qnTuQ$m>&~NMA6QZ za3$T_l@pS1%GfB_F3pHDahTZplV*B$!>o#P>0{o2EG^$IE38=zY4bhvuDnO%j@7r* z<*y7^b(&`wDAeW*<~@h)*9qqLWT^6Wa#l=M<5=LPozct%bmh>ri~mPYV`nTw5?Zod z&>O2)RJ+^G>ls0h+&4j{L*;XrK6r~6+!J%0iv1?EzkjDszepqYpk|CoQLMdi+KYW= zIZ1n?&_hn2C2_#{97s`-%AiG!P5zL6(hmP12<30kK| z?5bGkAr#}-cz0US8l}_-%h7TS#o~7o!@cPYg#h)L19n3iFh3~@`SgaGvFBiGmdTXJ z2XnBMa*?L#S};Vgx3pgpQ6cqiu%I-1BJkF?xV~1ZP2@ow*mXP6E4{lf_bOjt^+Y;U zmvdF)%{u(Vdwu9&lg!GxcYLHP3uj2`t4GMS1zK$)&YvV1#-7-#?B3bEa)vOc!2Q8v zqCKR(cXzt3tou{k=-{2c8KJk|z4WUH@ddVGYbs|)wUz^nop;r+)e3z_0sbvH4hJpo zIC3ET%v|jQ6Vw3~t$J#u{b}v?di_QDGZZ>GGy1HZrK{!IOBM@dL~$)YYR6$o3d0#F_;DcOd@Gocd`t%S)9QDs)>j;1fQS=c3eKS!V2pT-LV)-X zc!8ZPlN^)TbPf}=NSd~Mb<%CkIzexRohL{YkcEL3Q)NnCB6{e3atb{dS6<#S*Zshi zRDe!_Jwg!3wEV>~Zt2unVyL;vfDF?=XKHSND*a(ZloJf2K>%rXWe9KFocv6BQ(c`Q zIdJ$ACL>CdjO8$nP(KA}2%IAr!mfEhiUKLG?g^M7n~}8M@URB~iGpG))K}x+980Vg zJbU(RVNQ-vnInZPhWrx-vP&qqX~4l}ab?Aare=i9s%YAL1Yc!;a?Yh(Vve>B+Z@ye(w8!E=kjK50 zIb^EAZKQJOg28=#7Lu7f#T-wgFnYrRtqZpP{AO6cNAi{XMK9=iy#v%bf>${$X^av1 z)1D|4V6H+5g3+TwC`P;OO3{%jmW(Dy#@=*1>sS75mybc;6#C*fb`<(ziVG@Led|VDpiI{|N5fxhRK!yYqfc?)la$RKMAg!-w zfh}+#z?i=&2t6V%V(4|G-k9G?-HhoPryw8)J2^rwF~|aA+l*obxil=b_9;zShzUzx zF_JbLSsJI2HGH_9%Bb`b(m)34@$4r-2CKF;8&QUHsCtzM2U3K1a-jb!3OI;9l1fHF zOsLW(Z%nmV3$yvxQ(4iU?8l=3PuVsJq-4Z&?ytP^GOmpDEVQKc@^BNRAQ_jdU!3IQ z5@oAGL-ZwvFk(O_2GjdLG~>BHNPWsJ<+kljEtBw-+cCWMgau= z9Mj#mMIiBjV}^V&C8o5@G9TjUGIkv;C?0^XQ=2oJFI6L$JFv%@?92@2jCo$zth$3e zVUnudZtiRrhp+7o(4U{n=wtGi%PS>Ay172(*3{2XmAg?5xlxs>Qh!k$DjcEb-P$k? zk*~2ZSrmiaD`G;PH!{kDgz-#x001&#SOh<0`fDe!cOcdyK`sm&B&gAURUrs~1F2FY zh`e+Lu`39M%!&Hn0Ylz1L{2~z#!|zf1N7xejmTS__q}50m>+RTPYjzIzz&MGd(I?Z z8glus(wC$Wj4?Huj}!zr@z;xp_5^zQt8j=q7(`y@#6Q7IpR97i+~FofWrKCeBY^ru z6`K7KL5{%VxU10cr=atH#{EC7i+U1cOZWG zv&-a9GcG4T^_Kb&|HHpIWCkn|l93kUcA_!VKZ5`UwgJbW|H%WQPqrbJ^4(@3a%&Q> ziV-;w+xaR%?td%#XBig%mIc8T^Y7?JPt-D)9}2NFqd-Xgvfurh^Fi66{+j?!M}H^4 z*c`^(t8>QJh19NR8SNQ^9kWE0zYcrK_-jU8@leIvUvmKzi66)j@M3UmuKyW$-sy<} zQ^T^ilxqt?LT3xHqEB=WCWeBe)araVXx{29Gzc;%qk>0w~@a zciWe$rX98?A_Z^mFN*?ayj-IjXGe8A%k+y1238AaGWoZv-F7_jdX~uG zi7JfN@xRCz4`%=_q7A{qNZXzaRYjwD#Bk{Oi9*{e9lQhw_|1U`8ko5tRa3M38O|l)O79@r(m=OlBgJ z1yLATZi zh5c^v`26mw3&{oDj&Ysng$HpOI`eZgg8`MEd?nxREScV8&H%uhVKAOM7;3t6sZ%-) z_2|oOm>lY&0oK>t-TfRgAGaCLKxT7S#7CN=JGQkklWcDjwyiDQtHa0h2 z5I^47g(7;cfw}L@#}o7hr|3it)o|o9pdDxo_XTwL7GB86K{$q@)yT9X!dn{9ee0fzPD_I@mG`{1 zR`%~FXO6Xc60C)p$1B~H;G58^lIu`gDX!?~mytk#6B6QH|D0e2qLgkj!^0Hgd`Yh_F$o~p-}af z!EN^WO+AxnJx(Nm zB(M*3V2T$ns|V$dh0XWp=nzR~DE#^1qsC}9>w`#VzlI&(hSm!$fB$M|BVnKl0S-z` zQZk1VH?IWNz4z-2ov$roNnUfX-oDop75J{TRi$z2_t-ORW@aXkg*X)`ldRPdYIE)~ zN0~{8N=x4Zf|SV2fDJ>fv2|_75r_}avmE|+)Yjfo;l?UbPvwi-8rquTBpAX6FaeMq zP>SBz*r@VYcmdxRgJ~ShI<2}$zgM`v1-@x_d@YdJxkBWn!0lDEMOlE4=}vN~&4ET8 zV*=D`GJzzR5J0knKYzYTBnyZgO=7aL_!b#7@km0fz^{7O=|C6EaD}T?M?3!?`B%^~ zr)o-Ui>_TdKo5*6c0j0$T}$qBdXb z3+Ul%&S6>(X*)slPuWDVwt+|T zTg=GQ1>~m?0FIt(% z%~@Gl5y?p4e*s39geOfr;UNZ;z`ORmmUM3l{PQD}$QBamU*C;cQ}?sgM~4fog>xXd z6b`jhenBeq11n$AU_eh$c@hYQE{^%JN_Q4cP9kdzoln(o%+5`yS^!&%Iv&+b?3Ezy zK^^Q6^xq{BrH8h)T^xSQNu`+eLKuQfE+Q@Q%4dkIF#HU=CMqtT85VXJ@c2DY7@>5W z;-wE7ycvfj1DHK)Un~4rT(D-M@Sxs`*PkH&P*s6qVu@ z7VN=zVIn@3XM9ZIDlf$EeYeCf7UCT|hjIs*m$7vgFM!DInQ4y)FtB&Q*5X=7t%|&< z^0!;Jpb7+>qiJg08D=X88vVV!Zy?gTPq#$B=a}uKM?Hs_>9sO)R^|GB-m$Pp#D1%u zo?BNgUQAOAr9IC;HL${$Uizswd+=`IKvm(EU*Xok?WF+RQVmDbNh8Oh89o2p($0{$ z7}X4-wL$3Y%hFteW-h;Z_64Q($A+5T;~6hVW_n_#T*DPPb}17BrnjPG&vyvAPfAvjUaZb*TuXjW zU6es?_;IDcnV_d*IbbCdN7vcbP*RnaC$7sxeZs^taDbsI^Jhcti>*$M@^HeeoT%Lb z_T|3+$6W!A=8!tJ=GFjSH$Z3frsIT(xpUFR1iSmiJ2&+n+E9*Nh;qUM;}?VIMr zhRjxP`gF>57WWaG7(!Kx4Lb9#N!-rA+W;m&l;GygoAzBPGB!RwhD*`qxAd*yqUogj z>X@Wsz8-{n0Al@;w8G2}?dF4t>OAh89_@j>z6)U=H?Q&Obu;GDK>J%%bIg95?E6dp zXRp>!hijiRE2AjWCciC)vbY!UJ^&j&Ae>9nqRPiI0SZFUHZd8s+7K*}Q(Fmj!&cA4S>+Ev7UMb7#z+(z zT19N2wRS1CJX)W4(Q4gmTItrf_dphUI3AA}K^j`AxiVuhTczLCx#d^0xUg`v{!(of z0GHS5SY-h<;W0I$0)Z$V?f};ajNQcJ(c90~eIG+6s>S>D<~9s(TgBEDrlh1S-(4e< zuL0uZ>jV7moR@=xs+rk1O|kiBOXVPWtyb$(28yaYI=OCds~eM4eBHfiH+K&h@RKJk z?&|2o5DAg!(@Kdyr#HkGpF#^m%K?6;u3RVjyr;K>#-WqUPBe_qu6Znfztq>$)8jEZ zXGX_A4BUQJieKAn8UI1Q0Q3B&fFe|d$>08IA;tOc3=9o5-=ea-9uXDgsOVBiK}nh9cco^@ zDTI#gvZV&}n?Tght>w|MK^%4eU@PC=uP~#eWwYCJrdabcT>$J%(3IW%I#Gw#OcL)o zhG=mfKR(rF-FwqBAKgceIU}<(=KeRGn;5V5phRWY%*x3YSf5ItOY!d%BaK-4tJ9Q# zZKI9f&77mq6yxmtlp;+vhK>VB+WE#47Wb+gaY@3!F5TapzvaHze;%4(`-cY_qmQJW ziq1JdUUMb=tx{Cg`(GA2piH32i4kb7E4BQyR`_7w)ORE=A1b^zHDtSgd zjI>vIyC~Gu$k?>U2^5S|PS}jR$~P%@@bc1^D6r`Jwaw1<1EH$&n<;u=URdTlzPN~+ zbSk46sYBOE2JDs8NO~!ngg%z+MM?i`Duw*1SIXzt;UTPM(`W>%Cq&;3SnT(YtV3d= z>W2_RkCjEeo0>{n{W_YiA|GvNkiwzdznd@Z+gk>$TN|?ipZYNEkV=@)tz!EC|%u;4o6D$Sb+^C9~0Jm=Wnlb zXhz1|^aag8M})XG3sR7&7GpuO5_623caP9?wBKLXhRP;Q4+C znesc)9|oDczsLkje+%)Pw|;pWvbzNpVhtkhK!!IUMjMT9H=z+B=*B&S&0VOp3TosE}jH=rRxh;WWh6R3bQiX zgt_>-@39ClNjUjfP63^yN z#+&NVQQWUzBkJFjO&)b30#9vQESeB_r^6t*lY_mPhM!kL#LPm}$bQeX{Mfyp#escy z_TR@7^D$~CRn&wN&i+f^?mezHqD%wXV$re3Ya}yUrU!N}VxQ6px9ESNlYdHo^oTOGnXfM7ESb`G%JYvdj=h9Ejxf9& zP05lN_WNSbQZibtx*1Wy-9TIzf@}f>n z^nFPA1Ni|OluC83G~2(bpQwADc!(y&FsCQ?xL2~tM@nTZ^c2|9kHsjcwBKl2WTg=Q z=5#~2?W=N`jNsW=D@@s?LYjg$wo-#a(%M&hR@gFcvU4GKn$Aj*c`Nfg;!?V6c;8TK zW|av2sxcTDRmucZLLz;ltG*#Wnm>T)Z6{TndK_;YJHN=oy!`C^ zseEev9evEhm^^d6z+zQ>alN^`vjg!3`uQn3D|+mDwt2U5!}D!(T^}lb4l=^OA~*Va z|Espj=LhL!7ISrNJk(YfDtrVlI?@)r@C=ds##`1k8sNoW`vK2c`&vFfFXN_)xVku^ zLU-rAjUvU|2e;oJJ+#g)@Z}`z1Vv0SZe0I)ojqIPezmBzsbhY8LcC$Y-GT=NYAf|p z#cMe!+4Xm7jgCX;l-kv=nO;+~jp;slPUyH_ln@0i7&QG46F(Isd7 zLu!LLGWEV|&XjNc!VyQH2>v17`6y>kjmD6?g60bOI88UJT&tv;s~o3D`}o!a6|=8! zm8?f`j}m78eOuitmpP~!rAi-Z-)1^@WzM zZ}0li^{HzpQ8HOxbXaU5c_Dc?dAiEd*vD89os0freXsnNakkMqy3Qrc_@+^op}w(M zg=$es(bb{aqS~B)a;mjrwF**)Y`>Onp*zrdRToNeBjn@7XlHcbBiqL;wpFdgU)N*n zV*_gfqww++wBe(41)Rp5LC-4P8D$M*r;@rqt}6z%?#3^P*cxIPup{Dg=<}HC-|SQL zlKa(cS!}DHh3>q3{Yv9GMmRx1IGMd|@_YR+b&owavsu5sy_DpN7PW9$#7g8XqG-6ZD$6_n;L!$) z!oGrg+ML3iob;5~l##^`>87ghRT%BBuBjGb(<;H22~P-qgkC5Ic@<_$`YJ>z#DwJd zw_m`;#%M*^aqIo^(KV&W^lBw0rI_bM&vDH~7wx{UzA3tRu<)V#ZMQvLm`>2*P!GkU z`A4t62GLv#3lBrQP>g>1(vYoJG(pn4cS7aa^zEbD@wcavZAG`jfdZVsU`D%Q;C5;mpSt4_IdBC(Nw-IoGrGOM0%xqUyi7l@^fiz-{sfzd$;Et9X_muKM3=d2j0O)83yjTffS zI;{M()#Y`S2v;0MhhxQ?!ZSufRA}Yw#fQdx!~7KGw$=!n#;#YLH{%OZ1-jOLRCJEN zk^Z=mMp!%7a&Gn=I_rf7LWt9FzP`}mX1Sc3?>N;Q(;0ym2IPfuUn0=_&V$+oYlwv6 zpn6_EO~(-P=FaEMD4634wLTRtEO2FFc+E`PP{e2&_2}qD3cCW+tB7L8ah3$8;1RwF z9~^tQYiDEP#QVy;f^XGNur_@*OY>7gsU~#s`3dt0bS|``W0kbi29;}j`*+4g61w=t zYeUg0)tQZQU+S!LI=Z`VDL(xCaQETSL#g$?Nz|j^-!8rD?EZE8603vbCUpmRg^q@C zeVD%Hpv|E5@x9}U1I6N3`Afg!kDbkmw4B}6+DZFJ@f4To(8JXOgPeWx4|QXP1Xk4O z+PND}Q#QPXXr*ZNqdvC%y!`aG@2{nUv(pD$w6bGfk^Y6V6#d*@oVJ`I4$4W}Nvg?u zNyjFSO=`4%DD)03Px+mwjdRm~l#ny>Ro{8oVL!I?yg$}<8ylGtml7Bxd^lk_{t4~B zVAVbCK<~Oy!{9O7cZcwL;a1(PZqw~A9^2*PxbuiFh@=u(3+H8zWx3PXe(mwfhpf186P_EhQa$=!P2EoQ>dVCqfz$@(2X*MruBy=msjAopwdZcOc{_qFw+ zI_)}(UHF>PsLEvcprXm?#K^`(utSq~`cChJ+5vf3DE9R2UJSj;nV7^F%nRBVE2%OH zH*fw_bjL59vjPKa%E4#>hUH?3SK8E&ZEey$~BqAS3;-b7CbfG!F14 zkJVjWO$hS43PH$F2s$Ky|Cb=h^9BShTSAcR2MA(ueP_|C3PECL@7-2<=rguDdC!$& zA%w7Hp^tE7^uKuL)qwIVW5H45OYP`ikyh8DVJ58C#6NJji``IQ^@Yu;2%mpq`QvK1 zYpgW;y?XBqmxcvfr^k& zteKgazS-VMY8EqwHB+^2tBrj-zqFibGGT|r%d$G@iEiuR>s$@ zg+6i(F2lI#)3s@XDxne1d<@P#DJe;;zrUaAV9(ytQpbOPUGECp+qvJP@TQtu*%ij7 zh6Agsk-Q}q(uiWy-p$QYwDY*l&FHF#+a&1`uU?%Mmz2y}%e=MwEmn<*DxBMI($h@p zTxs_RTD#206kJxdUIKCV9UPWxv{L2l!OPiYWumX4&C-YbSEKd-PFIFXc%cs8ZOEsqukW40@v3-*)q?QaNOkOU?oD;) z5x3p%4fvY<;l}0NrT+P?cJ3;$+p~}e(`j1JQQm01Z3)_GQni`hr)R(S!C?Se0l%xa zvsV&apQD0=e0UNtOFLLaX|PI1AD`PU3RqQ`oCCNkURfqSZ;$3&8Et+Hh03Hih%oA@t?x?DI0`G<3{*`Zz@s!ijq_gSgu;YL*`%q!fPqWOAI) zaIu-5R6_sAhzsue3G891)xrl}-qTNx!^QSsQDjYi-g9lVllA`CNT*TtS^D&B&EyxJ zEAzB-GSMi{6$28>`lQ6f-f!Rj9j$SG7}S^sK{~P18^beg7d7wS|DeP7gqDu(9JJEa z((;^mBo)r%USY~gxSfd}T6myxMmjl#^m4zpqNG|37wS_lAFR~;Nrh30tY;?;eGK2Z zDBT^3p3=J#`CX%rhz|pf$EVRJr+fZ-cd=w}spP?q*lU`C%m_KIg-C8l^L6{2dX}!N z@AhZkqotf-XG$MlNa1Ml@_8U``yCrxbt@@Sf2`8CB0I-*DKkbv3@d*yQ6ncma31z_ z{>KHYaRpjh=TGAla10Htb6-)iwCDVfL{HxgLy(3Y?ks>!d{R~Y(nyaS8n5%MaG9*h z+F8IRhf>fN7ceX?K_5PT97w74mi&PageohpmfGJ13ZDcXE-r$N4Y^F!{Fx%41# zyW`sYsBIeRaTzPDlsSxWywT|Tla!PyOvRlxOcB{l8Kx4^I_F2gA9Ov#$`9{d?9qe0 z>9X-W+O^zLnOaq*)$ZonziBa)(>Pu0_#-Bf08Dpr1U0=+y2ngmLH6xu+S!JBAV!rACWI!ytv}2 zJ)5SU_5MC@oL0`Q)6v5KEpX*MRDZ`vL(W7O&O{Z)SJtF3mB+x!+A~?}4felOOcUbC z4Os+ig{@E4=451K6yF+rW^aG5dSYzCxw1zBEm&Zv(ibr=1>Or{mv$Kd@9nj+SS-F( zgr1qahW=u+WSiX=5244%_NiP6@ktLlx0cPN8xAL&sAN{V0djHddo} z{o!MbX8-DOl3BRTaBV8i6<70q=xN2MliM_AVW&0CZ+}aDM`W^!x-nt>Ygk}iX)p`d zi22xFWfHzLZk+$^T|Va5OBj(xiJ-=5Hg@*Qkbz@BfN6q=g;Z#0=vZTLqm=8EshgUE zM|kdFjA4a%3-Up!a2y_{UKv0WGs{q?{J@_!tKU3lLo?x4b=8N6I9* z&l@6OPYI`ift$?~*(D{~YS96jU%y@+D}AKGUgPm2G^O}0n{GjEB3sdxLE7+F3N`Vt zK!NA|5^|d2A^O;r0;BySs`mzk{ma8yLt>J8J;PK@M^#vdn36$kRVqn<AP1x z37Mc5w{ZeTYp%hLse$`O1*u{`c3@BUSB;+GI+@nStF({z*ZOB>(n&(#!-CTe8vA)IcNIdGDLI;K0jZ4~% zMF_@41i#ZMV?w(56ZmPU=o(mN=fC2+S_P1U#|^&$f$V`%!*Bu5L2G;#`x zB6({tijd(jkYJ0$F2su3bae}nBT@4*(SjIV zg|uN1Xx?>vj*pL*xOK~MDwq&>uMfm5gGuLsx6s`zUE-wG!Gs17y-~r0ps46*ey$h+ z2FmyH(kT!$gM;|^K6WkC6oX@#pP!ewc{6Wm$$qC#L&W~;3tB(0)FPW=q>Dc!sQAuJ z>GI{vM{Uv#89-)ytTfEnCCN6v6fJ?+4!#78{4ObEPK#`bnchI~FzDQ1eQ#|vR%su* zzdD-fAq!%Q>+;Xm*GIek+L{t<`k67GolKyKhCq|Kxj9~7$yo{JeZbWyXT0HPe;}No zCzY%(n$B;wzEm=9b`6p%c$x)5>h>|dRo(3d>qBtyG3rXN4K_6)y*8$b zIy&wJo@})fBjPB^F+u;!4KGcSna((Yq~v7raC+_`04OpH1r1DJfh9fU*ROk)j$P<) zi((%f9?r46!Pht~l7?+h5rFx`i>e+5G#Eb6x^fPH5%rw@)>^86l`ozNRodIzyMFGK z-8kBr2vI!NCvJ*MOWOinD*3CnvDk&ZpRYxhfh&Cw9NcI+EW~`0cwbc^O&iD(#J^X! zmAM0V-!`0VYiMd}F8xRp4>*Q+mcGBeJcf2o-d~?Aa1EGaUtU@1Z)s6>vmEi9e9RCT z8M$aOeH4#&8vUerGD|u(1LRNn?ot~fXSJN)bGBF6b11|9~?T6n+!+% zoDA4;(uWT{wHplurouUw)uIiZ>5&z-ShjKW-ZntPh|=%Zy3s*iE!bmG`W_>Cn+h}y7r~_oQjHyA1)5DJGl{r z=y;-AQBfh*mJ2*g2pqoTVSN7ldB5YeDqM|AYdl=zkMzKL=KZISQ;CNIM&y{G4gWg! z#VwNvTk#9Qr#ZaWuD#xP#-RpQg~#KU=ND{93gR$0kCh=IDKcXR508h0Z4tt!cJ5%) zgY`*0u|z>S#+-ipz(ZWZQ6u445y&)-^Sq(w-U2XYqOMFIc6&!i5|n4TU$;t#iG7lu z4$v!UJoPKvta3I1LIhi2V`WX>RKsGPh&ho}PW<}y**qBUS${a6%y!|z13_kisXG^0 zX&k^&5yz4MD&jKTfR8&U@ni4_2$s#vDpPhLiPGYb!ISrI5_T#kf7jqv@=+?{l-*1NHzLKD{Q;w zyON9IQBZf9qAM6JHDLSRolF1V+%eb%nlNQH4vqos;G_P>v#v(*pL%npTqf?$(i=nY z*Y!Kyw~m&ygY%o4mBN%S0<8hM1KyP1`gT4-HIs<3?e9UKb*~Ev3okGBW=6Enz5Dz` z?7F=#@@JRy^uVk0*CN7#1)23E*sLvC$ekLWA&zq;fGJ;Qc()NZ-T$ysBR5O=1HWtQ1u7P!QpDMN2 zf#*j+vp||ve4jTHWH@l1bP%T;o;MBuxq%1a6hDZ9gw5-6!5qN7fy2$} zx3{h^YMpb#|72<8OI>HCA-{ey>q`S=_7jn?#mP^Wh}OrgT2Qji3y=JtU#Q4hZ_fO#}~hy(D=SGKs?h>aHyBs88U{N$}LW}6Wq-Z(Q|xp>es<{ z8L8}nngUzM&Lakr!vJ%WDwjCt@zz_us+ayrk#SSr+1Ys)&%NI=ssOq;C{abl67MNr zwYPUa8)}WCi;7ID_|vc$&&f8@ndQNP)>&mh+~0S4vcpku+TC_?~4 z&3BVfk%zX9X#zprU>yKi*Ok1Ik{BU6259jd@Ds!jw`(eCTxB3Z3|Luf`#Ywi_ck^* zS6=;{eUTghbg)ve-cFo*tDcJUxXX!4dYG*~v&%`mRu1mq7*$%zb5H2P2`3xdPm`}T z3HN!=LK4n?el=Hjj0_FmOmB#I5oDrws(9=MTX@gC!tvgDEqqcFa46;v4Fz@;=!lZA zZJ|m6i>!C}-*@4jCJOiP?h-P`|AFA_tX2^$QxF+6bCCuDl@7Uxb#4X-sn&}pC4th< zK;Ry61EL{;Hu=brN)W_#=YSq`vN9J>VKAtN1OoR0tPnX2@?j)x;(?%;PsbEsum>Il zBm~*PhyyeIXJDA+{|&s!R}&0}ph^e=15^DSxD~qbe*^n4PAY=Ij6oX^@;UQ&;KvZ_ z{|)?im5>kwCaHV=cVN-KtNb(Y-&G=+Aux$~^WTC0v&ugM|6L`V8UmA)SpFUO|L6AC zxQVOSC4jS{{O|OfvOR2v{?)@#q85kseY*lVMF$lc(-s?*MH5^FzQF?VIelIN2lDTa zh54Nu9X5)*M-jqvoxYMaC3k_XR>@4(SjJli;w%MEx>zq`%DImGQ6!(nJOl`6_p!cU zfi6c}BPzQH#UWr(C0MZP&o-I5=TxHJUu2r&PH1#b>T4{T$d39~Z#EDYUp=*^YhP~= zq*Y{{zE4kL8D$I&Ql;6L(4(@QKfkcp*p?`FDayr5*RCz+{Ucpr9_7-niuRNjsvHcU z!xPe}DL45@h+=!-0Sf{8@RE4Cz`BSh{qJcoxQ79y`11>{4N6GvW(l+~lJrTLev-)- z|07~>vLwXgC4m<0N1fvTJIbF^`|mG5*dOsa5dJ&v|97`bNsjDY`DlQBiYxj^-Dnc8 zzvqn{Q!MQ!P1nsZzs?HAHe~mJ!N`Clpe&(>f0nHzNBT!k22PbAunjmg05Y{Qeeg#m zgxm}Nudbx4Ik;!BeAKV~UD!+AzntQFc_+_%s_4th;VqUu!FxXouh zR-Rw5il};>>&ajeztjH3r;d5xlIXy6d(b7X3_MgQNX3@y zr}lZ4RNfy%Yi1n|?~Lxb)T+i;?TS0BT?PwA3ZD(p8fs%tw3yw9%XWT}$mUx=#jGNp zHodqe>)@PhyyNO|ONuS2tN0oWszE|Amx#K|^^K^@;0(Y$ac}?gOa8g-AN%F_V>3Fk zDK?jpkRdJCJ{_Zg@NUoCEBAbAW-Fkrqy_Eyi z)1e;{Ya<3xL0;mRQO!B|fzw%QEoqjC0&Amq;E35t!Wt8f>n8}rLoH_t5@8_`STGYJ zGw9CQt;fylJDUk;B91P^4OR4RSmNBJc2XqD>Ear49MT%MYXzh^VGv1rxFcb&!62`x z*sIe)prs(upw(drHD#HriD}CvnP-5`Z2n#Fz$s8$rZ1lW z82IZ5NRS3(HT1Sn2xMny32NrY(QzR)J&^NI{ zauY=V_s7drl9)*YZwVY?%{c@_iW!roG~GxMq~@QjK5uumCKxG2-qgusXXB>~MAl>O z0c(D?NT8tnYe_^82WKZuX9_$3UfB$MaGHI&>N!+%W>OKJOp0UxuGT}b4Vt~- zBGX$=Hg*Bxuv|3oAVBmhol2H26d_*e#}szYsG&uJYSZW_Fg92bQWWyZ-p4kaEevIb zDEN(|V3solHT&w8#D&Z>|M8H2G->53v{<851+--GDRp`u4B_{7xHA~h;ElU{Nh8>x zyI?FJ$>@bTrriC40sC{@P}z`Iu7q>-UcT+vU_j1ZP+DAep6w)mz4=nD(IJ-u0q*O} zNmiWm#_0-KKGVmj7jSuuj-%1oKO}=xt$ssQy*TGPlmoRw>}Ny#5~_yeKs*@&%k|J> zVE`iHx(#-r1Kk*T;ZlIF&?ez@f(8~qy697uEH$n_B7a5HB!$09v>D>i|J2fs6pDRK*)WBx6a{D3HGDl*6&WFvFh z-E+WowGali-5AKxi@YX9W82T$tpN_nX`qlm zDp>+}35E>JByj&(D3}>|2Y!1yhTpgZi{jCnSR=S0H4Q{sK#4?H1P=bdVjVH@LI7X` ztP1Lj0Pulq3c!`lCt{3Ki|SxDP4XuCpiNS7kkGN1`zU?=`W4_?fM!7T4U{mSJ$rU^ zvV-*mC7Q{Gz}hwHJIHi^4IoXjrh<|N2e0*sJlDV#6Hpt|yK?UBoJ{!|ZZ-tKXG6hk zP*HGncP|G#8U_e{JPLrNtj}h;*Xl@yodf`p*Q_G94^LDSio2^GEOmXrB{5-5@c=%eoTSORMJu58u8aO((fzuEv3M2rr z!fEbo&afVRG7wj;!E|y*5wcOm63}u{oSr`gkWnb~{SQO~=-v9-cbkexB2UQ=bw(!_ zH|zlO;D_v#(#=g_G?hFMKMInerUWB%(IWk7kmaLJTYf~e;8%D?r-(Xt_i-soN2Vfo z^DwL;QXMOk@3sG6>DZvb7I)Iw)#y===+4{?%qmIf&KWCzuXl6-nA@0KzH_qscy3?K z`{R%5!3C%y0q2-FjJ{)S+_*6CDIv`8iaq)?ueu605#r=i$5TTQp%i zm=s)O?^vHRbud)RxokG&hc>BRQ-&aCI;fZwE)Bqyof3=AMKXR*m?&kW3vl*!N)Tg> zuW>KY$62P3!5<;3;)IaKp~-Loor^Hz9+F&UC~O#fp1w&T1f^q0(o_547oMtA4W5p2 zhv<_7?G7`5XBivJhVx42;z{L)NOHa6T$k=x4txQTOP(1*8ADrttprDF?xg(oIO)`ABO>I4gWUxz?1l(o^}fohde^)y1uWa*es4n^0* zhJx}n`-@u|Q(KBsTTrRWMZGPhLkojDr>fLbE>s}~ja5VbKu%G$NF=J|0=$Xs3>4aA zxYCjaHmC{HS&`5&hJk?ZQ+h_nCxsarqQVp4$s|o^=bO=A?bCT6NCXW9C~%v>7mY!X zai)R(RGAQ4Gnb*#_%KBfpghPQ)=*L;T>Wa?U`qW*M~O2uYvrc&<%Qzh89Vbb4)--l>v%N z8q2bR_Ru6$q|IFt)Asftvi8hE-*N6tr0Iz(P|{j$7M2AJO?T$+5z~-Z6;TEAlfn}! zfsT5d1JN?v7>b@7r~_wiOAf68(JaEL)5pRrP07eX6@eZsd>Gbqh78=tpdp~^V977m z&yZDq+O!3M&k_W1com4EAodLG-2JY+mIlFdfQOVFAjw^L`{s{+anS-i1~e4xtP(|h z4JaJZ?Q+r~9a#J%pGoUjN`iASV+1EeRODueuLzg$^?Ew-DC~$CW4>g7F|_#P&v`UM zhNh+u719z!vz?@M?5WdJ*;|-W$nOCR!9tyStSjtK{KN}F90q{WCAgeKD`|mYe-%Pj zP5EJtn(2cqL1(Dppnk)?KUwIH{UZ8KZ0rXgS2fEuwEEWxNR1@o5pv`;EgjPuH zfWF6@ z0mS2l6YUq6E-?oL_sqm}gbYG@UVvy8Gv2nO;m-h}{AU2troRIWA^W2fnYs8aj$ChM z^}lZb_z>yI24$V`MUm8}+V|9kDNf%iMK6+&{7H&rK}rD}JCL~Jx22&oCO46$_UT_X z4~$8>22ahgNKeVAx{`?ngJXjFM#)}c)_8%(@jz`MF1ui_%3<6O=dBJh8?BH~9v zaBbk3cp%_)z@H)j$ANol;zuOl7c#Z&e@>(2e@_E^E)U!wal~E%$OwqJIe13)_pFGY zTKoq20+?!_9&D62)qj7%V;D~XTp)vhgXbY8B#YHhdNuujGQUk-=;^T9d*;)Jlo0(H zh(aEGYbCUQk^N601gID&e?`xIXC;PvKwAJUshZ*dh3S0eRZu1ixV2&`oRE2kvarlh zkk{&dS)K6v$#`o?76|Q(DHkNxKMYsC!{b~Ks zu7HK3hmk>pxqXU5ea=uh!X(>0&B)Ogp@qO63pg*RuYk6DVLhlt;@qnr`#KxNgUL*X zorNLYya5$6C4hYV_g4?q?@H(*^#yVZ@DBy6HL_Yt#%u?viv7OkkJ%0x zPdSA7WgQ@>3*#`Vv-BR}pvA(M+@&zE7ki)gs-!5T(>R)$g#{!`U`wF$0QxAPiGc6% z2>Ulg+U*k5!%6HZJQ2&&;rsklMi5h8Sy_2y9L-LT1eNWuurn8|7%9oX1zNM7n={QN z_mjJ9u2afIY*N&G1@-l~`@FAlC{a~vYHEPnK#2|X8H%#9vVNv3^D({?RR#4uyt+WT zDS`py*eL~g*U1|FHdau91r_@Mg_5kStIiW&dL3jSVhaVV0?c?%7xY#B)aPY`PJSb@ zu>dsLR0Ny{c0_k8=;X_}SO1;_H9l`nzheLBkrJq_gQK!{p=l}?G;0hpYhwlNi?FYc zCL4n-+GDs8g3Oo6yD9yD6)%ZD+fKji`Nc>17`5O{_JR$Xkens+Ztm&gJDJ(;VLz5*}X zx%}^gx+W+d@^{NIP};eCA^^ZVCCqcnm4&uX}dzsw$T!*zA$zA-h9XdK7;U1e&Q#^VL zIxbUL%^L>-iT9T$s-F=XmTooKq%*y0+$ficFBw}~Zq^l}j|D72LmY5E`W;K^4JzJz ze*)fh8q4;uoe!Zwric(O@jkoSt*kPhbEK~UBSJT+xaU;PWzZtGb z?73eRvZ%6->;<(~g_BJcFd~qCkt}p&X{I@J2yi{R^7L{Tqf}9DbE@}rd1HG4TOtTB z7c_K%Q)A>X6^EcMmQ%&ktr%dcCHHytIDXfAZ={0$au#4L$>VqX=?9AucsZn5t(TE) z_s8BWjRaz;`{$qy5cTlSpPz!ZW77s!=|~`n4b-rCzjn~}c~GSf%Hn7MeM4fG6TBIi z<=ASpM&UYDX9RMNp^cz}TjyWht_&ueK0ZHpia!P#=(jhB@LcSOfZ#*i>uX5@DBFYLeF36m*}L&L1++U*zB}_Jb<+-&*nQB(;yXSdHksPp zc4G*?W5z0MV}K@u)=1w{Wuz!5HUqCl>9|&-9T{f?! z7X=wlK@W-8hAj!&695eaPKAIkt4$6V5;$=`R=_;WgAT3NMl00VrJQtlV;}Ix>B^?W zV;4aC0+id20EemQU^>{s7MqG2Cqv2-8#RD7^ReN0a--AJ3^ZQ&K((HghM$p&sW!0K zygt8bI*6E$sYP?-`50(wkf!&X15(E-66)wUWYX_mxnxD$0Z?49mCv{p%1duw0$U;q z+^iwMNZNI3fW;yp1DJb*J(M~$Jzb*4<$D{XXv0(W{(IiR2i`qpymx6 z?d#XCYXIA6%6~(C6m3>EKaGaoe8wb*IJ&rW%bot7ll9xpB_}8UB@^vl{SnNjoA+>w zjff`c!e0wK@Nu~c`51wQpKyYJL27IVXs`-RjR=7qZEPlDaG;Z15Tkf%m=?I7NE8x~ zbW&Px{5vn8I!URiXkyz%F3!$pidops11xhF%g_5zkH3~V-`fIbZk7()XO%||e z(!}=BP>~7nsY=eEvoT`2b&M}}u4N?$fdw42LRyR?3FKoi>sA}qF2hU}1SSIh5jbtRh+na&y0X*~ zMqT5x^{E>CNI8w9+esML$=zg&0^NoVPcsq-nL`S)0MP#-DovcaJ#cIw7PP`|4jY%1r$tZuUIq>$*i_{pm0E@(_ zhbLK~_a}p$g1icR!tL=C=qFe2Q!9=P95-jT3RoE{`d35I?q+AlYkx zJX*WIJh1k}V#gN&Y$~|=C~JMHx(GDhi~(h6b%@W7GLKbQj5%i812J5Get7c7@Kl-QEOMkLDEpLYqsZF z(Tj!xX0m(Y6?T;{OD>58geQlTPKe1`!&slei@cKUih$=D<_RKZ11A%OpoQ9zP3|hs z0`+ZMZUb_bwONfv$45nP1JL~+1}e%(LpE-(Syi6xx?5#?*;ecVuH4AF0>k3}>)B1* zwl8j{`lt9gP%??U&Sl6i_x-Rr22eQWb~+Abe%=IGVEY0e10@hFD5IkmXGDd@NIaRh zvpp>gD%LLapHN8D6-Eg^&>MWNO1;Bd8*I8$6(|RST>^$##I6&^wL0yK0CcsLd5!K9 z6PIR8`4f|P!SQ%3+FG$P=9tTrZ&@Vu(o#hr)8$+yrANj(x{Os(D-Jd`2GZHZ8f}AM zJE(bj1*3$73BVc51iPv72;5F`GeZDi@_>)g$)dS2!U_Bd%2MF!__jS5P;H9dI+V+O zSM6f1+c2+t%$eg8=J};WJ1{V?T%97?_`#rb!G~{^#k7_V*vhLReRdxP%)Ux=2_X)D z7KaHH%BnPZnq7T&@9O!pSM{!EEswNgI4#0r1ZYBrWYsy^OLX{hbsj0whhylYhpNvf zkvBG}qOAePWn$HRR`CWy6+e-*lH33N`^!ktp}m#iNM{ow#pLLy#cZ%%T(L2Ibkqoh zFSK3u9`|+_+X&#sTmf7SJ}zz@2{yAk)B%!0u>N2BQkt9}qr$%!4I&-&!tR(Qf9`!F z8YOMO*4Y(KsQL0Gx4OEz^I*fl;eK%g3TxBfY13yMP#WX9xB(Co;>tPut`HZ8^)OG= zDnO?3@ywq1BS~618V}9cMo{m0N91Uj3fpRGnTv;5>g>>a{p;ekHYSB;mL8$#_m=}hhv25rJ;BslNyKWA-vfz zh^3yhEoTDVa1mY`qvQG*<`{au6!nhp-_cG$7}WvhE>m%irWdMu2uqzp)l`1IJ>Bo^ zpPRG>>1xCa`d2r4R8J3>pH8B2zXRxx?s47>YCMU)Jiaf_8aflQ2FQ$`8%^=LXq2ge zXL9P7wRzAJFQjG>{?HgrxRZIy%d5*hOyy$Ob3kN0#F5T4Hx;{eg^H8J6Q(7LBSqaO zaiotA4=AGU?o{z>FJ;XRg~A?T%B{yS6yeSy+&l{7*T!u{w68fH(&SN4Bw;l70qw9l ziGXVCM8{)tT~1E@<{L18=2bx?YEGO*jH`Kj43-OR{Aj?jsb`RXZlQDJl4ZD`nC-GP z<5QZcctRMO=JkDwebchX5OzqqI+x-NG#5bmnx9T-sq_#)5CeMJM%=+CW!0W5*;3A9 zb>?&_6vvfW?*bcncQ%8$PDH}wN7`$fQ*KqEN^g{8s>K*jo&?0E`fW$d$;f&vzVTch z0Q};5<>i;S$HsnBo@F($mQrUp+jYy=LDuSepWQh4ZHSx1+Dz zr@k`n^NBflkV2wP36?Ovr7Kg>{ z{t(9&j>A;3WJthy7RSn2)gQ0dwk_;jXMSBqL25^2^D@u>p+6Z1H3m->htFk+bZs20 z0M0@7UNZ$Zt42H^qK(GFB%T29Eq<`R1PH!n!(ojJ0G<&!D?vy0D}Zp`wot)j`nA0b zW@you_kMofW)JYjOzL}H&-iRZ}LS)Ax0H&?+Ux=1+`SpVb z!hww<05BM<^>)=RN|@Ud+0V;KEkE7OQA|us^amuGC)yO7Z$PcZd89O>U}HraDs1V^ zR4Y1|^2bips)2IJmrarP|I~j8lCs#^UdkZCz_^Yll|9z<@f4*}08fB4VHecxP3rwV zQ3@g7G5nsFZnVdPbV?fSEWj00@c@b;?gX$%%zb9h6eM8JU4hiU&AHWYwongk1QYz{ zb`Ak0=?7rc&kq&Zg9U4g)NMW=TwzioNxx6Yp%^rAG!shyqbs?p(sB3$NeIMFzUT(X zT61&f0g(zMj$crZzP?Dcuq8>4q-B>{{Jk|dM5GUO#O6qVRs%SpttX=C6hKD-1H=)) zH6j5MFsv66bJYHU^Z_6qA@Xa5EgGB@e$SACtOWo!K=U^Q*rbvM>1o`b1}O3XJZ0zP zpny9C11@o&&TR{Qm(wS<7Vr literal 0 HcmV?d00001 diff --git a/tizen/src/ui/resource/wearable-320x320-1btn/default_180_p.png b/tizen/src/ui/resource/wearable-320x320-1btn/default_180_p.png new file mode 100644 index 0000000000000000000000000000000000000000..871720d0f353ae6344a6b0d442fb0c9736edd272 GIT binary patch literal 15360 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 z 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 #565Aw6>#hlF(O2W%nGP;wn}(jk^9ogPZG) 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 literal 0 HcmV?d00001 diff --git a/tizen/src/ui/resource/wearable-320x320-1btn/default_L90.png b/tizen/src/ui/resource/wearable-320x320-1btn/default_L90.png new file mode 100644 index 0000000000000000000000000000000000000000..e7f089b7a7cf6edfaef3a20a256cae73903e24eb GIT binary patch literal 16102 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 literal 0 HcmV?d00001 diff --git a/tizen/src/ui/resource/wearable-320x320-1btn/default_L90_p.png b/tizen/src/ui/resource/wearable-320x320-1btn/default_L90_p.png new file mode 100644 index 0000000000000000000000000000000000000000..4d00686f18071267d85ecb45c2caa9b3400e4240 GIT binary patch literal 15978 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 literal 0 HcmV?d00001 diff --git a/tizen/src/ui/resource/wearable-320x320-1btn/default_R90_p.png b/tizen/src/ui/resource/wearable-320x320-1btn/default_R90_p.png new file mode 100644 index 0000000000000000000000000000000000000000..c5b5e6d4226c9ea6408bb61d13f33d302c79398e GIT binary patch literal 15966 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 + * Sangho Park + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#include +#include + +#include "skinbezelitem.h" + +SkinBezelItem::SkinBezelItem(QImage bezelImg, QGraphicsItem *parent) : + QGraphicsPixmapItem(QPixmap::fromImage(bezelImg), parent) +{ + keyHandling = false; +} + +void SkinBezelItem::setKeyHandling(bool doing) +{ + keyHandling = doing; +} + +bool SkinBezelItem::isKeyHandling() +{ + return keyHandling; +} + +SkinBezelItem::~SkinBezelItem() +{ + qDebug("destroy bezel item"); +} diff --git a/tizen/src/ui/skinbezelitem.h b/tizen/src/ui/skinbezelitem.h new file mode 100644 index 0000000..e8754f8 --- /dev/null +++ b/tizen/src/ui/skinbezelitem.h @@ -0,0 +1,50 @@ +/* + * Qt UI + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim + * Sangho Park + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#ifndef SKINBEZELITEM_H +#define SKINBEZELITEM_H + +#include + +class SkinBezelItem : public QGraphicsPixmapItem +{ +public: + SkinBezelItem(QImage bezelImg, QGraphicsItem *parent = 0); + ~SkinBezelItem(); + + void setKeyHandling(bool doing); + bool isKeyHandling(); + +protected: + +private: + bool keyHandling; +}; + +#endif // SKINBEZELITEM_H diff --git a/tizen/src/ui/skinkeyitem.cpp b/tizen/src/ui/skinkeyitem.cpp new file mode 100644 index 0000000..a658fdc --- /dev/null +++ b/tizen/src/ui/skinkeyitem.cpp @@ -0,0 +1,178 @@ +/* + * Qt UI + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim + * Sangho Park + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#include "skinkeyitem.h" + +SkinKeyItem::SkinKeyItem(QImage pressedImg, HardwareKey *key, SkinBezelItem *parent) : + QGraphicsRectItem(key->region, (QGraphicsItem *)parent) +{ + this->bezelParent = parent; + this->pressedImg = pressedImg; + this->key = key; + isPressed = false; + hoverColor = Qt::white; // TODO: + pen.setColor(Qt::transparent); + + longPressTimer = new QTimer(); + longPressTimer->setInterval(2 * 1000); + longPressTimer->setSingleShot(true); + connect(longPressTimer, SIGNAL(timeout()), this, SLOT(longPressDetected())); + + setToolTip("" + + key->tooltip + ""); + + setAcceptHoverEvents(true); +} + +void SkinKeyItem::mousePressEvent(QGraphicsSceneMouseEvent *event) +{ + Q_UNUSED(event) + + isPressed = true; + bezelParent->setKeyHandling(true); + pen.setColor(Qt::transparent); + + update(); + + /* check long press key */ + if (key->keycode == LONGPRESS_KEYCODE) { + longPressTimer->start(); + return; + } + qDebug("key pressed : %s", key->name.toLocal8Bit().data()); + + do_hw_key_event(KEY_PRESSED, key->keycode); +} + +void SkinKeyItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) +{ + Q_UNUSED(event) + int keyCode = 0; + isPressed = false; + bezelParent->setKeyHandling(false); + + update(); + + if (key->keycode == LONGPRESS_KEYCODE) { + if (longPressTimer->remainingTime() <= 0) { + /* long press key */ + if (key->name.compare("KEY_RETURN", Qt::CaseInsensitive) == 0) { + qDebug("key released : KEY_EXIT"); + keyCode = 174; + } else if (key->name.compare("KEY_YELLOW", Qt::CaseInsensitive) == 0) { + qDebug("key released : KEY_MENU"); + keyCode = 125; + } else if (key->name.compare("KEY_CYAN", Qt::CaseInsensitive) == 0) { + qDebug("key released : KEY_INFO"); + keyCode = 188; + } + do_hw_key_event(KEY_RELEASED, keyCode); + return; + } else { + /* short press key */ + longPressTimer->stop(); + if (key->name.compare("KEY_RETURN", Qt::CaseInsensitive) == 0) { + keyCode = 1; + } else if (key->name.compare("KEY_YELLOW", Qt::CaseInsensitive) == 0) { + keyCode = 61; + } else if (key->name.compare("KEY_CYAN", Qt::CaseInsensitive) == 0) { + keyCode = 62; + } + qDebug("key pressed : %s", key->name.toLocal8Bit().data()); + do_hw_key_event(KEY_PRESSED, keyCode); + } + } else { + keyCode = key->keycode; + } + + qDebug("key released : %s", key->name.toLocal8Bit().data()); + do_hw_key_event(KEY_RELEASED, keyCode); +} + +void SkinKeyItem::hoverEnterEvent(QGraphicsSceneHoverEvent *event) +{ + Q_UNUSED(event) + //qDebug("key entered"); + + pen.setColor(hoverColor); + + update(); +} + +void SkinKeyItem::hoverLeaveEvent(QGraphicsSceneHoverEvent *event) +{ + Q_UNUSED(event) + //qDebug("key leaved"); + + pen.setColor(Qt::transparent); + + update(); +} + +void SkinKeyItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) +{ + Q_UNUSED(option) + Q_UNUSED(widget) + + if (pen.color() != Qt::transparent) { + painter->setPen(pen); + painter->drawRect(rect()); + } + + if (isPressed == true) { + painter->drawImage(rect().x(), rect().y(), pressedImg); + } +} + +void SkinKeyItem::longPressDetected() +{ + int keyCode = 0; + + qDebug("long press detected"); + if (key->name.compare("KEY_RETURN", Qt::CaseInsensitive) == 0) { + qDebug("key pressed : KEY_EXIT"); + keyCode = 174; + } else if (key->name.compare("KEY_YELLOW", Qt::CaseInsensitive) == 0) { + qDebug("key pressed : KEY_MENU"); + keyCode = 125; + } else if (key->name.compare("KEY_CYAN", Qt::CaseInsensitive) == 0) { + qDebug("key pressed : KEY_INFO"); + keyCode = 188; + } + do_hw_key_event(KEY_PRESSED, keyCode); +} + +SkinKeyItem::~SkinKeyItem() +{ + if (longPressTimer) { + delete longPressTimer; + longPressTimer = NULL; + } + //qDebug("destory key item"); +} diff --git a/tizen/src/ui/skinkeyitem.h b/tizen/src/ui/skinkeyitem.h new file mode 100644 index 0000000..ce311b9 --- /dev/null +++ b/tizen/src/ui/skinkeyitem.h @@ -0,0 +1,80 @@ +/* + * Qt UI + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim + * Sangho Park + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#ifndef SKINKEYITEM_H +#define SKINKEYITEM_H + +#include +#include +#include + +#include "skinbezelitem.h" +#include "hardwarekey.h" + +extern "C" { +#include "skin/maruskin_operation.h" +#include "emul_state.h" +} + +#define LONGPRESS_KEYCODE (-999) + +class SkinKeyItem : public QObject, public QGraphicsRectItem +{ + Q_OBJECT + +public: + SkinKeyItem(QImage pressedImg, HardwareKey *key, SkinBezelItem *parent = 0); + ~SkinKeyItem(); + + HardwareKey *key; + QImage pressedImg; + QTimer *longPressTimer; + +signals: + +public slots: + void longPressDetected(); + +protected: + void mousePressEvent(QGraphicsSceneMouseEvent *event); + void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); + void hoverEnterEvent(QGraphicsSceneHoverEvent *event); + void hoverLeaveEvent(QGraphicsSceneHoverEvent *event); + + void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget); + +private: + SkinBezelItem *bezelParent; + bool isPressed; + QColor hoverColor; + QPen pen; + QBrush brush; +}; + +#endif // SKINKEYITEM_H diff --git a/tizen/src/ui/skinview.cpp b/tizen/src/ui/skinview.cpp new file mode 100644 index 0000000..c06f756 --- /dev/null +++ b/tizen/src/ui/skinview.cpp @@ -0,0 +1,163 @@ +/* + * Qt UI + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim + * Sangho Park + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#include + +#include "skinview.h" +#include "mainwindow.h" +#include "skinkeyitem.h" + +SkinView::SkinView(QGraphicsScene *scene, QWidget *parent) : + QGraphicsView(scene, parent) +{ + setStyleSheet("border-style: none"); + + setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + setAlignment(Qt::AlignLeft | Qt::AlignTop); + + grabWinPos = QPoint(-1, -1); + grabPos = QPoint(-1, -1); + + createItems(); + + kbd = new KeyboardHelper(); +} + +void SkinView::createItems() +{ + MainWindow *win = ((MainWindow *)this->parent()); + MainForm *form = win->uiInfo->getMainForm(); + + /* bezel */ + SkinBezelItem *bezelItem = new SkinBezelItem(form->skinImg[MainForm::normal]); + scene()->addItem(bezelItem); + + /* HW keys */ + QList keyList = form->keyList; + + HardwareKey *hwKey = NULL; + for (int i = 0; i < keyList.count(); i++) { + hwKey = keyList.at(i); + if (hwKey != NULL) { + new SkinKeyItem(form->skinImg[MainForm::pressed].copy(hwKey->region), + hwKey, bezelItem); + } + } +} + +void SkinView::rotate() +{ + scene()->clear(); + createItems(); + + adjustSize(); +} + +void SkinView::resizeEvent(QResizeEvent *event) +{ + Q_UNUSED(event) + + qDebug("resize skin view"); + + MainWindow *win = ((MainWindow *)this->parent()); + + /* geometry */ + const int width = win->uiInfo->getUiSize().width(); + const int height = win->uiInfo->getUiSize().height(); + setGeometry(0, 0, width, height); + + /* scaling */ + const qreal sx = win->getUIState()->getScaleFactor(); + const qreal sy = win->getUIState()->getScaleFactor(); + QTransform transform(sx, 0, 0, 0, sy, 0, 0, 0, 1); + setTransform(transform); + + //QGraphicsView::resizeEvent(event); +} + +void SkinView::mousePressEvent(QMouseEvent *event) +{ + //qDebug("pressed %dx%d", event->x(), event->y()); + + if (event->button() == Qt::LeftButton) { + //qDebug("grab"); + + QWidget *win = ((QWidget *) this->parent()); + grabWinPos = win->pos(); + grabPos = event->globalPos(); + } + + QGraphicsView::mousePressEvent(event); +} + +void SkinView::mouseReleaseEvent(QMouseEvent *event) +{ + //qDebug("released %dx%d", event->x(), event->y()); + + if (event->button() == Qt::LeftButton) { + //qDebug("unloose"); + + grabPos = QPoint(-1, -1); + } + + QGraphicsView::mouseReleaseEvent(event); +} + +void SkinView::mouseMoveEvent(QMouseEvent *event) +{ + QWidget *win = ((QWidget *)this->parent()); + + if (grabPos != QPoint(-1, -1)) { + win->move(grabWinPos + (event->globalPos() - grabPos)); + } + + QGraphicsView::mouseMoveEvent(event); +} + +void SkinView::focusOutEvent(QFocusEvent *event) +{ + qDebug() << "focus out!"; + this->kbd->autoKeyRelease(); +} + +void SkinView::keyPressEvent(QKeyEvent *event) +{ + this->kbd->keyPressed(event); +} + +void SkinView::keyReleaseEvent(QKeyEvent *event) +{ + this->kbd->keyReleased(event); +} + +SkinView::~SkinView() +{ + qDebug("destroy skin view"); +} diff --git a/tizen/src/ui/skinview.h b/tizen/src/ui/skinview.h new file mode 100644 index 0000000..abbdc42 --- /dev/null +++ b/tizen/src/ui/skinview.h @@ -0,0 +1,63 @@ +/* + * Qt UI + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim + * Sangho Park + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#ifndef SKINVIEW_H +#define SKINVIEW_H + +#include + +#include "keyboardhelper.h" + +class SkinView : public QGraphicsView +{ +public: + SkinView(QGraphicsScene *scene, QWidget *parent = 0); + ~SkinView(); + + void rotate(); + +protected: + void resizeEvent(QResizeEvent *event); + + void mousePressEvent(QMouseEvent *event); + void mouseReleaseEvent(QMouseEvent *event); + void mouseMoveEvent(QMouseEvent *event); + void keyPressEvent(QKeyEvent *event); + void keyReleaseEvent(QKeyEvent *event); + void focusOutEvent(QFocusEvent *event); + + QPoint grabWinPos; + QPoint grabPos; + KeyboardHelper *kbd; + +private: + void createItems(); +}; + +#endif // SKINVIEW_H diff --git a/tizen/src/ui/uiinformation.cpp b/tizen/src/ui/uiinformation.cpp new file mode 100644 index 0000000..0b7e878 --- /dev/null +++ b/tizen/src/ui/uiinformation.cpp @@ -0,0 +1,168 @@ +/* + * Qt UI + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim + * Sangho Park + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#include "uiinformation.h" + +UIInformation::UIInformation() : + resolution(0, 0), basePort(0) +{ + vmDataPath = "./"; + skinPath = "./"; +} + +MainForm *UIInformation::getMainForm() +{ + int index = uiState.getMainFormIndex(); + + if (index > (mainFormList.count() - 1) || index < 0) { + qWarning("invalid form found"); + + uiState.mainFormAngle = 0; + } + + return mainFormList.at(index); +} + +ControllerForm *UIInformation::getConForm() +{ + int index = uiState.conState.getConFormIndex(); + + if (index > (conFormList.count() - 1) || index < 0) { + qWarning("invalid form found"); + + uiState.conState.conFormIndex = 0; + } + + return conFormList.at(index); +} + +QSize UIInformation::getMainSize() +{ + MainForm *mainForm = getMainForm(); + if (mainForm == NULL) { + qWarning("main form is null"); + return QSize(0, 0); + } + + return mainForm->skinImg[MainForm::normal].size() * uiState.getScaleFactor(); +} + +QSize UIInformation::getConSize() +{ + ControllerForm *conForm = getConForm(); + if (conForm == NULL) { + qWarning("controller form is null"); + return QSize(0, 0); + } + + return conForm->conImg[ControllerForm::normal].size(); +} + +QSize UIInformation::getUiSize() +{ + QSize uiSize = getMainSize(); + + /* docking controller */ + if (uiState.conState.dockingCon != NULL) { + QSize conSize = getConSize(); + uiSize.setWidth(uiSize.width() + conSize.width()); + } + + return uiSize; +} + +QRegion UIInformation::getMainRegion() +{ + MainForm *mainForm = getMainForm(); + if (mainForm == NULL) { + qWarning("main form is null"); + return QRegion(0, 0, 100, 100); + } + + QImage *mainImage = &(mainForm->skinImg[MainForm::normal]); + QImage regionImage = mainImage->scaled( + mainImage->width() * uiState.getScaleFactor(), + mainImage->height() * uiState.getScaleFactor()).createAlphaMask(); + + return QRegion(QBitmap::fromImage(regionImage)); +} + +QRegion UIInformation::getConRegion() +{ + ControllerForm *conForm = getConForm(); + if (conForm == NULL) { + qWarning("controller form is null"); + return QRegion(0, 0, 0, 0); + } + + QImage *conImage = &(conForm->conImg[ControllerForm::normal]); + + return QRegion(QBitmap::fromImage(conImage->createAlphaMask())); +} + +QRegion UIInformation::getUiRegion() +{ + QRegion uiRegion = getMainRegion(); + + /* docking controller */ + DockingController *con = uiState.conState.dockingCon; + if (con != NULL) { + QRegion conRegion = getConRegion(); + + int vShift = 0; + if (getMainSize().height() > getConSize().height()) { + if (con->getDockPos() & Qt::AlignCenter) { + vShift = (getMainSize().height() / 2) + - (getConSize().height() / 2); + } else if (con->getDockPos() & Qt::AlignBottom) { + vShift = getMainSize().height() - getConSize().height(); + } + } + + conRegion.translate(getMainSize().width() + 1, vShift); + uiRegion = uiRegion.united(conRegion); + } + + return uiRegion; +} + +UIInformation::~UIInformation() +{ + qDebug("destroy UI info"); + + for (int i = 0; i < mainFormList.count(); i++) { + delete mainFormList.at(i); + } + mainFormList.clear(); + + for (int i = 0; i < conFormList.count(); i++) { + delete conFormList.at(i); + } + conFormList.clear(); +} diff --git a/tizen/src/ui/uiinformation.h b/tizen/src/ui/uiinformation.h new file mode 100644 index 0000000..14e7fa3 --- /dev/null +++ b/tizen/src/ui/uiinformation.h @@ -0,0 +1,68 @@ +/* + * Qt UI + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim + * Sangho Park + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#ifndef UIINFORMATION_H +#define UIINFORMATION_H + +#include + +#include "mainform.h" +#include "uistate.h" +#include "controllerform.h" + +class UIInformation +{ +public: + UIInformation(); + ~UIInformation(); + + QString vmName; + QSize resolution; + int basePort; + QString vmDataPath; + + QString skinPath; + QString skinName; + QList mainFormList; + QList conFormList; + QColor hoverColor; + + UIState uiState; /* runtime information */ + + MainForm *getMainForm(); /* current */ + ControllerForm *getConForm(); + QSize getMainSize(); + QSize getConSize(); + QSize getUiSize(); /* size included main, docking con */ + QRegion getMainRegion(); + QRegion getConRegion(); + QRegion getUiRegion(); /* size included main, docking con */ +}; + +#endif // UIINFORMATION_H diff --git a/tizen/src/ui/uistate.cpp b/tizen/src/ui/uistate.cpp new file mode 100644 index 0000000..938d7c8 --- /dev/null +++ b/tizen/src/ui/uistate.cpp @@ -0,0 +1,93 @@ +/* + * Qt UI + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim + * Sangho Park + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#include "uistate.h" + +UIState::UIState() : + mainFormAngle(0), mainFormScale(100) +{ + onTop = false; + conState.conFormIndex = 0; + conState.dockingCon = NULL; + conState.floatingCon = NULL; + conState.recentlyDockPos = -1; + conState.recentlyFloatPos = QPoint(-1, -1); +} + +int UIState::getMainFormIndex(int angle) +{ + // TODO: map + + int index = 0; + + switch(angle) { + case 90: /* Reverse Landscape */ + index = 3; + break; + case 180: /* Reverse Portrait */ + index = 2; + break; + case 270: /* Landscape */ + index = 1; + break; + case 0: + default: + index = 0; + break; + } + + return index; +} + +int UIState::getMainFormIndex() +{ + return getMainFormIndex(mainFormAngle); +} + +qreal UIState::getScaleFactor(int scale) +{ + return ((qreal)scale) / 100; +} + +qreal UIState::getScaleFactor() +{ + return getScaleFactor(this->mainFormScale); +} + +void UIState::setOnTop(bool on) +{ + qDebug("set on top : %d", on); + + onTop = on; +} + +bool UIState::isOnTop() +{ + return onTop; +} diff --git a/tizen/src/ui/uistate.h b/tizen/src/ui/uistate.h new file mode 100644 index 0000000..392881b --- /dev/null +++ b/tizen/src/ui/uistate.h @@ -0,0 +1,72 @@ +/* + * Qt UI + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim + * Sangho Park + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#ifndef UISTATE_H +#define UISTATE_H + +#include "dockingcontroller.h" +#include "floatingcontroller.h" + +class ControllerState +{ +public: + inline int getConFormIndex() { + return conFormIndex; + } + + int conFormIndex; + DockingController *dockingCon; + FloatingController *floatingCon; + int recentlyDockPos; + QPoint recentlyFloatPos; +}; + +class UIState +{ +public: + UIState(); + + int getMainFormIndex(int angle); + int getMainFormIndex(); /* current */ + qreal getScaleFactor(int scale); + qreal getScaleFactor(); /* current */ + + void setOnTop(bool on); + bool isOnTop(); + + int mainFormAngle; + int mainFormScale; /* percentage */ + + ControllerState conState; + +private: + bool onTop; +}; + +#endif // UISTATE_H diff --git a/tizen/src/ui/uiutil.cpp b/tizen/src/ui/uiutil.cpp new file mode 100644 index 0000000..ab2959a --- /dev/null +++ b/tizen/src/ui/uiutil.cpp @@ -0,0 +1,41 @@ +/* + * Qt UI + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim + * Sangho Park + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#include "uiutil.h" + +UIUtil::UIUtil() +{ + /* do nothing */ +} + +QRect UIUtil::getHostScreenBounds() +{ + return QApplication::screens().at( + QApplication::desktop()->primaryScreen())->virtualGeometry(); +} diff --git a/tizen/src/ui/uiutil.h b/tizen/src/ui/uiutil.h new file mode 100644 index 0000000..b7e20d0 --- /dev/null +++ b/tizen/src/ui/uiutil.h @@ -0,0 +1,46 @@ +/* + * Qt UI + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim + * Sangho Park + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#ifndef UIUTIL_H +#define UIUTIL_H + +#include +#include +#include +#include + +class UIUtil +{ +public: + UIUtil(); + + static QRect getHostScreenBounds(); +}; + +#endif // UIUTIL_H diff --git a/tizen/src/ui/xml/Makefile.objs b/tizen/src/ui/xml/Makefile.objs new file mode 100644 index 0000000..3b999b8 --- /dev/null +++ b/tizen/src/ui/xml/Makefile.objs @@ -0,0 +1,26 @@ +obj-$(CONFIG_QT) += emulatoruitype.o moc_emulatoruitype.o +obj-$(CONFIG_QT) += formlisttype.o moc_formlisttype.o +obj-$(CONFIG_QT) += formtype.o moc_formtype.o +obj-$(CONFIG_QT) += hardwarekeytype.o moc_hardwarekeytype.o +obj-$(CONFIG_QT) += regiontype.o moc_regiontype.o +obj-$(CONFIG_QT) += keylisttype.o moc_keylisttype.o + +$(obj)/moc_emulatoruitype.o: $(obj)/moc_emulatoruitype.cpp +$(obj)/moc_emulatoruitype.cpp: $(obj)/emulatoruitype.h + moc $< -o $@ +$(obj)/moc_formlisttype.o: $(obj)/moc_formlisttype.cpp +$(obj)/moc_formlisttype.cpp: $(obj)/formlisttype.h + moc $< -o $@ +$(obj)/moc_formtype.o: $(obj)/moc_formtype.cpp +$(obj)/moc_formtype.cpp: $(obj)/formtype.h + moc $< -o $@ +$(obj)/moc_hardwarekeytype.o: $(obj)/moc_hardwarekeytype.cpp +$(obj)/moc_hardwarekeytype.cpp: $(obj)/hardwarekeytype.h + moc $< -o $@ +$(obj)/moc_regiontype.o: $(obj)/moc_regiontype.cpp +$(obj)/moc_regiontype.cpp: $(obj)/regiontype.h + moc $< -o $@ +$(obj)/moc_keylisttype.o: $(obj)/moc_keylisttype.cpp +$(obj)/moc_keylisttype.cpp: $(obj)/keylisttype.h + moc $< -o $@ + diff --git a/tizen/src/ui/xml/emulatoruitype.cpp b/tizen/src/ui/xml/emulatoruitype.cpp new file mode 100644 index 0000000..cb81765 --- /dev/null +++ b/tizen/src/ui/xml/emulatoruitype.cpp @@ -0,0 +1,46 @@ +/* + * Qt UI + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim + * Sangho Park + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#include "emulatoruitype.h" + +EmulatorUIType::EmulatorUIType(QObject *parent) : + QObject(parent) +{ + /* do nothing */ +} + +FormListType *EmulatorUIType::formListType() +{ + return formList; +} + +void EmulatorUIType::setFormListType(FormListType *formList) +{ + this->formList = formList; +} diff --git a/tizen/src/ui/xml/emulatoruitype.h b/tizen/src/ui/xml/emulatoruitype.h new file mode 100644 index 0000000..e5e4dd0 --- /dev/null +++ b/tizen/src/ui/xml/emulatoruitype.h @@ -0,0 +1,54 @@ +/* + * Qt UI + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim + * Sangho Park + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#ifndef EMULATORUITYPE_H +#define EMULATORUITYPE_H + +#include + +#include "formlisttype.h" + +class EmulatorUIType : public QObject +{ + Q_OBJECT + Q_PROPERTY(FormListType *formListType READ formListType WRITE setFormListType) + Q_CLASSINFO("DefaultProperty", "formListType") + +public: + explicit EmulatorUIType(QObject *parent = 0); + + FormListType *formListType(); + +private: + void setFormListType(FormListType *formList); + + FormListType *formList; +}; + +#endif // EMULATORUITYPE_H diff --git a/tizen/src/ui/xml/formlisttype.cpp b/tizen/src/ui/xml/formlisttype.cpp new file mode 100644 index 0000000..f2b7d90 --- /dev/null +++ b/tizen/src/ui/xml/formlisttype.cpp @@ -0,0 +1,46 @@ +/* + * Qt UI + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim + * Sangho Park + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#include "formlisttype.h" + +FormListType::FormListType(QObject *parent) : + QObject(parent) +{ + /* do nothing */ +} + +QQmlListProperty FormListType::formList() +{ + return QQmlListProperty(this, list); +} + +QList *FormListType::getFormList() +{ + return &list; +} diff --git a/tizen/src/ui/xml/formlisttype.h b/tizen/src/ui/xml/formlisttype.h new file mode 100644 index 0000000..d94a47e --- /dev/null +++ b/tizen/src/ui/xml/formlisttype.h @@ -0,0 +1,55 @@ +/* + * Qt UI + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim + * Sangho Park + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#ifndef FORMLISTTYPE_H +#define FORMLISTTYPE_H + +#include +#include + +#include "formtype.h" + +class FormListType : public QObject +{ + Q_OBJECT + Q_PROPERTY(QQmlListProperty formList READ formList) + Q_CLASSINFO("DefaultProperty", "formList") + +public: + explicit FormListType(QObject *parent = 0); + + QList *getFormList(); + +private: + QQmlListProperty formList(); + + QList list; +}; + +#endif // FORMLISTTYPE_H diff --git a/tizen/src/ui/xml/formtype.cpp b/tizen/src/ui/xml/formtype.cpp new file mode 100644 index 0000000..0f73981 --- /dev/null +++ b/tizen/src/ui/xml/formtype.cpp @@ -0,0 +1,85 @@ +/* + * Qt UI + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim + * Sangho Park + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#include "formtype.h" + +FormType::FormType(QObject *parent) : + QObject(parent), keyList(NULL) +{ + /* do nothing */ +} + +RegionType *FormType::displayRegionType() +{ + return displayRegion; +} + +void FormType::setDisplayRegionType(RegionType *displayRegion) +{ + this->displayRegion = displayRegion; +} + +QString FormType::mainImageName() const +{ + return mainImgName; +} + +void FormType::setMainImageName(QString imgFileName) +{ + mainImgName = imgFileName; +} + +QString FormType::pressedImageName() const +{ + return pressedImgName; +} + +void FormType::setPressedImageName(QString imgFileName) +{ + pressedImgName = imgFileName; +} + +KeyListType *FormType::keyListType() +{ + return keyList; +} + +void FormType::setKeyListType(KeyListType *keyList) +{ + this->keyList = keyList; +} + +QRect FormType::getDisplayRegion() +{ + if (displayRegion == NULL) { + return QRect(0, 0, 0, 0); + } + + return displayRegion->region(); +} diff --git a/tizen/src/ui/xml/formtype.h b/tizen/src/ui/xml/formtype.h new file mode 100644 index 0000000..c9eec66 --- /dev/null +++ b/tizen/src/ui/xml/formtype.h @@ -0,0 +1,69 @@ +/* + * Qt UI + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim + * Sangho Park + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#ifndef FORMTYPE_H +#define FORMTYPE_H + +#include + +#include "keylisttype.h" +#include "regiontype.h" + +class FormType : public QObject +{ + Q_OBJECT + Q_PROPERTY(RegionType *display READ displayRegionType WRITE setDisplayRegionType) + Q_PROPERTY(QString mainImage READ mainImageName WRITE setMainImageName) + Q_PROPERTY(QString pressedImage READ pressedImageName WRITE setPressedImageName) + Q_PROPERTY(KeyListType *keyListType READ keyListType WRITE setKeyListType) + Q_CLASSINFO("DefaultProperty", "keyListType") + +public: + explicit FormType(QObject *parent = 0); + + QString mainImageName() const; + QString pressedImageName() const; + KeyListType *keyListType(); + + QRect getDisplayRegion(); + +private: + RegionType *displayRegionType(); + void setDisplayRegionType(RegionType *displayRegion); + void setMainImageName(QString imgFileName); + void setPressedImageName(QString imgFileName); + void setKeyListType(KeyListType *keyList); + + RegionType *displayRegion; + QString mainImgName; + QString pressedImgName; + KeyListType *keyList; +}; + +#endif // FORMTYPE_H diff --git a/tizen/src/ui/xml/hardwarekeytype.cpp b/tizen/src/ui/xml/hardwarekeytype.cpp new file mode 100644 index 0000000..4def9c8 --- /dev/null +++ b/tizen/src/ui/xml/hardwarekeytype.cpp @@ -0,0 +1,75 @@ +/* + * Qt UI + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim + * Sangho Park + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#include "hardwarekeytype.h" + +HardwareKeyType::HardwareKeyType(QObject *parent) : + QObject(parent) +{ + /* do nothing */ +} + +int HardwareKeyType::keycode() const +{ + return code; +} + +void HardwareKeyType::setKeycode(int keycode) +{ + code = keycode; +} + +QString HardwareKeyType::tooltip() const +{ + return tip; +} + +void HardwareKeyType::setTooltip(const QString &tooltip) +{ + tip = tooltip; +} + +RegionType *HardwareKeyType::keyRegionType() +{ + return keyRegion; +} + +void HardwareKeyType::setKeyRegionType(RegionType *keyRegion) +{ + this->keyRegion = keyRegion; +} + +QRect HardwareKeyType::region() +{ + if (keyRegion == NULL) { + return QRect(0, 0, 0, 0); + } + + return keyRegion->region(); +} diff --git a/tizen/src/ui/xml/hardwarekeytype.h b/tizen/src/ui/xml/hardwarekeytype.h new file mode 100644 index 0000000..f4ef8da --- /dev/null +++ b/tizen/src/ui/xml/hardwarekeytype.h @@ -0,0 +1,64 @@ +/* + * Qt UI + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim + * Sangho Park + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#ifndef HARDWAREKEYTYPE_H +#define HARDWAREKEYTYPE_H + +#include + +#include "regiontype.h" + +class HardwareKeyType : public QObject +{ + Q_OBJECT + Q_PROPERTY(int keycode READ keycode WRITE setKeycode) + Q_PROPERTY(QString tooltip READ tooltip WRITE setTooltip) + Q_PROPERTY(RegionType *keyRegionType READ keyRegionType WRITE setKeyRegionType) + Q_CLASSINFO("DefaultProperty", "keyRegionType") + +public: + explicit HardwareKeyType(QObject *parent = 0); + + int keycode() const; + QString tooltip() const; + + QRect region(); + +private: + void setKeycode(int keycode); + void setTooltip(const QString &tooltip); + RegionType *keyRegionType(); + void setKeyRegionType(RegionType *regionType); + + int code; + QString tip; + RegionType *keyRegion; +}; + +#endif // HARDWAREKEYTYPE_H diff --git a/tizen/src/ui/xml/keylisttype.cpp b/tizen/src/ui/xml/keylisttype.cpp new file mode 100644 index 0000000..6280cd1 --- /dev/null +++ b/tizen/src/ui/xml/keylisttype.cpp @@ -0,0 +1,47 @@ +/* + * Qt UI + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim + * Sangho Park + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#include "keylisttype.h" + +KeyListType::KeyListType(QObject *parent) : + QObject(parent) +{ + /* do nothing */ +} + +QQmlListProperty KeyListType::keyListType() +{ + return QQmlListProperty(this, list); +} + +QList *KeyListType::getKeyList() +{ + return &list; +} + diff --git a/tizen/src/ui/xml/keylisttype.h b/tizen/src/ui/xml/keylisttype.h new file mode 100644 index 0000000..5427f50 --- /dev/null +++ b/tizen/src/ui/xml/keylisttype.h @@ -0,0 +1,55 @@ +/* + * Qt UI + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim + * Sangho Park + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#ifndef KEYLISTTYPE_H +#define KEYLISTTYPE_H + +#include +#include + +#include "hardwarekeytype.h" + +class KeyListType : public QObject +{ + Q_OBJECT + Q_PROPERTY(QQmlListProperty keyListType READ keyListType) + Q_CLASSINFO("DefaultProperty", "keyListType") + +public: + explicit KeyListType(QObject *parent = 0); + + QList *getKeyList(); + +private: + QQmlListProperty keyListType(); + + QList list; +}; + +#endif // KEYLISTTYPE_H diff --git a/tizen/src/ui/xml/regiontype.cpp b/tizen/src/ui/xml/regiontype.cpp new file mode 100644 index 0000000..ac370dc --- /dev/null +++ b/tizen/src/ui/xml/regiontype.cpp @@ -0,0 +1,81 @@ +/* + * Qt UI + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim + * Sangho Park + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#include "regiontype.h" + +RegionType::RegionType(QObject *parent) : + QObject(parent), x(0), y(0), w(0), h(0) +{ + /* do nothing */ +} + +int RegionType::left() +{ + return x; +} + +void RegionType::setLeft(int left) +{ + x = left; +} + +int RegionType::top() +{ + return y; +} + +void RegionType::setTop(int top) +{ + y = top; +} + +int RegionType::width() +{ + return w; +} + +void RegionType::setWidth(int width) +{ + w = width; +} + +int RegionType::height() +{ + return h; +} + +void RegionType::setHeight(int height) +{ + h = height; +} + +QRect RegionType::region() const +{ + return QRect(x, y, w, h); +} diff --git a/tizen/src/ui/xml/regiontype.h b/tizen/src/ui/xml/regiontype.h new file mode 100644 index 0000000..e0885ab --- /dev/null +++ b/tizen/src/ui/xml/regiontype.h @@ -0,0 +1,66 @@ +/* + * Qt UI + * + * Copyright (C) 2014 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: + * GiWoong Kim + * Sangho Park + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Contributors: + * - S-Core Co., Ltd + * + */ + +#ifndef REGIONTYPE_H +#define REGIONTYPE_H + +#include +#include + +class RegionType : public QObject +{ + Q_OBJECT + Q_PROPERTY(int left READ left WRITE setLeft) + Q_PROPERTY(int top READ top WRITE setTop) + Q_PROPERTY(int width READ width WRITE setWidth) + Q_PROPERTY(int height READ height WRITE setHeight) + +public: + explicit RegionType(QObject *parent = 0); + + int left(); + int top(); + int width(); + int height(); + + QRect region() const; + +private: + void setLeft(int left); + void setTop(int top); + void setWidth(int width); + void setHeight(int height); + + int x; + int y; + int w; + int h; +}; + +#endif // REGIONTYPE_H diff --git a/tizen/src/util/Makefile.objs b/tizen/src/util/Makefile.objs index e9b3de0..286a422 100644 --- a/tizen/src/util/Makefile.objs +++ b/tizen/src/util/Makefile.objs @@ -1,3 +1,11 @@ +ifdef CONFIG_WIN32 +QEMU_CFLAGS += -I$(SRC_PATH)/hw/vigs/vigs_inc +endif + +ifdef CONFIG_DARWIN +QEMU_CFLAGS += -I$(SRC_PATH)/hw/vigs/vigs_inc +endif + # osutil LIBS += $(CURL_LIBS) obj-y += osutil.o diff --git a/tizen/src/util/check_gl_cgl.c b/tizen/src/util/check_gl_cgl.c index 379bab3..13c7573 100644 --- a/tizen/src/util/check_gl_cgl.c +++ b/tizen/src/util/check_gl_cgl.c @@ -75,7 +75,6 @@ struct gl_context *check_gl_context_create(struct gl_context *share_ctx, kCGLPFAAlphaSize, 8, kCGLPFADepthSize, 24, kCGLPFAStencilSize, 8, - kCGLPFANoRecovery, kCGLPFAPBuffer, 0 }; @@ -88,7 +87,6 @@ struct gl_context *check_gl_context_create(struct gl_context *share_ctx, kCGLPFAAlphaSize, 8, kCGLPFADepthSize, 24, kCGLPFAStencilSize, 8, - kCGLPFANoRecovery, kCGLPFAOpenGLProfile, kCGLOGLPVersion_3_2_Core, 0 }; diff --git a/vl.c b/vl.c index 1844efd..6cfce07 100644 --- a/vl.c +++ b/vl.c @@ -2198,13 +2198,26 @@ static DisplayType select_display(const char *p) exit(1); #endif #ifdef CONFIG_MARU -# ifdef CONFIG_SDL } else if (strstart(p, "maru_sdl", &opts)) { +# ifdef CONFIG_SDL display = DT_MARU_SDL; +# else + fprintf(stderr, "maru_sdl support is disabled\n"); + exit(1); # endif -# ifdef CONFIG_USE_SHM } else if (strstart(p, "maru_shm", &opts)) { +# ifdef CONFIG_USE_SHM display = DT_MARU_SHM; +# else + fprintf(stderr, "maru_shm is disabled\n"); + exit(1); +# endif + } else if (strstart(p, "maru_qt", &opts)) { +# ifdef CONFIG_QT + display = DT_MARU_QT; +# else + fprintf(stderr, "maru_qt is disabled\n"); + exit(1); # endif #endif /* CONFIG_MARU */ } else if (strstart(p, "none", &opts)) { @@ -3278,6 +3291,10 @@ int main(int argc, char **argv, char **envp) "'%s' option", slots_str ? "maxmem" : "slots"); exit(EXIT_FAILURE); } + +#ifdef CONFIG_MARU + set_emul_ram_size(optarg); +#endif break; } #ifdef CONFIG_TPM @@ -3471,6 +3488,10 @@ int main(int argc, char **argv, char **envp) qemu_opt_get(opts, "mount_tag")); qemu_opt_set(device, "mount_tag", qemu_opt_get(opts, "mount_tag")); + +#ifdef CONFIG_MARU + set_emul_file_sharing_path(qemu_opt_get(opts, "path")); +#endif break; } case QEMU_OPTION_virtfs_synth: { @@ -3596,6 +3617,9 @@ int main(int argc, char **argv, char **envp) case QEMU_OPTION_enable_yagl: #if defined(CONFIG_YAGL) enable_yagl = 1; +#ifdef CONFIG_MARU + set_emul_gpu_accel(true); +#endif #else fprintf(stderr, "YaGL openGLES passthrough support is disabled," " ignoring -enable-yagl\n"); @@ -3974,6 +3998,10 @@ int main(int argc, char **argv, char **envp) exit(1); } +#ifdef CONFIG_MARU + maru_display_early_init(display_type); +#endif + current_machine = MACHINE(object_new(object_class_get_name( OBJECT_CLASS(machine_class)))); object_property_add_child(object_get_root(), "machine", @@ -4166,6 +4194,8 @@ int main(int argc, char **argv, char **envp) display_type = DT_MARU_SDL; #elif defined(CONFIG_USE_SHM) display_type = DT_MARU_SHM; +#elif defined(CONFIG_QT) + display_type = DT_MARU_QT; #endif #elif defined(CONFIG_GTK) display_type = DT_GTK; @@ -4520,6 +4550,11 @@ int main(int argc, char **argv, char **envp) start_skin(); break; #endif +#if defined(CONFIG_QT) + case DT_MARU_QT: + maru_display_init(ds, display_type, full_screen); + break; +#endif #endif default: break; -- 2.7.4