summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2019-01-29Migrate hmi-debug into utilKazumasa Mitsunari14-522/+357
Migrate hmi-debug into util for * simplicity * remove warnings error `-Wunused-function` Change-Id: I7d061849429e5d50cc7d19d2051c7f5d0f0ef169 Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
2019-01-29Clean: Remove split_layout structureKazumasa Mitsunari2-46/+2
split_layout is not used anymore. Change-Id: Iff24ebb4e827aee28394deb3aa55c96692cd0cc6 Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
2019-01-29Avoid seg fault when no output existsKazumasa Mitsunari1-7/+13
When no output object such like HDMI, Window Manager crashes on initialize. This patch avoid crashes but no care for hot plug of display. Bug-AGL : SPEC-2136 Change-Id: I30bad0377d0ac646cead0bba1f1ae35952e3fb07 Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
2019-01-09docs: add yaml bookflounder_6.0.4flounder/6.0.46.0.4Frederic Marec1-0/+13
Bug-AGL: SPEC-1988 Change-Id: I03546518e44c772f01cfca28a0cd22830f40aacc Signed-off-by: Frederic Marec <frederic.marec@iot.bzh>
2018-12-07Add configuration file over-ride mechanismScott Murray8-72/+62
Reusing the windowmanager on the cluster demo platform requires modifications to the layers.json, areas.db, etc. configuration files. To allow this without breaking potential shared package feeds by building two versions, add a mechanism to allow over-riding the configuration files present in the widget with files in the directory /etc/xdg/windowmanager. Affected code has been refactored to use a new common configuration file path determination helper function to reduce duplication. Bug-AGL: SPEC-1805 Change-Id: Ia3e1af0703794079f9537b934b124788129c045c Signed-off-by: Scott Murray <scott.murray@konsulko.com>
2018-10-18Fix memory leakflounder_6.0.3flounder_6.0.2flounder/6.0.3flounder/6.0.26.0.36.0.2Kazumasa Mitsunari1-46/+71
According to afb_x2_req.h, returned value of afb_req_x2_get_application_id must be freed by the caller. So release it when the function returned not Null. cherry-picked from master Bug-AGL: SPEC-1819 Change-Id: I4f23eeff6262171ac55776b4e214960dbff7ff45 Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
2018-10-04Modify .gitreviewflounder_6.0.1flounder/6.0.16.0.1Kazumasa Mitsunari1-2/+1
Change-Id: I5d36d56c7957e33ce1137165e6273ba2599d8006 Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
2018-09-10Add gitreview file for flounder branchJan-Simon Möller1-1/+2
Signed-off-by: Jan-Simon Möller <jsmoeller@linuxfoundation.org>
2018-08-31Fix Window Manager crush when application terminatedKazumasa Mitsunari2-13/+12
Fix Window Manager crush when applicaiton terminated caused by wrong handling of sd_event_source. v2. Add error check just in case Bug-AGL: SPEC-1696 Change-Id: I639a60015cde46fca6bc5a3f6e8037afd8d79330 Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
2018-08-15Readd policy table generated by ZIPC for EXAMPLEYuta Doi38-1/+5787
This patch reverts commit e4222ca8da3b02afca5625fa2cef6832aa8ce90e and update it. To Policy Manager, add the source code of policy table which is generated by ZIPC for EXAMPLE. If use this example, please comment out line 22 and uncomment line 23 in policy_manager/CMakeLists.txt as follows: #set(STM_DIR stub) set(STM_DIR zipc) If try to show split layout, please set bool value "ON" to TRY_SPLIT_LAYOUT at line 28 in policy_manager/CMakeLists.txt as follows: set(TRY_SPLIT_LAYOUT OFF CACHE BOOL "Enable to show split layout") The generated source codes by ZIPC are "Common" and "StateTransitionor" in policy_manager/stm/zipc/. Bug-AGL: SPEC-1537 Change-Id: I1f91cf728eab79c229c5b4b12b9e1bdd338f64aa Signed-off-by: Yuta Doi <yuta-d@witz-inc.co.jp>
2018-08-15Readd Policy Manager as pluginYuta Doi20-466/+2846
This patch reverts commit c6f9a9b8468b3746a3dec7ee2a0b7d84ec9fb44a and update it. Policy Manager decides next layout by inputed event and current state based on the policy table. And Policy Manager is plugin for Window Manager. Therefore the OEMs can replace it. This patch provides Policy Manager I/F as reference implementation and does not have policy table. Therefore Policy Manager updates each layers to draw the applications in requested area in accordance with just like activate/deactivate request. [APIs of Policy Manager class] - int initialize(void) Initialize Policy Manger. in: none out: 0(success), -1(error) - void registerCallback(CallbackTable callback_table) Register callback functions. in: the pointers of callback handlers out: none "CallbackTable" type is as follows: typedef struct { Handler onStateTransitioned; Handler onError; } CallbackTable; "Handler" type is as follows: using Handler = std::function<void(json_object *)>; - int setInputEventData(json_object *json_in) Set input event data for the policy table. in: input event data as json_object out: 0(success), -1(error) - int executeStateTransition(void) Execute state transition by using set input event data. in: none out: 0(success), -1(error) - void undoState(void) Undo state only once per once state transition. in: none out: none [Callbacks of Policy Manager class] - void onStateTransitioned(json_object *json_out) When state transition succeeds, this callback is called. The argument json_out has the state after transition. - void onError(json_object *json_out) When state transition fails, this callback is called. The argument json_out has the error information like message, inputed event datas and etc.. Bug-AGL: SPEC-1537 Change-Id: Ib8c71f2e544cb90b6763d07fad56dc1c453e9a97 Signed-off-by: Yuta Doi <yuta-d@witz-inc.co.jp>
2018-08-09Fix multiple erase of surface informationYuta Doi1-2/+0
When application is killed and the surface is destroyed, the surface informations is erased twice. Therefore remove the one eracing process. Change-Id: I707febf5b5003058bcf847f635c16fb0d68e01d0 Signed-off-by: Yuta Doi <yuta-d@witz-inc.co.jp>
2018-08-03Fix mistakeKazumasa Mitsunari2-2/+2
Currently, the code is not usable currently. Change-Id: I2de1c0f04df411f085faacc1ab71203ba9b5e0b1 Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
2018-08-02Merge changes from topic '15921'Jan-Simon Moeller4-9/+16
* changes: Fix WM attach layers to different screen. Fix source rectangle changes every state change
2018-08-02Fix WM attach layers to different screen.Kazumasa Mitsunari1-3/+3
If setting 2 display from 1 Soc, Window Manager attaches layers to different screen since corresponding to upgrade of wayland-ivi-extension. Fix the issue. Bug-AGL: SPEC-1577 Change-Id: Ib6eb4a19dc892348271762f236cc0650a83a8f70 Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
2018-08-02Improve output of multiple screen resolutionTadao Tanikawa7-9/+141
To improve output on various monitor with various resolution, the following items are introduced. * Abandon scaling by Weston/IVI-SHELL This is cause of huge memory consumption on AGL CES2018 Demo because all contents are designed and rendered with FullHD resolution. * Add parameter of 'scale' to WM API (getDisplayInfo) WM calculate scale factor from screen resolution from wayland compositor and parameter of layout from WM's configuration, area.db. Bug-AGL: SPEC-1568, SPEC-1569, SPEC-1611 Change-Id: I5eac2da0106228c296550135c5200b2653864fdf Signed-off-by: Tadao Tanikawa <tanikawa.tadao@jp.panasonic.com>
2018-08-02Revert "Enable scaling to fit various screen resolutions"Tadao Tanikawa10-220/+22
Abandon scaling support by AGL window manager 2017 Bug-AGL: SPEC-1611 This reverts commit 8ab10aaafc6fb3dc7bbad755dce9b4bdaa41f287. Change-Id: Id6afb263a6dc30929b922e469d906e2e5190f7b0
2018-08-02Fix source rectangle changes every state changeKazumasa Mitsunari4-6/+13
Window Manager changes source rectangle size every state change. This patch changes it to set source rectangle first when the surface is created. Related commit: https://gerrit.automotivelinux.org/gerrit/#/c/15595/ Bug-AGL: SPEC-1584 Change-Id: Ia7429956053cfa18e6e82060f84f3b6fe755c0b1 Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
2018-07-27Fix crashed application can re-launchKazumasa Mitsunari5-112/+98
WM can't reset the state when application crashes, after the below commit. This patch fix the crashed application can re-launch. Related commit: https://gerrit.automotivelinux.org/gerrit/#/c/14871/ Bug-AGL: SPEC-1471 Change-Id: I46019b30cc8e9a341b4b681a0288f053b3ac1b30 Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
2018-07-26Fix memory release problemKazumasa Mitsunari1-1/+0
Do not release json_object after event push. The json_array which was freed is retained to the json-object that is released in afb_event_push. Related page: https://json-c.github.io/json-c/json-c-0.10/doc/html/json__object_8h.html#a04448b1c63173e1bfe49965835732075 Bug-AGL: SPEC-1616 Change-Id: Ic6de6425d7a18b289eb3e9d37d297dcfb3383f21 Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
2018-07-24Fix the race condition of HomeScreenKazumasa Mitsunari1-1/+9
HomeScreen and launcher have race condition. This patch fixes if the homescreen requests to be shown, WM doesn't change launcher(and others) invisible. This is quick hack. System UI's role is homescreen now. We can't change system UI from setting and so on currently. Bug-AGL: SPEC-1407 Change-Id: Ie70e0fd635fae03de7b731f3d73fb1863e3c6ad4 Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
2018-07-24Remove useless functionsKazumasa Mitsunari2-23/+0
These functions are not used anymore because of upgrade of wayland-ivi-extension * layer_configuration * layer_orientation * layer_screen Change-Id: I794fa13a3203b929c8fc49d6fb96b14004aa0fcc Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
2018-07-24Fix XDG application shrinksKazumasa Mitsunari2-12/+7
WM set surface source size output_size(1080X1920) in case of using runXDG. Then, XDG surface shrinks because dest size(1080X1488) is set and the surface is scaled. On the other hand, XDG application's source size is w = 0, h = 0 on startup from ivi-wm, so WM has to set source size in somewhere. So this patch fixes WM set XDG surface source size. This is short term solution because WM set source rectangle size every state changes. Bug-AGL: SPEC-1584 Change-Id: I128db0b7feaba6b51e13c467e91d5aff6adaf0a7 Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
2018-07-20Fix timerTadao Tanikawa1-3/+9
In 32bit environment, timer would be overflow. This causes that HomeScreen doesn't show on 32bit environment. Bug-AGL: SPEC-1471 Change-Id: I427da3a6e6ea76af05cee45a13b51754728a0cc5 Signed-off-by: Tadao Tanikawa <tanikawa.tadao@jp.panasonic.com>
2018-07-19Revert "Add PolicyManager as plugin"Jan-Simon Moeller19-2768/+451
This reverts commit 99b6f4d2fcd421d3a760a88a67e511fb6fc98068. Change-Id: I8725ca05a3e3fa0ea9e1db935e9e7d5b85a9affd
2018-07-19Revert "Add policy table generated by ZIPC for EXAMPLE"Jan-Simon Moeller36-5900/+0
This reverts commit 67f414f67ee22ddf40003d1be3fa1d0cb13deb8f. Change-Id: I8489ed8e7789590ae585807108c64539a0ab3cf2
2018-07-12Add policy table generated by ZIPC for EXAMPLEflounder_5.99.2flounder/5.99.25.99.2Yuta Doi36-0/+5900
To PolicyManager, add the source code of policy table which is generated by ZIPC for EXAMPLE. If use this example, please comment out line 84 and uncomment line 85 in CMakeLists.txt as follows: #set(USE_STM_NAME stub) set(USE_STM_NAME zipc) If try to show split layout, please rename from roles.db.split to roles.db in src/policy_manager/db/. Bug-AGL: SPEC-1537 Change-Id: I4b35f148313e0c5a12c59ed1c2f8eb6fbcf3ea6b Signed-off-by: Yuta Doi <yuta-d@witz-inc.co.jp>
2018-07-12Add PolicyManager as pluginYuta Doi19-451/+2768
PolicyManager decides next layout by using occured event and current state based on the policy table. And PolicyManager is plugin for WindowManager. Therefore the OEMs can replace it. This patch provides PolicyManager I/F as reference implementation and does not have policy table. Therefore PolicyManager updates each layers to draw the applications in normal.full area in accordance with just like activate/deactivate request. [APIs of PolicyManager class] - int initialize(void) Initialize PolicyManger. input: none output: 0(success), -1(error) - void registerCallback(CallbackTable callback_table) Register callback functions. input: the pointers of callback handlers output: none "CallbackTable" type is as follows: typedef struct { Handler onStateTransitioned; Handler onError; } CallbackTable; "Handler" type is as follows: using Handler = std::function<void(json_object *)>; - int setInputEventData(json_object *json_in) Set input event data for the policy table. input: input event data as json_object output: 0(success), -1(error) - int executeStateTransition(void) Execute state transition by using set input event data. input: none output: 0(success), -1(error) - void undoState(void) Undo state only once per once state transition. input: none output: none [Callbacks of PolicyManager class] - void onStateTransitioned(json_object *json_out) When state transition succeeds, this callback is called. The argument json_out has the state after transition. - void onError(json_object *json_out) When state transition fails, this callback is called. The argument json_out has the error information like message, inputed event datas and etc.. Bug-AGL: SPEC-1537 Change-Id: I44b771d4145078bf3ea05e26165bb9c1a03b10c3 Signed-off-by: Yuta Doi <yuta-d@witz-inc.co.jp>
2018-07-11Enable scaling to fit various screen resolutionsKazumasa Mitsunari10-22/+220
Since the AGL HomeScreen of CES2018 assumes that the screen resolution is 1080x1920px, the graphics of it partially corrupted with others. To fix this issue, now the AGL window manager automatically scales size according to "scaling" value in setting.json By default(even if "scaling" is not set), this scaling keeps 'fullscreen' aspect rate in area.db("aspect_fit") User can select 3 options. - "aspect_fit" : Scale aspect rate of 'fullscreen' in area.db.(default) - "display_fit": Force to scale to display size. - "none" or others : Set size just as area.db Bug-AGL: SPEC-1568 Bug-AGL: SPEC-1569 Change-Id: Ia08c0ebb2d71ae8f89a90088e181381c3ba3562d Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
2018-07-10Forbid negative value for area sizeKazumasa Mitsunari2-39/+26
It is not intuitive to set negative value as size. So forbit negative value. Change-Id: I49480653284158b6d1bfcb22a71d9882ed958518 Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
2018-07-09Rename event names to lower camel caseYuta Doi1-3/+3
Change-Id: I973610e2b47ebd842291d568bd88578150efcef5 Signed-off-by: Yuta Doi <yuta-d@witz-inc.co.jp>
2018-07-09Rename APIsYuta Doi1-4/+4
rename WindowManager APIs as follows: - activateSurface -> activateWindow - deactivateSurface -> deactivateWindow The "surface" means information of display material frame buffer managed by Graphics Subsystem (Weston). And the "window" means the right to draw on display. The "surface" is physical information and used inside WindowManager. So we think it is not good for "surface" to be included in API name. These APIs provide the function which is to activate/deactivate the right to draw for the applications. So we change to "activateWindow/deactivateWindow". We plan to delete the old API by GG. Therefore the applications can use old APIs until GG, but the warning "-Wdeprecated-declarations" is occured when compile. After GG, old APIs can not be used. If use it, the error is occured when compile. Bug-AGL: SPEC-1565 Change-Id: Ic7da4e5ddb759e642a2b60ecf61e327aaf74a699 Signed-off-by: Yuta Doi <yuta-d@witz-inc.co.jp>
2018-07-09Add new layers and rename existing layersYuta Doi2-14/+38
Change-Id: I76f9ffd9acefaa35e2cfd00cc6c23037218fc103 Signed-off-by: Yuta Doi <yuta-d@witz-inc.co.jp>
2018-07-09Add configuration file for each area sizesYuta Doi9-72/+297
Add areas.db which has each area sizes. less-than-0 values refer to (MAX + 1 - $VALUE) and MAX is either screen width or height. layers.json had each area sizes until now, so removed the sizes from it. Change-Id: I5cf283581daaca41e2b9e3ee6e947478bff1189c Signed-off-by: Yuta Doi <yuta-d@witz-inc.co.jp>
2018-07-09Convert the roles from old one to newYuta Doi9-49/+423
Update the role name (drawing_name) and WindowManager converts the role from old one to new. We plan to delete the old roles by GG. Therefore the applications can use old olds until GG, After GG, old roles can not be used. If the applications use it, WindowManager regards the applications as the role "fallback". Therefore the applications may not be displayed in the intended layout. For the role "fallback", please refer to JIRA SPEC-1331. Bug-AGL: SPEC-1566 Change-Id: I6ca703183e3cab72ac460094ef14dc3675a98cb6 Signed-off-by: Yuta Doi <yuta-d@witz-inc.co.jp>
2018-06-28Add signal when the displayed application changedKazumasa Mitsunari2-0/+37
Add new signal "screen_updated" to Window Manager. This is emitted when application size or visibility is changed, the application ids are notified to subscribers. There are some applications such like HomeScreen, which needs the visibility of other applications turns on, so add new event. The key is "ids" and data is application id which is written in config.xml for each application. This signal format is here: ON-EVENT windowmanager/screen_updated: { "event":"windowmanager\/screen_updated", "data":{ "ids":[ "navigation", "hvac" ] }, "jtype":"afb-event" } Bug-AGL: SPEC-1532 Change-Id: I6c1f263be00d4b496e0e0f77dd88b6118489772f Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
2018-06-27Clean: sort source code according to the order of header fileKazumasa Mitsunari2-334/+339
Sort API order written in source code according to the order in header file to improve readability. Change-Id: I6606590ce2ad9c285b3cfd83dc6c0741890b105f Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
2018-06-27Fix class name "App" to "WindowManager"Kazumasa Mitsunari5-94/+94
struct App is core class of Window Manager. The name of "struct App" is strange so rename it to WindowManager. Change-Id: Ia5f2e5acbadb8d58fe772aec0cd15a4a2e91369e Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
2018-06-27Refactor: Integrate rework handles by applicationKazumasa Mitsunari3-367/+828
Integrate rework handles information by application. Window Manager handles request by "task" and block other requests until the task finishes. This is necessary because window mangaer task consists of 2 asyncronous parts, which are checking policy and redraw sync, and ensures the 2 parts should be managed consecutively. Bug-AGL: SPEC-1510 Change-Id: I9a1d5daad5b47dd5e68a437173b3d5f1b3923865 Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
2018-06-27Rework: Window Manager handles by applicationKazumasa Mitsunari11-3/+1160
To manage role, surface, layer ... and other info more easily, Window Manager handles info by application. WMClient class holds infomation of application. WMRequest class holds the request from application(trigger) and the action list judged by policy manager. The above info is in applist. *applist Hold client list. And hold request list which comes from application to get the right of displaying. *request The request from application and the Action judged from Policy Manager *client Application information which has surface, role and so on. *error Error code and error message. Integration patch is going to be pushed after this commit. Bug-AGL: SPEC-1509 Change-Id: I52b161701e22e316137dc42f073b118d164c1e28 Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
2018-06-27Add Get/Set area size functionsKazumasa Mitsunari3-0/+62
Add internal functions to get/set area size. Change-Id: I9fef787863bed81fe6e4761c6f387886d7df1455 Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
2018-06-25Bug Fix: Window Manager doesn't react after killing app processKazumasa Mitsunari3-32/+12
After killing an application which has surfaces, Window Manager releases the information for app. Then, invalid access happens. As a result, Application seems to loose their ability to display. This is a potencial bug caused by upgrades of wayland-ivi-extension, so this problem didn't occur in eel branch. This patch fixes the bug. Bug-AGL: SPEC-1421 Change-Id: If921dd4ea6bd46454356e97e1be7e5c136c7383b Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
2018-06-25Clean: remove small filesKazumasa Mitsunari6-147/+16
*policy.hpp No affect to Window Manager decision, so remove it. *config.hpp, config.cpp Small function to hold the path information to config file, but no need to hold until the death of process. So move it to stack variable, then remove files. Change-Id: I6c210acc586c7cc048e0b158df5e3a511f927b9d Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
2018-06-25Clean: remove useless headersKazumasa Mitsunari9-52/+9
* Shorten build time * Remove unnecessary dependencies Change-Id: I960b2a21124cabc62ef73436fb5a7ab5191c4e0d Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
2018-06-25Fix Client Context of afb-binderKazumasa Mitsunari1-8/+10
* Rename wmClientCtxt to WMClientCtxt * Hold application name and requested role Change-Id: I7d600c66bd905b4847d34049b81aa361dd4fb528 Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
2018-06-01Remove the unnecessary propertyKazumasa Mitsunari2-284/+0
Window Manager service doesn't need to have an icon, then remove it. Change-Id: I85d6f612dc1a7bdbdff4c67022cd32d85b0da799 Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
2018-05-31Format source codesKazumasa Mitsunari19-2465/+2907
* Format source codes * Change indent spaces to 4 from 3 * Remove trailing spaces in config.xml Change-Id: I745ba6c7cc4dcf4177add81666351c3c01de7d44 Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
2018-03-20Update documentKazumasa Mitsunari1-101/+67
* Change version to 0.5 * Remove code generation. It is not used anymore * Fix inconsistent spellings * Add "Fallback" description * Fix dependency package * Add description of requestSurfaceXDG Change-Id: I134c521b0d413780e496e9477c4901431eb72ae5 Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
2018-03-19Change reply timingKazumasa Mitsunari3-49/+59
Some events were emitted in a function before it replies. This patch changes * The function checks parameter then reply error if it is incorrect. * After checking parameters, the function continues to process. The exeption is the syncronous functions such as requestSurface. Change-Id: I168eba3e2b70d53615a4221bcbbba6bc6096c1db Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
2018-03-19Send visible event after commit changeKazumasa Mitsunari1-1/+1
Visible event was emitted before commit change of ivi-controller. This patch changes the event emitted after commit change. Bug-AGL: SPEC-1332 Change-Id: Ib8a6d3a513c1fe4a28111b2ad256122289fc5cc0 Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>