Age | Commit message (Collapse) | Author | Files | Lines |
|
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>
|
|
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>
|
|
Currently, the code is not usable currently.
Change-Id: I2de1c0f04df411f085faacc1ab71203ba9b5e0b1
Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
|
|
* changes:
Fix WM attach layers to different screen.
Fix source rectangle changes every state change
|
|
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>
|
|
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>
|
|
Abandon scaling support by AGL window manager 2017
Bug-AGL: SPEC-1611
This reverts commit 8ab10aaafc6fb3dc7bbad755dce9b4bdaa41f287.
Change-Id: Id6afb263a6dc30929b922e469d906e2e5190f7b0
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
This reverts commit 99b6f4d2fcd421d3a760a88a67e511fb6fc98068.
Change-Id: I8725ca05a3e3fa0ea9e1db935e9e7d5b85a9affd
|
|
This reverts commit 67f414f67ee22ddf40003d1be3fa1d0cb13deb8f.
Change-Id: I8489ed8e7789590ae585807108c64539a0ab3cf2
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
Change-Id: I973610e2b47ebd842291d568bd88578150efcef5
Signed-off-by: Yuta Doi <yuta-d@witz-inc.co.jp>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
Add internal functions to get/set area size.
Change-Id: I9fef787863bed81fe6e4761c6f387886d7df1455
Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
|
|
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>
|
|
*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>
|
|
* Shorten build time
* Remove unnecessary dependencies
Change-Id: I960b2a21124cabc62ef73436fb5a7ab5191c4e0d
Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
|
|
* Rename wmClientCtxt to WMClientCtxt
* Hold application name and requested role
Change-Id: I7d600c66bd905b4847d34049b81aa361dd4fb528
Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
|
|
* 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>
|
|
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>
|
|
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>
|
|
This patch enables the app to show if it is not registered in layers.json.
The original installed app was not shown because the role of app is not
registered in WM as default.
[Patch set2]
Add the same process into requestSurface for RunXDG
Bug-AGL : SPEC-1331
Change-Id: Ie99b971023a95a1924795b1ffc7311a630940b1d
Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
|
|
getDisplayInfo() can get the display information as follows:
- width[pixel]
- height[pixel]
- width[mm]
- height[mm]
NOTE:
It uses wl_output::geometry() for getting physical width[mm] and height[mm] of the display,
but the value is different with measured value.
value from wl_output::geometry(): width:320 height:520
measured value : width:193 height:343
getAreaInfo() can get the information of area drawn by the application as follows:
- x-coordinate
- y-coordinate
- width
- height
The details are described in doc/ApplicationGuide.md.
Bug-AGL: SPEC-1087
Change-Id: I9e6d64ff04e0845b83c69db374d06af17a6d6b66
Signed-off-by: Yuta Doi <yuta-d@witz-inc.co.jp>
|
|
This patch is for master branch only.
For using wayland-ivi-extension version 2.x,
the wayland protocol in WindowManager is changed
from ivi-controller to ivi-wm.
NOTE:
If using this patch,
the modification for AGL/meta-agl
which described in SPEC-1244 is necessary.
Bug-AGL: SPEC-1244
Change-Id: I5489db202dfeec8f4626aee53bd1f86c145b95d9
Signed-off-by: Yuta Doi <yuta-d@witz-inc.co.jp>
|
|
If the app is on background layer for CES hack such like Navigation,
when the user push "Home" shortcut botton quickly many times,
the app on background layer appears with flickering.
So fix the issue.
Bug-AGL: SPEC-1247
Change-Id: I777607a99914f0141886e817cb6a5e486f1105f0
Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
|
|
|
|
When an application dies after requestSurface,
the application can't be launched because
Window Manager doesn't know the application is dead and doesn't
clean up its database.
In other case, when Mixer app dies due to pulse audio crash
just before Window Manager handles surface memory,
the connection between weston and Window Manager is dead.
So add following
* Add context setting with window manager clients.
Terminate the context and clean up WM database
if a client application is dead.
* Add layout_commit() after add surfaces to layer.
[PatchSet 2]
* Add layout_commit() after add surfaces to layer
in api_request_surface
Bug-AGL: SPEC-1086
Change-Id: I6ecae2606ac644e49a3383ba849390f8c235f187
Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
|
|
error "Never include <bits/signum.h> directly; use <signal.h> instead."
Bug-AGL: SPEC-1181
Signed-off-by: Changhyeok Bae <changhyeok.bae@gmail.com>
|
|
Adding new applications (Video player and Web browser) to
be managed by window manager properly.
Releated introducing Video player, old name, 'MediaPlayer' for
apps/mediaplayer has been renamed 'Music'.
Old name,'MediaPlayer' keeps alive in layers.json for backward
compatibility.
Change-Id: I2b5e267f4015a4ed128ff5b55ba709faf1914b61
Signed-off-by: Tadao Tanikawa <tanikawa.tadao@jp.panasonic.com>
|
|
To reduce the files and redundant code,
* Remove afb_binding_api.* files and generate-binding-glue.py.
* Merge them into other source codes.
Change-Id: Ib61350ee6a42d73efc3fa29fa0c4868145a88e2e
Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
|
|
To handle the request from binder(applications) more flexibly,
we have to remove automatic code generation.
Change-Id: Id14ab749cca68b5aa30376ba3ac543372df87233
Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
|
|
Change-Id: I8eee96305be1c8808442af92b254fce857e3dfd6
Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
|
|
MediaPlayer and Radio can not sound
when their surface have visibility=0.
And Navigation can not be displayed correctly
when the application is switched from visibility=0 to 1.
Because when visibility=0, weston event can not be catched.
So when the applications is not displayed,
they have visibility=1 and are moved to background layer.
Change-Id: Idf236e703a1e74cf564a1b213e6e15fcfa42a29e
Signed-off-by: Yuta Doi <yuta-d@witz-inc.co.jp>
|
|
To run XDG application on AGL HomeScreen/WindowManager,
a new binding API of WindowManager is added.
This api is used only by AGL XDG-Launcher and
all xdg applications should be packed as wgt compatible
to AGL Application framework.
Bug-AGL: SPEC-1096
Change-Id: I33dd3b056c736ef374e2251e818541ddd699877b
Signed-off-by: Tadao Tanikawa <tanikawa.tadao@jp.panasonic.com>
|