From 381755e4686a08e766316aaf40e8fdfa202d48d4 Mon Sep 17 00:00:00 2001 From: zheng_wenlong Date: Fri, 29 Sep 2017 21:00:25 +0900 Subject: Add homescreen-2017 Add new homescreen-2017 with agl-service-windowmanaeger-2017 and agl-service-homescreen-2017. About this information see JIRA SPEC-871. [PatchSet2] Use aglwgt make package. Delete homescreensimulator and sampleapptimedate beacuse not use them. Change-Id: I402134d0386e76b2127ca95b9b0b48c1721b4086 Signed-off-by: zheng_wenlong --- homescreen/docs/homescreen_api.md | 186 +++++++++++++++++++++ homescreen/docs/index.md | 31 ++++ .../docs/pictures/api_getAllSurfacesOfProcess.png | Bin 0 -> 10485 bytes .../docs/pictures/api_getSurfaceStatus_1.png | Bin 0 -> 10168 bytes .../docs/pictures/api_getSurfaceStatus_2.png | Bin 0 -> 9794 bytes .../docs/pictures/api_getSurfaceStatus_3.png | Bin 0 -> 19030 bytes homescreen/docs/pictures/api_hardKeyPressed.png | Bin 0 -> 9241 bytes .../docs/pictures/api_renderSurfaceToArea.png | Bin 0 -> 9060 bytes .../pictures/api_renderSurfaceToAreaAllowed.png | Bin 0 -> 14910 bytes .../pictures/api_requestSurfaceIdToFullScreen.png | Bin 0 -> 10056 bytes .../docs/pictures/api_surfaceVisibilityChanged.png | Bin 0 -> 8882 bytes homescreen/docs/pictures/dashboard.png | Bin 0 -> 359145 bytes homescreen/docs/pictures/full/dashboard.png | Bin 0 -> 1055839 bytes .../docs/pictures/full/homescreen_applauncher.png | Bin 0 -> 1090490 bytes homescreen/docs/pictures/full/hvac.png | Bin 0 -> 921864 bytes homescreen/docs/pictures/full/phone.png | Bin 0 -> 936048 bytes homescreen/docs/pictures/full/settings.png | Bin 0 -> 863641 bytes .../docs/pictures/homescreen_applauncher.png | Bin 0 -> 399084 bytes homescreen/docs/pictures/hvac.png | Bin 0 -> 338097 bytes homescreen/docs/pictures/phone.png | Bin 0 -> 336318 bytes homescreen/docs/pictures/settings.png | Bin 0 -> 300437 bytes 21 files changed, 217 insertions(+) create mode 100644 homescreen/docs/homescreen_api.md create mode 100644 homescreen/docs/index.md create mode 100644 homescreen/docs/pictures/api_getAllSurfacesOfProcess.png create mode 100644 homescreen/docs/pictures/api_getSurfaceStatus_1.png create mode 100644 homescreen/docs/pictures/api_getSurfaceStatus_2.png create mode 100644 homescreen/docs/pictures/api_getSurfaceStatus_3.png create mode 100644 homescreen/docs/pictures/api_hardKeyPressed.png create mode 100644 homescreen/docs/pictures/api_renderSurfaceToArea.png create mode 100644 homescreen/docs/pictures/api_renderSurfaceToAreaAllowed.png create mode 100644 homescreen/docs/pictures/api_requestSurfaceIdToFullScreen.png create mode 100644 homescreen/docs/pictures/api_surfaceVisibilityChanged.png create mode 100644 homescreen/docs/pictures/dashboard.png create mode 100644 homescreen/docs/pictures/full/dashboard.png create mode 100644 homescreen/docs/pictures/full/homescreen_applauncher.png create mode 100644 homescreen/docs/pictures/full/hvac.png create mode 100644 homescreen/docs/pictures/full/phone.png create mode 100644 homescreen/docs/pictures/full/settings.png create mode 100644 homescreen/docs/pictures/homescreen_applauncher.png create mode 100644 homescreen/docs/pictures/hvac.png create mode 100644 homescreen/docs/pictures/phone.png create mode 100644 homescreen/docs/pictures/settings.png (limited to 'homescreen/docs') diff --git a/homescreen/docs/homescreen_api.md b/homescreen/docs/homescreen_api.md new file mode 100644 index 0000000..8f7b8f4 --- /dev/null +++ b/homescreen/docs/homescreen_api.md @@ -0,0 +1,186 @@ +# HomeScreen API +The HomeScreen app provides an own interface for some special use cases concerning the surfaces and user inputs. + +The interface is implemented as D-Bus interface. +This is the introspection, describing the interface: + +``` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +``` + +These interface will change during further development, so check back frequently. + +## User Input Events API calls + +### hardKeyPressed + +Use hardKeyPressed to inject hard key press events into the HomeScreen app. +This Interface call can be used by applications like the InputEventManager to inject hard keys into the HomeScreen application. + +#### Example + +if someone presses the Hard Key “NAV” on the target, this key may be injected using this interface to make the HomeScreen launch the navigation application. +Right now, only a few keys are defined (in inputevent.hpp): + +``` +namespace InputEvent { + typedef enum HardKey + { + HARDKEY_UNDEFINED, + HARDKEY_NAV, + HARDKEY_MEDIA + } eHardKey; +} +``` + +This will change in the future. + +![hardKeyPressed](pictures/api_hardKeyPressed.png) + +A “normal” application would not need to call this API. + +## Surface control API calls + +The normal use case when starting an application is: +The user presses a hard key or uses the app launcher to start an app. The app is then started and is shown full screen. +The org.agl.homescreen API provides some methods to get information about some status and some methods to show surfaces on the screen. + +### getSurfaceStatus + +A surface can be visible or invisible (please do not confuse “visible” and “visibility”). This function allows to request the current status. + +``` + + + + +``` + +Right now an application has to pull this information. +This is not optimal and will change in the future. There are two options: + + - The homescreen API will provide a signal that is emitted every time the visible status of surfaces changes. This would be way more efficient, because it would save time and avoid a re-occurring API call. __UPDATE:__ There is a D-Bus signal implemented in this API + - For Qt, there is already a patch available that provides this information as a base class property. See https://codereview.qt-project.org/#/c/176211/ This would be optimal for Qt widget applications. But not useful for other languages, e.g. Java. __UPDATE:__ This patch got reverted in AGL! + +#### Current implementation + +![getSurfaceStatus](pictures/api_getSurfaceStatus_1.png) + +#### Option 1 + +![getSurfaceStatus](pictures/api_getSurfaceStatus_2.png) + +#### Option 2 + +![getSurfaceStatus](pictures/api_getSurfaceStatus_3.png) + +### requestSurfaceIdToFullScreen + +This function will set the given surface to full screen. + +``` + + + +``` + +It will hide all other surfaces. + +![requestSurfaceIdToFullScreen](pictures/api_requestSurfaceIdToFullScreen.png) + +### getAllSurfacesOfProcess + +This returns all surfaces that are created by the given process ID. + +``` + + + + + +``` + +A process can create more than one surface. By default, the surface with the lowest surface ID is shown on the screen. If an application wants to know all surfaces that were created by an application, this method will provide them. + +![getAllSurfacesOfProcess](pictures/api_getAllSurfacesOfProcess.png) + +### renderSurfaceToAreaAllowed + +Before calling renderSurfaceToArea, an application can request, if it is allowed to render the surface to this area. This makes sense for an application that would begin to allocate resources to render. But if it is not allowed to render the surface, the application could avoid allocating the resources. + +``` + + + + + +``` + +The call will not affect the current setup, it will only request if it is allowed or not. + +![renderSurfaceToAreaAllowed](pictures/api_renderSurfaceToAreaAllowed.png) + +### renderSurfaceToArea + +By default, the HomeScreen application decides, where to render an applications surface. The concept of Layouts defines this. This API call can override the default behavior. An app can request to render a surface in a specific Layout Area. + +``` + + + + +``` + +The surface that was previously rendered in this Layout are will be hidden. + +![renderSurfaceToArea](pictures/api_renderSurfaceToArea.png) + +The homescreen interface functionality is not fully implemented, but the API is available. For example using the libhomescreen.so. + +### surfaceVisibilityChanged + +Whenever the visibility property of a surface changes, this signal is emitted. + +``` + + + + +``` + +Visibility here means visible. The name of the signal is from the Weston surface property “visibility”. +See here for reference: https://github.com/ntanibata/wayland-ivi-extension/blob/master/ivi-layermanagement-api/ilmCommon/include/ilm_types.h + +![surfaceVisibilityChanged](pictures/api_surfaceVisibilityChanged.png) diff --git a/homescreen/docs/index.md b/homescreen/docs/index.md new file mode 100644 index 0000000..4322255 --- /dev/null +++ b/homescreen/docs/index.md @@ -0,0 +1,31 @@ +# Welcome to your AGL system! +When booting up an AGL system, the first thing that your eyes will spot is this: + +![AGL HomeScreen Application Launcher](pictures/homescreen_applauncher.png) + +**The AGL HomeScreen!** + +Intended to be used with touch presses, the reference HMI provides access to all pre-installed AGL demo applications as well as in the future access to user installed apps. The list of demo apps contains some automotive applications like HVAC-control, Navigation or Dashboard, as well as some infotainment apps. Radio, Multimedia, Phone... +This applications are already available and were presented at CES 2017. + +## Here are some screenshots of the pre-installed demo applications: + +## HVAC + +![AGL HVAC](pictures/hvac.png) + +## Phone + +![AGL Phone](pictures/phone.png) + +## Dashboard + +![AGL Dashboard](pictures/dashboard.png) + +## Settings + +![AGL Settings](pictures/settings.png) + +#### Note: +* All current demos (including HomeScreen) are optimized for landscape full HD resolution (1080x1920). + diff --git a/homescreen/docs/pictures/api_getAllSurfacesOfProcess.png b/homescreen/docs/pictures/api_getAllSurfacesOfProcess.png new file mode 100644 index 0000000..5c862d7 Binary files /dev/null and b/homescreen/docs/pictures/api_getAllSurfacesOfProcess.png differ diff --git a/homescreen/docs/pictures/api_getSurfaceStatus_1.png b/homescreen/docs/pictures/api_getSurfaceStatus_1.png new file mode 100644 index 0000000..1e18fcf Binary files /dev/null and b/homescreen/docs/pictures/api_getSurfaceStatus_1.png differ diff --git a/homescreen/docs/pictures/api_getSurfaceStatus_2.png b/homescreen/docs/pictures/api_getSurfaceStatus_2.png new file mode 100644 index 0000000..e66d708 Binary files /dev/null and b/homescreen/docs/pictures/api_getSurfaceStatus_2.png differ diff --git a/homescreen/docs/pictures/api_getSurfaceStatus_3.png b/homescreen/docs/pictures/api_getSurfaceStatus_3.png new file mode 100644 index 0000000..50a3b10 Binary files /dev/null and b/homescreen/docs/pictures/api_getSurfaceStatus_3.png differ diff --git a/homescreen/docs/pictures/api_hardKeyPressed.png b/homescreen/docs/pictures/api_hardKeyPressed.png new file mode 100644 index 0000000..a8a3660 Binary files /dev/null and b/homescreen/docs/pictures/api_hardKeyPressed.png differ diff --git a/homescreen/docs/pictures/api_renderSurfaceToArea.png b/homescreen/docs/pictures/api_renderSurfaceToArea.png new file mode 100644 index 0000000..a61fc2f Binary files /dev/null and b/homescreen/docs/pictures/api_renderSurfaceToArea.png differ diff --git a/homescreen/docs/pictures/api_renderSurfaceToAreaAllowed.png b/homescreen/docs/pictures/api_renderSurfaceToAreaAllowed.png new file mode 100644 index 0000000..35dbbcf Binary files /dev/null and b/homescreen/docs/pictures/api_renderSurfaceToAreaAllowed.png differ diff --git a/homescreen/docs/pictures/api_requestSurfaceIdToFullScreen.png b/homescreen/docs/pictures/api_requestSurfaceIdToFullScreen.png new file mode 100644 index 0000000..6d2f712 Binary files /dev/null and b/homescreen/docs/pictures/api_requestSurfaceIdToFullScreen.png differ diff --git a/homescreen/docs/pictures/api_surfaceVisibilityChanged.png b/homescreen/docs/pictures/api_surfaceVisibilityChanged.png new file mode 100644 index 0000000..f519757 Binary files /dev/null and b/homescreen/docs/pictures/api_surfaceVisibilityChanged.png differ diff --git a/homescreen/docs/pictures/dashboard.png b/homescreen/docs/pictures/dashboard.png new file mode 100644 index 0000000..527386d Binary files /dev/null and b/homescreen/docs/pictures/dashboard.png differ diff --git a/homescreen/docs/pictures/full/dashboard.png b/homescreen/docs/pictures/full/dashboard.png new file mode 100644 index 0000000..e947734 Binary files /dev/null and b/homescreen/docs/pictures/full/dashboard.png differ diff --git a/homescreen/docs/pictures/full/homescreen_applauncher.png b/homescreen/docs/pictures/full/homescreen_applauncher.png new file mode 100644 index 0000000..b61884a Binary files /dev/null and b/homescreen/docs/pictures/full/homescreen_applauncher.png differ diff --git a/homescreen/docs/pictures/full/hvac.png b/homescreen/docs/pictures/full/hvac.png new file mode 100644 index 0000000..7e0399a Binary files /dev/null and b/homescreen/docs/pictures/full/hvac.png differ diff --git a/homescreen/docs/pictures/full/phone.png b/homescreen/docs/pictures/full/phone.png new file mode 100644 index 0000000..f4cc547 Binary files /dev/null and b/homescreen/docs/pictures/full/phone.png differ diff --git a/homescreen/docs/pictures/full/settings.png b/homescreen/docs/pictures/full/settings.png new file mode 100644 index 0000000..a115ef4 Binary files /dev/null and b/homescreen/docs/pictures/full/settings.png differ diff --git a/homescreen/docs/pictures/homescreen_applauncher.png b/homescreen/docs/pictures/homescreen_applauncher.png new file mode 100644 index 0000000..e168668 Binary files /dev/null and b/homescreen/docs/pictures/homescreen_applauncher.png differ diff --git a/homescreen/docs/pictures/hvac.png b/homescreen/docs/pictures/hvac.png new file mode 100644 index 0000000..f9a6030 Binary files /dev/null and b/homescreen/docs/pictures/hvac.png differ diff --git a/homescreen/docs/pictures/phone.png b/homescreen/docs/pictures/phone.png new file mode 100644 index 0000000..e087594 Binary files /dev/null and b/homescreen/docs/pictures/phone.png differ diff --git a/homescreen/docs/pictures/settings.png b/homescreen/docs/pictures/settings.png new file mode 100644 index 0000000..c92d835 Binary files /dev/null and b/homescreen/docs/pictures/settings.png differ -- cgit 1.2.3-korg