Merge lp:~mir-team/platform-api/remove-mirserver into lp:platform-api

Proposed by Alberto Aguirre
Status: Superseded
Proposed branch: lp:~mir-team/platform-api/remove-mirserver
Merge into: lp:platform-api
Diff against target: 1276 lines (+25/-1021)
24 files modified
CMakeLists.txt (+2/-3)
debian/changelog (+6/-0)
debian/control (+0/-1)
debian/ubuntu-application-api2-desktop.install (+0/-1)
debian/ubuntu-application-api2-touch.install (+0/-1)
src/ubuntu/application/base_module.h (+2/-2)
src/ubuntu/application/common/CMakeLists.txt (+0/-2)
src/ubuntu/application/common/mirclient/CMakeLists.txt (+6/-0)
src/ubuntu/application/common/mirclient/ubuntu_application_api_mirclient.cpp (+2/-2)
src/ubuntu/application/common/mirclient/window_mirclient.cpp (+1/-1)
src/ubuntu/application/common/mircommon/CMakeLists.txt (+0/-25)
src/ubuntu/application/common/mirserver/CMakeLists.txt (+0/-24)
src/ubuntu/application/common/mirserver/application_instance_mirserver.cpp (+0/-123)
src/ubuntu/application/common/mirserver/application_instance_mirserver_priv.h (+0/-89)
src/ubuntu/application/common/mirserver/ubuntu_application_api_mirserver.cpp (+0/-351)
src/ubuntu/application/common/mirserver/window_mirserver.cpp (+0/-85)
src/ubuntu/application/common/mirserver/window_mirserver_priv.h (+0/-92)
src/ubuntu/application/common/mirserver/window_properties_mirserver.cpp (+0/-77)
src/ubuntu/application/common/mirserver/window_properties_mirserver_priv.h (+0/-70)
src/ubuntu/application/desktop/CMakeLists.txt (+0/-33)
src/ubuntu/application/desktop/module_version.h (+2/-2)
src/ubuntu/application/testbackend/module_version.h (+2/-2)
src/ubuntu/application/touch/CMakeLists.txt (+0/-33)
src/ubuntu/application/touch/module_version.h (+2/-2)
To merge this branch: bzr merge lp:~mir-team/platform-api/remove-mirserver
Reviewer Review Type Date Requested Status
Gerry Boland (community) Needs Fixing
Kevin DuBois (community) Approve
Alan Griffiths Approve
PS Jenkins bot continuous-integration Approve
Review via email: mp+240801@code.launchpad.net

This proposal has been superseded by a proposal from 2015-06-18.

Commit message

Remove the unused mirserver component

Description of the change

Remove the unused mirserver component

To post a comment you must log in.
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
Revision history for this message
Gerry Boland (gerboland) wrote :

Lots of red, nice :)

armhf CI fail appears unrelated:
1/1 Test #1: test_ua_sensors_mock .............***Failed 2.01 sec
unsure how this change impacted it.

Since you're removing a feature from the library, think we'd better bump the version numbers.

review: Needs Fixing
Revision history for this message
Alberto Aguirre (albaguirre) wrote :

@Gerry,

Oh true, it merits a version bump.

CI now passed.

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
Revision history for this message
Gerry Boland (gerboland) wrote :

Please update the lib versions in CMakeLists.txt to match the debian version. Also these should match:
src/ubuntu/application/base_module.h
src/ubuntu/application/desktop/module_version.h
src/ubuntu/application/testbackend/module_version.h
src/ubuntu/application/touch/module_version.h

review: Needs Fixing
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
Revision history for this message
Alan Griffiths (alan-griffiths) wrote :

Yes!

review: Approve
Revision history for this message
Kevin DuBois (kdub) wrote :

I had a branch of similar nature, this one looks good by me.

review: Approve
Revision history for this message
Alberto Aguirre (albaguirre) wrote :

@Kevin, IT IS your branch :) (see r265)

Revision history for this message
Gerry Boland (gerboland) wrote :

Delayed, but finally getting to test this.
First off, I'm having to rebuild qtubuntu to have it work with this. I wasn't expecting an ABI change due to this MR. Expected?

Now I'm getting
Ubuntu Platform API: Unable to load selected module. -- Aborting
and adding dlerror() I get:
libubuntu_platform_hardware_api.so.2: cannot open shared object file: No such file or directory

Not sure where that version 2 is coming from, as you building v3.

Just bumping the so versions isn't enough sadly, as the debian packaging specifies version 2 everywhere. You either need to bump all the packaging to version 3 (and hit everything that depends on version 2) or else just make this a minor version bump.

review: Needs Fixing
Revision history for this message
Alberto Aguirre (albaguirre) wrote :

@Gerry,

Yes, after talking to ricmm, we would need to build all 14-15 rev deps on a major rev bump, so we'll stash this for now until an actual api change warrants a 3.0 bump.

Instead, we'll just stub out the mirserver backend so we can do a minor rev bump:
https://code.launchpad.net/~mir-team/platform-api/stub-mirserver/+merge/241820

284. By Alberto Aguirre

No-change rebuild against mir 0.9.0
Approved by: Cemil Azizoglu, PS Jenkins bot

285. By PS Jenkins bot

Releasing 2.5.0+15.04.20141124-0ubuntu1

286. By Alberto Aguirre

Stub out mirserver backend
Approved by: Gerry Boland, PS Jenkins bot

287. By PS Jenkins bot

Releasing 2.6.0+15.04.20141126-0ubuntu1

288. By Ricardo Mendoza

* Allow for module-override of specific providers of the Platform API
* Implement support for named pipe event reader on sensors test plugin

Approved by: Jim Hodapp, Daniel d'Andrada, PS Jenkins bot

289. By CI Train Bot Account

Releasing 2.7.0+15.04.20150123-0ubuntu1

290. By You-Sheng Yang

* Check array boundary for KeyedVector
Approved by: Ricardo Salveti

291. By CI Train Bot Account

Releasing 2.7.0+15.04.20150128-0ubuntu1

292. By Ricardo Mendoza

Do not load the test backend unless a specific override list is provided. Also, add the test backend as dependency of the main module, now that it is directly usable without other modules.
Approved by: PS Jenkins bot

293. By CI Train Bot Account

Releasing 2.8.0+15.04.20150203-0ubuntu1

294. By Ricardo Mendoza

Dont abort on soft errors, instead fall back to dummy provider if possible.
Approved by: PS Jenkins bot

295. By CI Train Bot Account

Releasing 2.8.1+15.04.20150306-0ubuntu1

296. By Robert Carr

Expose MirConnection form UApplicationIntance and deprecate the ua_ui namespace.
Approved by: Alberto Aguirre, PS Jenkins bot, Gerry Boland

297. By CI Train Bot Account

Releasing 2.9.0+15.04.20150318-0ubuntu1

298. By Michał Sawicz

Fix u_application_instance_get_mir_connection symbol version Fixes: #1433936
Approved by: PS Jenkins bot

299. By Ricardo Mendoza

Disable building the Android backends we no longer use.
Approved by: PS Jenkins bot

300. By CI Train Bot Account

Releasing 2.9.0+15.04.20150320-0ubuntu1

301. By Robert Carr

Remove deprecated ua_ui_* functions

302. By Robert Carr

Remove dead examples

303. By Robert Carr

Update module loader version numbers

304. By Robert Carr

Remove unnused examples from install

305. By Robert Carr

Debian cleanup

306. By Robert Carr

Merge trunk

307. By Robert Carr

Delete more

308. By Robert Carr

More deletions

309. By Robert Carr

Cleanup

310. By Robert Carr

More cleanup

311. By Robert Carr

Correct symbols file

312. By Robert Carr

Update desktop module version

313. By Alberto Aguirre

Remove mirserver module

314. By Alberto Aguirre

Fold mircommon into mirclient

315. By Alberto Aguirre

Update changelog

Unmerged revisions

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'CMakeLists.txt'
--- CMakeLists.txt 2014-10-13 10:11:24 +0000
+++ CMakeLists.txt 2014-11-08 22:26:49 +0000
@@ -2,8 +2,8 @@
22
3project(ubuntu-platform-api)3project(ubuntu-platform-api)
44
5set(UBUNTU_PLATFORM_API_VERSION_MAJOR 2)5set(UBUNTU_PLATFORM_API_VERSION_MAJOR 3)
6set(UBUNTU_PLATFORM_API_VERSION_MINOR 5)6set(UBUNTU_PLATFORM_API_VERSION_MINOR 0)
7set(UBUNTU_PLATFORM_API_VERSION_PATCH 0)7set(UBUNTU_PLATFORM_API_VERSION_PATCH 0)
88
9set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden")9set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden")
@@ -58,7 +58,6 @@
58)58)
5959
60find_package(PkgConfig)60find_package(PkgConfig)
61pkg_check_modules(MIRSERVER REQUIRED mirserver)
62pkg_check_modules(MIRCLIENT REQUIRED mirclient)61pkg_check_modules(MIRCLIENT REQUIRED mirclient)
6362
64# Try to find hybris, and disable hybris from build if not found63# Try to find hybris, and disable hybris from build if not found
6564
=== modified file 'debian/changelog'
--- debian/changelog 2014-10-27 20:05:27 +0000
+++ debian/changelog 2014-11-08 22:26:49 +0000
@@ -1,3 +1,9 @@
1platform-api (3.0.0) UNRELEASED; urgency=medium
2
3 * Remove mirserver backend
4
5 -- Alberto Aguirre <alberto.aguirre@canonical.com> Thu, 06 Nov 2014 14:39:00 -0600
6
1platform-api (2.5.0+15.04.20141027-0ubuntu1) vivid; urgency=low7platform-api (2.5.0+15.04.20141027-0ubuntu1) vivid; urgency=low
28
3 [ Alexandros Frantzis ]9 [ Alexandros Frantzis ]
410
=== modified file 'debian/control'
--- debian/control 2014-09-22 18:04:53 +0000
+++ debian/control 2014-11-08 22:26:49 +0000
@@ -15,7 +15,6 @@
15 libhybris-common-dev,15 libhybris-common-dev,
16 pkg-config,16 pkg-config,
17 libmirclient-dev (>= 0.6.0),17 libmirclient-dev (>= 0.6.0),
18 libmirserver-dev (>= 0.6.0),
19 liburl-dispatcher1-dev,18 liburl-dispatcher1-dev,
20 libdbus-1-dev,19 libdbus-1-dev,
21 libdbus-cpp-dev (>= 4.0.0),20 libdbus-cpp-dev (>= 4.0.0),
2221
=== modified file 'debian/ubuntu-application-api2-desktop.install'
--- debian/ubuntu-application-api2-desktop.install 2014-05-15 15:46:30 +0000
+++ debian/ubuntu-application-api2-desktop.install 2014-11-08 22:26:49 +0000
@@ -1,2 +1,1 @@
1usr/lib/*/libubuntu_application_api_desktop_mirclient.so.*1usr/lib/*/libubuntu_application_api_desktop_mirclient.so.*
2usr/lib/*/libubuntu_application_api_desktop_mirserver.so.*
32
=== modified file 'debian/ubuntu-application-api2-touch.install'
--- debian/ubuntu-application-api2-touch.install 2014-05-15 15:46:30 +0000
+++ debian/ubuntu-application-api2-touch.install 2014-11-08 22:26:49 +0000
@@ -1,2 +1,1 @@
1usr/lib/*/libubuntu_application_api_touch_mirserver.so.*
2usr/lib/*/libubuntu_application_api_touch_mirclient.so.*1usr/lib/*/libubuntu_application_api_touch_mirclient.so.*
32
=== modified file 'src/ubuntu/application/base_module.h'
--- src/ubuntu/application/base_module.h 2014-09-30 01:35:35 +0000
+++ src/ubuntu/application/base_module.h 2014-11-08 22:26:49 +0000
@@ -27,8 +27,8 @@
27 * This is the base backend loader for the Platform API27 * This is the base backend loader for the Platform API
28 */28 */
2929
30#define API_VERSION_MAJOR "2"30#define API_VERSION_MAJOR "3"
31#define API_VERSION_MINOR "5"31#define API_VERSION_MINOR "0"
32#define API_VERSION_PATCH "0"32#define API_VERSION_PATCH "0"
33#define SO_SUFFIX ".so." API_VERSION_MAJOR "." API_VERSION_MINOR "." API_VERSION_PATCH33#define SO_SUFFIX ".so." API_VERSION_MAJOR "." API_VERSION_MINOR "." API_VERSION_PATCH
3434
3535
=== modified file 'src/ubuntu/application/common/CMakeLists.txt'
--- src/ubuntu/application/common/CMakeLists.txt 2014-05-15 14:56:16 +0000
+++ src/ubuntu/application/common/CMakeLists.txt 2014-11-08 22:26:49 +0000
@@ -3,6 +3,4 @@
3)3)
44
5add_subdirectory(application)5add_subdirectory(application)
6add_subdirectory(mircommon)
7add_subdirectory(mirclient)6add_subdirectory(mirclient)
8add_subdirectory(mirserver)
97
=== modified file 'src/ubuntu/application/common/mirclient/CMakeLists.txt'
--- src/ubuntu/application/common/mirclient/CMakeLists.txt 2014-09-22 18:04:53 +0000
+++ src/ubuntu/application/common/mirclient/CMakeLists.txt 2014-11-08 22:26:49 +0000
@@ -3,6 +3,12 @@
3 application_instance_mirclient.cpp3 application_instance_mirclient.cpp
4 window_properties_mirclient.cpp4 window_properties_mirclient.cpp
5 window_mirclient.cpp5 window_mirclient.cpp
6 event_helpers_mir.cpp
7 application_id_mir.cpp
8 application_options_mir.cpp
9 application_description_mir.cpp
10 session_mir.cpp
11 lifecycle_delegate_mir.cpp
6)12)
713
8set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --std=c++11 -fPIC")14set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --std=c++11 -fPIC")
915
=== renamed file 'src/ubuntu/application/common/mircommon/application_description_mir.cpp' => 'src/ubuntu/application/common/mirclient/application_description_mir.cpp'
=== renamed file 'src/ubuntu/application/common/mircommon/application_description_mir_priv.h' => 'src/ubuntu/application/common/mirclient/application_description_mir_priv.h'
=== renamed file 'src/ubuntu/application/common/mircommon/application_id_mir.cpp' => 'src/ubuntu/application/common/mirclient/application_id_mir.cpp'
=== renamed file 'src/ubuntu/application/common/mircommon/application_id_mir_priv.h' => 'src/ubuntu/application/common/mirclient/application_id_mir_priv.h'
=== renamed file 'src/ubuntu/application/common/mircommon/application_options_mir.cpp' => 'src/ubuntu/application/common/mirclient/application_options_mir.cpp'
=== renamed file 'src/ubuntu/application/common/mircommon/application_options_mir_priv.h' => 'src/ubuntu/application/common/mirclient/application_options_mir_priv.h'
=== renamed file 'src/ubuntu/application/common/mircommon/event_helpers_mir.cpp' => 'src/ubuntu/application/common/mirclient/event_helpers_mir.cpp'
=== renamed file 'src/ubuntu/application/common/mircommon/event_helpers_mir.h' => 'src/ubuntu/application/common/mirclient/event_helpers_mir.h'
=== renamed file 'src/ubuntu/application/common/mircommon/lifecycle_delegate_mir.cpp' => 'src/ubuntu/application/common/mirclient/lifecycle_delegate_mir.cpp'
=== renamed file 'src/ubuntu/application/common/mircommon/lifecycle_delegate_mir_priv.h' => 'src/ubuntu/application/common/mirclient/lifecycle_delegate_mir_priv.h'
=== renamed file 'src/ubuntu/application/common/mircommon/session_mir.cpp' => 'src/ubuntu/application/common/mirclient/session_mir.cpp'
=== modified file 'src/ubuntu/application/common/mirclient/ubuntu_application_api_mirclient.cpp'
--- src/ubuntu/application/common/mirclient/ubuntu_application_api_mirclient.cpp 2014-10-15 13:29:15 +0000
+++ src/ubuntu/application/common/mirclient/ubuntu_application_api_mirclient.cpp 2014-11-08 22:26:49 +0000
@@ -19,9 +19,9 @@
19#include "application_instance_mirclient_priv.h"19#include "application_instance_mirclient_priv.h"
20#include "window_properties_mirclient_priv.h"20#include "window_properties_mirclient_priv.h"
21#include "window_mirclient_priv.h"21#include "window_mirclient_priv.h"
22#include "mircommon/lifecycle_delegate_mir_priv.h"22#include "lifecycle_delegate_mir_priv.h"
2323
24#include "mircommon/application_id_mir_priv.h"24#include "application_id_mir_priv.h"
2525
26#include <ubuntu/application/lifecycle_delegate.h>26#include <ubuntu/application/lifecycle_delegate.h>
27#include <ubuntu/application/ui/window.h>27#include <ubuntu/application/ui/window.h>
2828
=== modified file 'src/ubuntu/application/common/mirclient/window_mirclient.cpp'
--- src/ubuntu/application/common/mirclient/window_mirclient.cpp 2014-09-29 19:56:49 +0000
+++ src/ubuntu/application/common/mirclient/window_mirclient.cpp 2014-11-08 22:26:49 +0000
@@ -21,7 +21,7 @@
21#include "window_properties_mirclient_priv.h"21#include "window_properties_mirclient_priv.h"
22#include "window_mirclient_priv.h"22#include "window_mirclient_priv.h"
2323
24#include "mircommon/event_helpers_mir.h"24#include "event_helpers_mir.h"
2525
26namespace uamc = ubuntu::application::mir::client;26namespace uamc = ubuntu::application::mir::client;
27namespace uaum = ubuntu::application::ui::mir;27namespace uaum = ubuntu::application::ui::mir;
2828
=== removed directory 'src/ubuntu/application/common/mircommon'
=== removed file 'src/ubuntu/application/common/mircommon/CMakeLists.txt'
--- src/ubuntu/application/common/mircommon/CMakeLists.txt 2014-08-06 08:33:54 +0000
+++ src/ubuntu/application/common/mircommon/CMakeLists.txt 1970-01-01 00:00:00 +0000
@@ -1,25 +0,0 @@
1set(SOURCES
2 event_helpers_mir.cpp
3 application_id_mir.cpp
4 application_options_mir.cpp
5 application_description_mir.cpp
6 session_mir.cpp
7 lifecycle_delegate_mir.cpp
8 )
9
10set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC --std=c++11")
11
12include_directories(
13 ${MIRCLIENT_INCLUDE_DIRS}
14 )
15
16add_library(
17 ubuntu_application_api_mircommon STATIC
18 ${SOURCES}
19 )
20
21target_link_libraries(
22 ubuntu_application_api_mircommon
23
24 ${LINK_LIBRARIES}
25 )
260
=== removed directory 'src/ubuntu/application/common/mirserver'
=== removed file 'src/ubuntu/application/common/mirserver/CMakeLists.txt'
--- src/ubuntu/application/common/mirserver/CMakeLists.txt 2014-05-29 14:14:31 +0000
+++ src/ubuntu/application/common/mirserver/CMakeLists.txt 1970-01-01 00:00:00 +0000
@@ -1,24 +0,0 @@
1set(SOURCES
2 ubuntu_application_api_mirserver.cpp
3 application_instance_mirserver.cpp
4 window_properties_mirserver.cpp
5 window_mirserver.cpp
6)
7
8set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --std=c++11 -fPIC")
9
10include_directories(
11 ${CMAKE_BINARY_DIR}/include
12 ${MIRSERVER_INCLUDE_DIRS}
13)
14
15add_library(
16 ubuntu_application_api_mirserver STATIC
17 ${SOURCES}
18)
19
20target_link_libraries(
21 ubuntu_application_api_mirserver
22
23 ${MIRSERVER_LDFLAGS} ${MIRSERVER_LIBRARIES}
24)
250
=== removed file 'src/ubuntu/application/common/mirserver/application_instance_mirserver.cpp'
--- src/ubuntu/application/common/mirserver/application_instance_mirserver.cpp 2014-06-17 14:37:23 +0000
+++ src/ubuntu/application/common/mirserver/application_instance_mirserver.cpp 1970-01-01 00:00:00 +0000
@@ -1,123 +0,0 @@
1/*
2 * Copyright (C) 2013 Canonical Ltd
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU Lesser General Public License version 3 as
6 * published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU Lesser General Public License for more details.
12 *
13 * You should have received a copy of the GNU Lesser General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 * Authored by: Robert Carr <robert.carr@canonical.com>
17 */
18
19#include "application_instance_mirserver_priv.h"
20
21#include "mircommon/application_description_mir_priv.h"
22#include "mircommon/application_options_mir_priv.h"
23#include "mircommon/application_id_mir_priv.h"
24
25#include <mir/scene/surface.h>
26#include <mir/scene/surface_coordinator.h>
27#include <mir/scene/session.h>
28#include <mir/scene/session_listener.h>
29#include <mir/scene/surface_creation_parameters.h>
30#include <mir/scene/snapshot.h>
31
32namespace uam = ubuntu::application::mir;
33namespace uams = uam::server;
34
35namespace mf = mir::frontend;
36namespace ms = mir::scene;
37
38namespace
39{
40/* A Mir in-process client does not have an associated Session by default. However it is
41 * useful for the shell to be able to position and identify its own surface, so need to
42 * create a mock implementation of Session for that respective Surface.
43 */
44class InProcessClientSession : public ms::Session
45{
46public:
47 virtual void force_requests_to_complete() override {}
48 virtual pid_t process_id() const override { return 0; }
49 virtual void take_snapshot(ms::SnapshotCallback const&) override {}
50 virtual std::shared_ptr<ms::Surface> default_surface() const override { return surface; }
51 virtual void set_lifecycle_state(MirLifecycleState) override {}
52
53 virtual mf::SurfaceId create_surface(ms::SurfaceCreationParameters const& ) override { return mf::SurfaceId(0); }
54 virtual void destroy_surface(mf::SurfaceId) override {}
55 virtual std::shared_ptr<mf::Surface> get_surface(mf::SurfaceId) const override { return surface; }
56 virtual std::string name() const override { return "Shell"; }
57 virtual void hide() override {}
58 virtual void show() override {}
59 virtual void send_display_config(mir::graphics::DisplayConfiguration const&) override {}
60
61 virtual void start_prompt_session() override {}
62 virtual void stop_prompt_session() override {}
63private:
64 std::shared_ptr<ms::Surface> const surface;
65};
66
67InProcessClientSession& global_session()
68{
69 static InProcessClientSession session;
70 return session;
71}
72}
73
74uams::Instance::Instance(std::shared_ptr<ms::SurfaceCoordinator> const &surface_coordinator,
75 std::shared_ptr<ms::SessionListener> const &session_listener,
76 uam::Description* description_,
77 uam::Options *options_)
78 : surface_coordinator(surface_coordinator),
79 session_listener(session_listener),
80 ref_count(1)
81{
82 description = DescriptionPtr(description_,
83 [] (uam::Description* p)
84 {
85 delete p;
86 });
87 options = OptionsPtr(options_,
88 [] (uam::Options* p)
89 {
90 delete p;
91 });
92}
93
94UApplicationInstance* uams::Instance::as_u_application_instance()
95{
96 return static_cast<UApplicationInstance*>(this);
97}
98
99uams::Instance* uams::Instance::from_u_application_instance(UApplicationInstance *u_instance)
100{
101 return static_cast<uams::Instance*>(u_instance);
102}
103
104void uams::Instance::ref()
105{
106 ref_count++;
107}
108
109void uams::Instance::unref()
110{
111 ref_count--;
112 if (ref_count == 0)
113 delete this;
114}
115
116std::shared_ptr<ms::Surface> uams::Instance::create_surface(ms::SurfaceCreationParameters const& parameters)
117{
118 ms::Session& session = global_session();
119 auto surface = surface_coordinator->add_surface(parameters, &session);
120 // Need to call the SessionListener ourselves, else shell not notified of this surface creation
121 session_listener->surface_created(session, surface);
122 return surface;
123}
1240
=== removed file 'src/ubuntu/application/common/mirserver/application_instance_mirserver_priv.h'
--- src/ubuntu/application/common/mirserver/application_instance_mirserver_priv.h 2014-04-15 20:23:07 +0000
+++ src/ubuntu/application/common/mirserver/application_instance_mirserver_priv.h 1970-01-01 00:00:00 +0000
@@ -1,89 +0,0 @@
1/*
2 * Copyright (C) 2013 Canonical Ltd
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU Lesser General Public License version 3 as
6 * published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU Lesser General Public License for more details.
12 *
13 * You should have received a copy of the GNU Lesser General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 * Authored by: Robert Carr <robert.carr@canonical.com>
17 */
18
19#ifndef UBUNTU_APPLICATION_INSTANCE_MIRSERVER_PRIV_H_
20#define UBUNTU_APPLICATION_INSTANCE_MIRSERVER_PRIV_H_
21
22#include <ubuntu/application/instance.h>
23
24#include <memory>
25#include <functional>
26
27namespace mir
28{
29namespace scene
30{
31class Surface;
32class SurfaceCoordinator;
33class SessionListener;
34class SurfaceCreationParameters;
35}
36}
37
38namespace ubuntu
39{
40namespace application
41{
42namespace mir
43{
44class Description;
45class Options;
46
47namespace server
48{
49
50class Instance
51{
52public:
53 Instance(std::shared_ptr< ::mir::scene::SurfaceCoordinator> const& surface_coordinator,
54 std::shared_ptr< ::mir::scene::SessionListener> const& session_listener,
55 ubuntu::application::mir::Description* description,
56 ubuntu::application::mir::Options *options);
57 ~Instance() = default;
58
59 UApplicationInstance* as_u_application_instance();
60 static Instance* from_u_application_instance(UApplicationInstance* u_instance);
61
62 void ref();
63 void unref();
64
65 std::shared_ptr< ::mir::scene::Surface> create_surface( ::mir::scene::SurfaceCreationParameters const& parameters);
66
67protected:
68 Instance(Instance const&) = delete;
69 Instance& operator=(Instance const&) = delete;
70
71private:
72 typedef std::unique_ptr<Description, std::function<void(Description*)>> DescriptionPtr;
73 typedef std::unique_ptr<Options, std::function<void(Options*)>> OptionsPtr;
74
75 OptionsPtr options;
76 DescriptionPtr description;
77
78 std::shared_ptr< ::mir::scene::SurfaceCoordinator> const surface_coordinator;
79 std::shared_ptr< ::mir::scene::SessionListener> const session_listener;
80
81 int ref_count;
82};
83
84}
85}
86}
87} // namespace ubuntu
88
89#endif // UBUNTU_APPLICATION_INSTANCE_MIRSERVER_PRIV_H_
900
=== removed file 'src/ubuntu/application/common/mirserver/ubuntu_application_api_mirserver.cpp'
--- src/ubuntu/application/common/mirserver/ubuntu_application_api_mirserver.cpp 2014-07-15 12:41:35 +0000
+++ src/ubuntu/application/common/mirserver/ubuntu_application_api_mirserver.cpp 1970-01-01 00:00:00 +0000
@@ -1,351 +0,0 @@
1/*
2 * Copyright (C) 2013 Canonical Ltd
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU Lesser General Public License version 3 as
6 * published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU Lesser General Public License for more details.
12 *
13 * You should have received a copy of the GNU Lesser General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 * Authored by: Robert Carr <robert.carr@canonical.com>
17 */
18
19#include "application_instance_mirserver_priv.h"
20#include "window_properties_mirserver_priv.h"
21#include "window_mirserver_priv.h"
22
23#include "mircommon/application_id_mir_priv.h"
24#include "mircommon/application_description_mir_priv.h"
25#include "mircommon/application_options_mir_priv.h"
26#include "mircommon/mir/geometry/rectangles.h"
27
28// C APIs
29#include <ubuntu/application/init.h>
30#include <ubuntu/application/lifecycle_delegate.h>
31#include <ubuntu/application/ui/window.h>
32#include <ubuntu/application/ui/options.h>
33#include <ubuntu/application/ui/session.h>
34#include <ubuntu/application/ui/clipboard.h>
35#include <ubuntu/application/ui/display.h>
36#include <ubuntu/application/sensors/accelerometer.h>
37#include <ubuntu/application/sensors/proximity.h>
38#include <ubuntu/application/sensors/light.h>
39
40#include <mir/default_server_configuration.h>
41
42#include <mir/graphics/display.h>
43#include <mir/graphics/display_buffer.h>
44#include <mir/graphics/platform.h>
45#include <mir/graphics/graphic_buffer_allocator.h>
46#include <mir/graphics/internal_client.h>
47#include <mir/input/input_platform.h>
48
49#include <assert.h>
50
51#include <memory>
52#include <functional>
53
54namespace uam = ubuntu::application::mir;
55namespace uams = ubuntu::application::mir::server;
56
57namespace
58{
59
60struct MirServerContext
61{
62 std::shared_ptr<mir::graphics::Display> display;
63 std::shared_ptr<mir::graphics::GraphicBufferAllocator> buffer_allocator;
64 std::shared_ptr<mir::scene::SurfaceCoordinator> surface_coordinator;
65 std::shared_ptr<mir::scene::SessionListener> session_listener;
66 std::shared_ptr<mir::input::receiver::InputPlatform> input_platform;
67 std::shared_ptr<mir::graphics::InternalClient> egl_client;
68};
69
70MirServerContext *
71global_mirserver_context()
72{
73 static MirServerContext context;
74 return &context;
75}
76}
77
78extern "C"
79{
80void u_application_init(void *args)
81{
82 auto context = global_mirserver_context();
83 mir::DefaultServerConfiguration* config = reinterpret_cast<mir::DefaultServerConfiguration*>(args);
84
85 context->surface_coordinator = config->the_surface_coordinator();
86 context->buffer_allocator = config->the_buffer_allocator();
87 context->display = config->the_display();
88 context->session_listener = config->the_session_listener();
89 context->input_platform = mir::input::receiver::InputPlatform::create();
90 context->egl_client = config->the_graphics_platform()->create_internal_client();
91}
92
93void u_application_finish()
94{
95 auto context = global_mirserver_context();
96
97 context->display.reset();
98 context->surface_coordinator.reset();
99 context->session_listener.reset();
100 context->input_platform.reset();
101 context->egl_client.reset();
102}
103
104UApplicationInstance* u_application_instance_new_from_description_with_options(UApplicationDescription* u_description, UApplicationOptions* u_options)
105{
106 auto surface_coordinator = global_mirserver_context()->surface_coordinator;
107 assert(surface_coordinator);
108 auto session_listener = global_mirserver_context()->session_listener;
109 assert(session_listener);
110
111 auto description = uam::Description::from_u_application_description(u_description);
112 auto options = uam::Options::from_u_application_options(u_options);
113
114 auto instance = new uams::Instance(surface_coordinator, session_listener, description, options);
115
116 return instance->as_u_application_instance();
117}
118
119void
120u_application_instance_ref(UApplicationInstance *u_instance)
121{
122 auto instance = uams::Instance::from_u_application_instance(u_instance);
123 instance->ref();
124}
125
126void
127u_application_instance_unref(UApplicationInstance *u_instance)
128{
129 auto instance = uams::Instance::from_u_application_instance(u_instance);
130 instance->unref();
131}
132
133void
134u_application_instance_destroy(UApplicationInstance *instance)
135{
136 // TODO<papi>: What are the proper semantics here.
137 u_application_instance_unref(instance);
138}
139
140void
141u_application_instance_run(UApplicationInstance *instance)
142{
143 // TODO<papi>: What is this supposed to do? Seems to be no-op on hybris.
144 (void) instance;
145}
146
147void ua_ui_set_clipboard_content(void* content, size_t content_size)
148{
149 // TODO<mir,papi>: Implement. Probably need more arguments?
150 (void) content;
151 (void) content_size;
152}
153
154void ua_ui_get_clipboard_content(void** out_content, size_t* out_content_size)
155{
156 // TODO<mir,papi>: Implement
157 *out_content = NULL;
158 *out_content_size = 0;
159}
160
161UAUiDisplay* ua_ui_display_new_with_index(size_t index)
162{
163 // TODO<mir>: Make use of index. This is kind of strangely done...
164 return reinterpret_cast<UAUiDisplay*>(index);
165}
166
167void ua_ui_display_destroy(UAUiDisplay* display)
168{
169 // TODO: Implement. Or is this a noop for mirserver?
170 (void) display;
171}
172
173uint32_t ua_ui_display_query_horizontal_res(UAUiDisplay* display)
174{
175 (void) display; // TODO<mir>: Multiple displays
176
177 auto mir_display = global_mirserver_context()->display;
178 assert(mir_display);
179
180 /* TODO: Get proper configuration */
181 mir::geometry::Rectangles view_area;
182 mir_display->for_each_display_buffer([&view_area](mir::graphics::DisplayBuffer const& db)
183 {
184 view_area.add(db.view_area());
185 });
186 mir::geometry::Size const display_size{view_area.bounding_rectangle().size};
187
188 return display_size.width.as_uint32_t();
189}
190
191uint32_t ua_ui_display_query_vertical_res(UAUiDisplay* display)
192{
193 (void) display; // TODO<mir>: Multiple displays
194
195 auto mir_display = global_mirserver_context()->display;
196 assert(mir_display);
197
198 /* TODO: Get proper configuration */
199 mir::geometry::Rectangles view_area;
200 mir_display->for_each_display_buffer([&view_area](mir::graphics::DisplayBuffer const& db)
201 {
202 view_area.add(db.view_area());
203 });
204 mir::geometry::Size const display_size{view_area.bounding_rectangle().size};
205
206 return display_size.height.as_uint32_t();
207}
208
209EGLNativeDisplayType ua_ui_display_get_native_type(UAUiDisplay* display)
210{
211 auto internal_client = global_mirserver_context()->egl_client;
212 assert(internal_client);
213
214 return internal_client->egl_native_display();
215}
216
217namespace
218{
219static MirPixelFormat choose_pixel_format(std::shared_ptr<mir::graphics::GraphicBufferAllocator> const& allocator)
220{
221 auto formats = allocator->supported_pixel_formats();
222 return formats[0];
223}
224}
225
226UAUiWindowProperties* ua_ui_window_properties_new_for_normal_window()
227{
228 auto properties = new uams::WindowProperties();
229
230 return properties->as_u_window_properties();
231}
232
233void ua_ui_window_properties_destroy(UAUiWindowProperties* u_properties)
234{
235 auto properties = uams::WindowProperties::from_u_window_properties(u_properties);
236 delete properties;
237}
238
239void ua_ui_window_properties_set_titlen(UAUiWindowProperties* u_properties, const char* title, size_t title_length)
240{
241 auto properties = uams::WindowProperties::from_u_window_properties(u_properties);
242 properties->set_title(title, title_length);
243}
244
245const char* ua_ui_window_properties_get_title(UAUiWindowProperties* u_properties)
246{
247 auto properties = uams::WindowProperties::from_u_window_properties(u_properties);
248 return properties->surface_parameters().name.c_str();
249}
250
251void ua_ui_window_properties_set_role(UAUiWindowProperties* properties, UAUiWindowRole role)
252{
253 // TODO<papi>: Implement. Or is this a noop for us?
254 (void) properties;
255 (void) role;
256}
257
258void ua_ui_window_properties_set_event_cb_and_ctx(UAUiWindowProperties*, UAUiWindowEventCb, void*)
259{
260}
261
262void ua_ui_window_properties_set_input_cb_and_ctx(UAUiWindowProperties* u_properties, UAUiWindowInputEventCb cb, void* ctx)
263{
264 auto properties = uams::WindowProperties::from_u_window_properties(u_properties);
265 properties->set_input_cb_and_ctx(cb, ctx);
266}
267
268void ua_ui_window_properties_set_dimensions(UAUiWindowProperties *u_properties, uint32_t width, uint32_t height)
269{
270 auto properties = uams::WindowProperties::from_u_window_properties(u_properties);
271 properties->set_dimensions(width, height);
272}
273
274UAUiWindow* ua_ui_window_new_for_application_with_properties(UApplicationInstance* u_instance, UAUiWindowProperties* u_properties)
275{
276 auto input_platform = global_mirserver_context()->input_platform;
277 assert(input_platform);
278 auto internal_client = global_mirserver_context()->egl_client;
279 assert(internal_client);
280
281 auto instance = uams::Instance::from_u_application_instance(u_instance);
282 auto properties = uams::WindowProperties::from_u_window_properties(u_properties);
283
284 // A bit of a wart.
285 properties->set_pixel_format(choose_pixel_format(global_mirserver_context()->buffer_allocator));
286
287 auto window = new uams::Window(*instance, properties, input_platform, internal_client);
288
289 return window->as_u_window();
290}
291
292void ua_ui_window_destroy(UAUiWindow* u_window)
293{
294 auto window = uams::Window::from_u_window(u_window);
295 delete window;
296}
297
298void ua_ui_window_get_size(UAUiWindow* u_window, uint32_t *width, uint32_t *height)
299{
300 (void) u_window;
301 (void) width;
302 (void) height;
303}
304
305UStatus ua_ui_window_move(UAUiWindow* window, uint32_t x, uint32_t y)
306{
307 // TODO<mir,papi>: Implement. But should this exist?
308 (void) window;
309 (void) x;
310 (void) y;
311 return (UStatus) 0;
312}
313
314UStatus ua_ui_window_resize(UAUiWindow* window, uint32_t width, uint32_t height)
315{
316 // TODO<mir>: Implement
317 (void) window;
318 (void) width;
319 (void) height;
320 return (UStatus) 0;
321}
322
323UStatus ua_ui_window_hide(UAUiWindow* window)
324{
325 // TODO<mir>: Implement
326 (void) window;
327 return (UStatus) 0;
328}
329
330UStatus ua_ui_window_show(UAUiWindow* window)
331{
332 // TODO<mir>: Implement
333 (void) window;
334 return (UStatus) 0;
335}
336
337void ua_ui_window_request_fullscreen(UAUiWindow* window)
338{
339 // TODO<mir>: Implement
340 (void) window;
341}
342
343EGLNativeWindowType ua_ui_window_get_native_type(UAUiWindow* u_window)
344{
345 auto window = uams::Window::from_u_window(u_window);
346
347 return window->get_native_type();
348}
349
350// TODO: Sensors
351}
3520
=== removed file 'src/ubuntu/application/common/mirserver/window_mirserver.cpp'
--- src/ubuntu/application/common/mirserver/window_mirserver.cpp 2014-07-15 12:41:35 +0000
+++ src/ubuntu/application/common/mirserver/window_mirserver.cpp 1970-01-01 00:00:00 +0000
@@ -1,85 +0,0 @@
1/*
2 * Copyright (C) 2013 Canonical Ltd
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU Lesser General Public License version 3 as
6 * published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU Lesser General Public License for more details.
12 *
13 * You should have received a copy of the GNU Lesser General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 * Authored by: Robert Carr <robert.carr@canonical.com>
17 */
18
19#include "mircommon/event_helpers_mir.h"
20
21#include "window_mirserver_priv.h"
22#include "application_instance_mirserver_priv.h"
23#include "window_properties_mirserver_priv.h"
24
25
26#include <mir/scene/surface.h>
27#include <mir/input/input_platform.h>
28#include <mir/input/input_receiver_thread.h>
29#include <mir/graphics/internal_client.h>
30#include <mir/graphics/internal_surface.h>
31
32namespace uams = ubuntu::application::mir::server;
33namespace uaum = ubuntu::application::ui::mir;
34
35namespace mf = mir::frontend;
36namespace mg = mir::graphics;
37namespace msh = mir::shell;
38namespace mircv = mir::input::receiver;
39
40namespace
41{
42
43static void ua_ui_window_handle_event(UAUiWindowInputEventCb cb, void* ctx, MirEvent* mir_event)
44{
45 Event ubuntu_ev;
46 auto translated_event = uaum::event_to_ubuntu_deprecated_event(mir_event, ubuntu_ev);
47 if (translated_event)
48 cb(ctx, &ubuntu_ev);
49}
50
51}
52
53uams::Window::Window(uams::Instance& instance, uams::WindowProperties* properties,
54 std::shared_ptr<mircv::InputPlatform> const& input_platform,
55 std::shared_ptr<mg::InternalClient> const& internal_client)
56 : window_properties(properties),
57 surface(instance.create_surface(properties->surface_parameters())),
58 internal_client(internal_client)
59{
60 input_thread = input_platform->create_input_thread(surface->client_input_fd(),
61 std::bind(ua_ui_window_handle_event, properties->input_cb(), properties->input_context(), std::placeholders::_1));
62 input_thread->start();
63}
64
65uams::Window::~Window()
66{
67 input_thread->stop();
68 input_thread->join();
69}
70
71UAUiWindow* uams::Window::as_u_window()
72{
73 return static_cast<UAUiWindow*>(this);
74}
75
76uams::Window* uams::Window::from_u_window(UAUiWindow *u_window)
77{
78 return static_cast<uams::Window*>(u_window);
79}
80
81EGLNativeWindowType uams::Window::get_native_type()
82{
83 auto mir_surface = mf::as_internal_surface(surface);
84 return internal_client->egl_native_window(mir_surface);
85}
860
=== removed file 'src/ubuntu/application/common/mirserver/window_mirserver_priv.h'
--- src/ubuntu/application/common/mirserver/window_mirserver_priv.h 2014-04-04 10:38:36 +0000
+++ src/ubuntu/application/common/mirserver/window_mirserver_priv.h 1970-01-01 00:00:00 +0000
@@ -1,92 +0,0 @@
1/*
2 * Copyright (C) 2013 Canonical Ltd
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU Lesser General Public License version 3 as
6 * published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU Lesser General Public License for more details.
12 *
13 * You should have received a copy of the GNU Lesser General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 * Authored by: Robert Carr <robert.carr@canonical.com>
17 */
18
19#ifndef UBUNTU_APPLICATION_UI_WINDOW_MIRSERVER_PRIV_H_
20#define UBUNTU_APPLICATION_UI_WINDOW_MIRSERVER_PRIV_H_
21
22#include <ubuntu/application/ui/window.h>
23
24#include <EGL/egl.h>
25
26#include <stddef.h>
27
28#include <functional>
29#include <memory>
30#include <string>
31
32namespace mir
33{
34namespace scene
35{
36class Surface;
37}
38namespace input
39{
40namespace receiver
41{
42class InputReceiverThread;
43class InputPlatform;
44}
45}
46namespace graphics
47{
48class InternalClient;
49}
50}
51
52namespace ubuntu
53{
54namespace application
55{
56namespace mir
57{
58namespace server
59{
60class Instance;
61class WindowProperties;
62
63class Window
64{
65public:
66 Window(Instance& instance, WindowProperties* properties,
67 std::shared_ptr< ::mir::input::receiver::InputPlatform> const& platform,
68 std::shared_ptr< ::mir::graphics::InternalClient> const& internal_client);
69 ~Window();
70
71 UAUiWindow* as_u_window();
72 static Window* from_u_window(UAUiWindow* u_window);
73
74 EGLNativeWindowType get_native_type();
75
76protected:
77 Window(Window const&) = delete;
78 Window& operator=(Window const&) = delete;
79
80private:
81 std::unique_ptr<WindowProperties> window_properties;
82 std::shared_ptr< ::mir::scene::Surface> surface;
83 std::shared_ptr< ::mir::input::receiver::InputReceiverThread> input_thread;
84 std::shared_ptr< ::mir::graphics::InternalClient> internal_client;
85};
86
87}
88}
89}
90}
91
92#endif // UBUNTU_APPLICATION_UI_WINDOW_MIRSERVER_PRIV_H_
930
=== removed file 'src/ubuntu/application/common/mirserver/window_properties_mirserver.cpp'
--- src/ubuntu/application/common/mirserver/window_properties_mirserver.cpp 2014-07-15 12:41:35 +0000
+++ src/ubuntu/application/common/mirserver/window_properties_mirserver.cpp 1970-01-01 00:00:00 +0000
@@ -1,77 +0,0 @@
1/*
2 * Copyright (C) 2013 Canonical Ltd
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU Lesser General Public License version 3 as
6 * published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU Lesser General Public License for more details.
12 *
13 * You should have received a copy of the GNU Lesser General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 * Authored by: Robert Carr <robert.carr@canonical.com>
17 */
18
19#include "window_properties_mirserver_priv.h"
20
21#include <string>
22
23namespace uams = ubuntu::application::mir::server;
24namespace ms = mir::scene;
25
26uams::WindowProperties::WindowProperties()
27 : parameters(ms::a_surface()),
28 cb(nullptr),
29 input_ctx(nullptr)
30{
31}
32
33UAUiWindowProperties* uams::WindowProperties::as_u_window_properties()
34{
35 return static_cast<UAUiWindowProperties*>(this);
36}
37
38uams::WindowProperties* uams::WindowProperties::from_u_window_properties(UAUiWindowProperties* u_properties)
39{
40 return static_cast<uams::WindowProperties*>(u_properties);
41}
42
43void uams::WindowProperties::set_title(char const* title, size_t length)
44{
45 parameters = parameters.of_name(std::string(title, length));
46}
47
48void uams::WindowProperties::set_input_cb_and_ctx(UAUiWindowInputEventCb callback, void* ctx)
49{
50 cb = callback;
51 input_ctx = ctx;
52}
53
54void uams::WindowProperties::set_dimensions(uint32_t width, uint32_t height)
55{
56 parameters = parameters.of_size(width, height);
57}
58
59void uams::WindowProperties::set_pixel_format(MirPixelFormat const& format)
60{
61 parameters = parameters.of_pixel_format(format);
62}
63
64ms::SurfaceCreationParameters const& uams::WindowProperties::surface_parameters() const
65{
66 return parameters;
67}
68
69UAUiWindowInputEventCb uams::WindowProperties::input_cb() const
70{
71 return cb;
72}
73
74void* uams::WindowProperties::input_context() const
75{
76 return input_ctx;
77}
780
=== removed file 'src/ubuntu/application/common/mirserver/window_properties_mirserver_priv.h'
--- src/ubuntu/application/common/mirserver/window_properties_mirserver_priv.h 2014-07-15 12:41:35 +0000
+++ src/ubuntu/application/common/mirserver/window_properties_mirserver_priv.h 1970-01-01 00:00:00 +0000
@@ -1,70 +0,0 @@
1/*
2 * Copyright (C) 2013 Canonical Ltd
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU Lesser General Public License version 3 as
6 * published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU Lesser General Public License for more details.
12 *
13 * You should have received a copy of the GNU Lesser General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 * Authored by: Robert Carr <robert.carr@canonical.com>
17 */
18
19#ifndef UBUNTU_APPLICATION_UI_WINDOW_PROPERTIES_MIRSERVER_PRIV_H_
20#define UBUNTU_APPLICATION_UI_WINDOW_PROPERTIES_MIRSERVER_PRIV_H_
21
22#include <ubuntu/application/ui/window.h>
23
24#include <mir/scene/surface_creation_parameters.h>
25#include <mir_toolkit/common.h>
26
27namespace ubuntu
28{
29namespace application
30{
31namespace mir
32{
33namespace server
34{
35
36class WindowProperties
37{
38public:
39 WindowProperties();
40 ~WindowProperties() = default;
41
42 UAUiWindowProperties* as_u_window_properties();
43 static WindowProperties* from_u_window_properties(UAUiWindowProperties* u_properties);
44
45 void set_title(char const* title, size_t length);
46 void set_input_cb_and_ctx(UAUiWindowInputEventCb cb, void* ctx);
47 void set_dimensions(uint32_t width, uint32_t height);
48 void set_pixel_format( MirPixelFormat const& format);
49
50 ::mir::scene::SurfaceCreationParameters const& surface_parameters() const;
51 UAUiWindowInputEventCb input_cb() const;
52 void* input_context() const;
53
54protected:
55 WindowProperties(WindowProperties const&) = delete;
56 WindowProperties& operator=(WindowProperties const&) = delete;
57
58private:
59 ::mir::scene::SurfaceCreationParameters parameters;
60
61 UAUiWindowInputEventCb cb;
62 void *input_ctx;
63};
64
65}
66}
67}
68}
69
70#endif
710
=== modified file 'src/ubuntu/application/desktop/CMakeLists.txt'
--- src/ubuntu/application/desktop/CMakeLists.txt 2014-06-24 19:59:46 +0000
+++ src/ubuntu/application/desktop/CMakeLists.txt 2014-11-08 22:26:49 +0000
@@ -8,31 +8,11 @@
8 ubuntu_application_sensors_desktop.cpp8 ubuntu_application_sensors_desktop.cpp
9)9)
1010
11add_library(
12 ubuntu_application_api_desktop_mirserver MODULE
13
14 module.cpp
15 module_version.h
16 ubuntu_application_sensors_desktop.cpp
17)
18
19target_link_libraries(11target_link_libraries(
20 ubuntu_application_api_desktop_mirclient12 ubuntu_application_api_desktop_mirclient
2113
22 "-Wl,--whole-archive"14 "-Wl,--whole-archive"
23 ubuntu_application_api_mirclient15 ubuntu_application_api_mirclient
24 ubuntu_application_api_mircommon
25 ${UBUNTU_APPLICATION_API_LINK_LIBRARIES}
26 "-Wl,--no-whole-archive"
27 #TODO: Alarms
28)
29
30target_link_libraries(
31 ubuntu_application_api_desktop_mirserver
32
33 "-Wl,--whole-archive"
34 ubuntu_application_api_mirserver
35 ubuntu_application_api_mircommon
36 ${UBUNTU_APPLICATION_API_LINK_LIBRARIES}16 ${UBUNTU_APPLICATION_API_LINK_LIBRARIES}
37 "-Wl,--no-whole-archive"17 "-Wl,--no-whole-archive"
38 #TODO: Alarms18 #TODO: Alarms
@@ -45,22 +25,9 @@
45 SOVERSION ${UBUNTU_PLATFORM_API_VERSION_MAJOR}25 SOVERSION ${UBUNTU_PLATFORM_API_VERSION_MAJOR}
46)26)
4727
48set_target_properties(
49 ubuntu_application_api_desktop_mirserver
50 PROPERTIES
51 VERSION ${UBUNTU_PLATFORM_API_VERSION_MAJOR}.${UBUNTU_PLATFORM_API_VERSION_MINOR}.${UBUNTU_PLATFORM_API_VERSION_PATCH}
52 SOVERSION ${UBUNTU_PLATFORM_API_VERSION_MAJOR}
53)
54install(28install(
55 TARGETS ubuntu_application_api_desktop_mirclient29 TARGETS ubuntu_application_api_desktop_mirclient
56 # this is not a development library to compile against, users should always30 # this is not a development library to compile against, users should always
57 # specify the SONAME; so don't build a *.so31 # specify the SONAME; so don't build a *.so
58 LIBRARY DESTINATION "${LIB_INSTALL_DIR}" NAMELINK_SKIP32 LIBRARY DESTINATION "${LIB_INSTALL_DIR}" NAMELINK_SKIP
59)33)
60
61install(
62 TARGETS ubuntu_application_api_desktop_mirserver
63 # this is not a development library to compile against, users should always
64 # specify the SONAME; so don't build a *.so
65 LIBRARY DESTINATION "${LIB_INSTALL_DIR}" NAMELINK_SKIP
66)
6734
=== modified file 'src/ubuntu/application/desktop/module_version.h'
--- src/ubuntu/application/desktop/module_version.h 2014-09-24 20:24:09 +0000
+++ src/ubuntu/application/desktop/module_version.h 2014-11-08 22:26:49 +0000
@@ -1,3 +1,3 @@
1#define MODULE_VERSION_MAJOR 21#define MODULE_VERSION_MAJOR 3
2#define MODULE_VERSION_MINOR 42#define MODULE_VERSION_MINOR 0
3#define MODULE_VERSION_PATCH 03#define MODULE_VERSION_PATCH 0
44
=== modified file 'src/ubuntu/application/testbackend/module_version.h'
--- src/ubuntu/application/testbackend/module_version.h 2014-09-24 20:24:09 +0000
+++ src/ubuntu/application/testbackend/module_version.h 2014-11-08 22:26:49 +0000
@@ -1,3 +1,3 @@
1#define MODULE_VERSION_MAJOR 21#define MODULE_VERSION_MAJOR 3
2#define MODULE_VERSION_MINOR 42#define MODULE_VERSION_MINOR 0
3#define MODULE_VERSION_PATCH 03#define MODULE_VERSION_PATCH 0
44
=== modified file 'src/ubuntu/application/touch/CMakeLists.txt'
--- src/ubuntu/application/touch/CMakeLists.txt 2014-05-26 12:56:45 +0000
+++ src/ubuntu/application/touch/CMakeLists.txt 2014-11-08 22:26:49 +0000
@@ -9,31 +9,11 @@
9 module_version.h9 module_version.h
10)10)
1111
12add_library(
13 ubuntu_application_api_touch_mirserver MODULE
14
15 module.cpp
16 module_version.h
17)
18
19target_link_libraries(12target_link_libraries(
20 ubuntu_application_api_touch_mirclient13 ubuntu_application_api_touch_mirclient
2114
22 "-Wl,--whole-archive"15 "-Wl,--whole-archive"
23 ubuntu_application_api_mirclient16 ubuntu_application_api_mirclient
24 ubuntu_application_api_mircommon
25 ubuntu_application_api_hybris
26 ${UBUNTU_APPLICATION_API_LINK_LIBRARIES}
27 "-Wl,--no-whole-archive"
28 #TODO: Alarms
29)
30
31target_link_libraries(
32 ubuntu_application_api_touch_mirserver
33
34 "-Wl,--whole-archive"
35 ubuntu_application_api_mirserver
36 ubuntu_application_api_mircommon
37 ubuntu_application_api_hybris17 ubuntu_application_api_hybris
38 ${UBUNTU_APPLICATION_API_LINK_LIBRARIES}18 ${UBUNTU_APPLICATION_API_LINK_LIBRARIES}
39 "-Wl,--no-whole-archive"19 "-Wl,--no-whole-archive"
@@ -47,22 +27,9 @@
47 SOVERSION ${UBUNTU_PLATFORM_API_VERSION_MAJOR}27 SOVERSION ${UBUNTU_PLATFORM_API_VERSION_MAJOR}
48)28)
4929
50set_target_properties(
51 ubuntu_application_api_touch_mirserver
52 PROPERTIES
53 VERSION ${UBUNTU_PLATFORM_API_VERSION_MAJOR}.${UBUNTU_PLATFORM_API_VERSION_MINOR}.${UBUNTU_PLATFORM_API_VERSION_PATCH}
54 SOVERSION ${UBUNTU_PLATFORM_API_VERSION_MAJOR}
55)
56install(30install(
57 TARGETS ubuntu_application_api_touch_mirclient31 TARGETS ubuntu_application_api_touch_mirclient
58 # this is not a development library to compile against, users should always32 # this is not a development library to compile against, users should always
59 # specify the SONAME; so don't build a *.so33 # specify the SONAME; so don't build a *.so
60 LIBRARY DESTINATION "${LIB_INSTALL_DIR}" NAMELINK_SKIP34 LIBRARY DESTINATION "${LIB_INSTALL_DIR}" NAMELINK_SKIP
61)35)
62
63install(
64 TARGETS ubuntu_application_api_touch_mirserver
65 # this is not a development library to compile against, users should always
66 # specify the SONAME; so don't build a *.so
67 LIBRARY DESTINATION "${LIB_INSTALL_DIR}" NAMELINK_SKIP
68)
6936
=== modified file 'src/ubuntu/application/touch/module_version.h'
--- src/ubuntu/application/touch/module_version.h 2014-09-24 20:24:09 +0000
+++ src/ubuntu/application/touch/module_version.h 2014-11-08 22:26:49 +0000
@@ -1,3 +1,3 @@
1#define MODULE_VERSION_MAJOR 21#define MODULE_VERSION_MAJOR 3
2#define MODULE_VERSION_MINOR 42#define MODULE_VERSION_MINOR 0
3#define MODULE_VERSION_PATCH 03#define MODULE_VERSION_PATCH 0

Subscribers

People subscribed via source and target branches