Mir

Merge lp:~andreas-pokorny/mir/drop-input-configuration into lp:mir

Proposed by Andreas Pokorny
Status: Merged
Approved by: Alan Griffiths
Approved revision: no longer in the source branch.
Merged at revision: 1977
Proposed branch: lp:~andreas-pokorny/mir/drop-input-configuration
Merge into: lp:mir
Prerequisite: lp:~andreas-pokorny/mir/simplify-android-input-manager-test-fixtures
Diff against target: 1342 lines (+151/-609)
29 files modified
include/server/mir/default_server_configuration.h (+14/-4)
include/server/mir/input/input_configuration.h (+0/-46)
include/server/mir/server_configuration.h (+0/-1)
server-ABI-sha1sums (+2/-3)
src/include/server/mir/input/android/default_android_input_configuration.h (+0/-90)
src/server/display_server.cpp (+0/-2)
src/server/input/CMakeLists.txt (+0/-1)
src/server/input/android/CMakeLists.txt (+0/-1)
src/server/input/android/default_android_input_configuration.cpp (+0/-123)
src/server/input/default_configuration.cpp (+73/-34)
src/server/input/null_input_configuration.cpp (+0/-27)
src/server/input/null_input_configuration.h (+0/-46)
src/server/symbols.map (+10/-16)
tests/acceptance-tests/test_client_cursor_api.cpp (+1/-1)
tests/acceptance-tests/test_client_input.cpp (+1/-1)
tests/include/mir_test/fake_event_hub_input_configuration.h (+0/-79)
tests/include/mir_test_framework/fake_event_hub_server_configuration.h (+3/-12)
tests/include/mir_test_framework/input_testing_server_configuration.h (+3/-4)
tests/include/mir_test_framework/stubbed_server_configuration.h (+1/-1)
tests/integration-tests/input/android/test_android_cursor_listener.cpp (+1/-5)
tests/integration-tests/input/android/test_android_input_manager.cpp (+2/-9)
tests/integration-tests/session_management.cpp (+0/-1)
tests/integration-tests/test_server_shutdown.cpp (+11/-18)
tests/integration-tests/test_session.cpp (+6/-6)
tests/mir_test_doubles/CMakeLists.txt (+0/-1)
tests/mir_test_doubles/fake_event_hub_input_configuration.cpp (+0/-50)
tests/mir_test_framework/fake_event_hub_server_configuration.cpp (+10/-12)
tests/mir_test_framework/input_testing_server_options.cpp (+9/-11)
tests/mir_test_framework/stubbed_server_configuration.cpp (+4/-4)
To merge this branch: bzr merge lp:~andreas-pokorny/mir/drop-input-configuration
Reviewer Review Type Date Requested Status
Daniel van Vugt Approve
Alan Griffiths Approve
PS Jenkins bot (community) continuous-integration Approve
Review via email: mp+237751@code.launchpad.net

Commit message

Drops InputConfiguration. The input configuration code is now part of DefaultServerConfiguration

Description of the change

This change removes the extra configuration tool InputConfiguration that was used to group the differences between nested, disabled and default input setup. After separating the input dispatching related parts and after providing moving generic parts to DefaultServerConfiguration, InputConfiguration only held the InputManager.

The setup code is now moved to DefaultServerConfiguration.

To post a comment you must log in.
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 :

Looks like a sensible tidy up

review: Approve
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Looks reasonable. Not yet perfect but seems like an improvement :)

Suggestion: Double-check all the functions you're moving into DefaultServerConfiguration need to be there at all. With so many moving parts it's quite possible some are unused or just used once and can easily be eliminated/privatised.

review: Approve
Revision history for this message
Andreas Pokorny (andreas-pokorny) wrote :

> Looks reasonable. Not yet perfect but seems like an improvement :)
>
> Suggestion: Double-check all the functions you're moving into
> DefaultServerConfiguration need to be there at all. With so many moving parts
> it's quite possible some are unused or just used once and can easily be
> eliminated/privatised.

Thart part will be addressed with lp:~andreas-pokorny/mir/abi-stable-server-configuration-with-type_info or lp:~andreas-pokorny/mir/abi-stable-server-configuration-with-interface-names depending on which one is preferred by the team.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'include/server/mir/default_server_configuration.h'
2--- include/server/mir/default_server_configuration.h 2014-10-09 09:59:52 +0000
3+++ include/server/mir/default_server_configuration.h 2014-10-09 09:59:52 +0000
4@@ -26,6 +26,10 @@
5
6 namespace android
7 {
8+class EventHubInterface;
9+class InputReaderInterface;
10+class InputReaderPolicyInterface;
11+class InputListenerInterface;
12 class InputDispatcherInterface;
13 class InputEnumerator;
14 class InputDispatcherPolicyInterface;
15@@ -120,7 +124,6 @@
16 class InputManager;
17 class CompositeEventFilter;
18 class InputChannelFactory;
19-class InputConfiguration;
20 class CursorListener;
21 class TouchVisualizer;
22 class InputRegion;
23@@ -170,7 +173,6 @@
24 std::shared_ptr<ServerStatusListener> the_server_status_listener() override;
25 std::shared_ptr<DisplayChanger> the_display_changer() override;
26 std::shared_ptr<graphics::Platform> the_graphics_platform() override;
27- std::shared_ptr<input::InputConfiguration> the_input_configuration() override;
28 std::shared_ptr<input::InputDispatcher> the_input_dispatcher() override;
29 std::shared_ptr<EmergencyCleanup> the_emergency_cleanup() override;
30 /**
31@@ -300,6 +302,11 @@
32 virtual std::shared_ptr<input::InputRegion> the_input_region();
33 virtual std::shared_ptr<input::InputSender> the_input_sender();
34 virtual std::shared_ptr<input::InputSendObserver> the_input_send_observer();
35+ virtual std::shared_ptr<droidinput::EventHubInterface> the_event_hub();
36+ virtual std::shared_ptr<droidinput::InputReaderInterface> the_input_reader();
37+ virtual std::shared_ptr<droidinput::InputReaderPolicyInterface> the_input_reader_policy();
38+ virtual std::shared_ptr<droidinput::InputListenerInterface> the_input_translator();
39+ virtual std::shared_ptr<input::android::InputThread> the_input_reader_thread();
40 /** @} */
41
42 /** @name logging configuration - customization
43@@ -341,15 +348,18 @@
44
45 CachedPtr<input::android::InputRegistrar> input_registrar;
46 CachedPtr<input::android::InputThread> dispatcher_thread;
47+ CachedPtr<input::android::InputThread> input_reader_thread;
48 CachedPtr<droidinput::InputDispatcherInterface> android_input_dispatcher;
49 CachedPtr<droidinput::InputEnumerator> input_target_enumerator;
50 CachedPtr<droidinput::InputDispatcherPolicyInterface> android_dispatcher_policy;
51+ CachedPtr<droidinput::EventHubInterface> event_hub;
52+ CachedPtr<droidinput::InputReaderPolicyInterface> input_reader_policy;
53+ CachedPtr<droidinput::InputReaderInterface> input_reader;
54+ CachedPtr<droidinput::InputListenerInterface> input_translator;
55
56 CachedPtr<frontend::Connector> connector;
57 CachedPtr<frontend::Connector> prompt_connector;
58
59- CachedPtr<input::InputConfiguration> input_configuration;
60-
61 CachedPtr<input::InputReport> input_report;
62 CachedPtr<input::CompositeEventFilter> composite_event_filter;
63 CachedPtr<input::InputManager> input_manager;
64
65=== removed file 'include/server/mir/input/input_configuration.h'
66--- include/server/mir/input/input_configuration.h 2014-10-06 03:02:44 +0000
67+++ include/server/mir/input/input_configuration.h 1970-01-01 00:00:00 +0000
68@@ -1,46 +0,0 @@
69-/*
70- * Copyright © 2014 Canonical Ltd.
71- *
72- * This program is free software: you can redistribute it and/or modify it
73- * under the terms of the GNU General Public License version 3,
74- * as published by the Free Software Foundation.
75- *
76- * This program is distributed in the hope that it will be useful,
77- * but WITHOUT ANY WARRANTY; without even the implied warranty of
78- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
79- * GNU General Public License for more details.
80- *
81- * You should have received a copy of the GNU General Public License
82- * along with this program. If not, see <http://www.gnu.org/licenses/>.
83- *
84- * Authored by: Andreas Pokorny <andreas.pokorny@canonical.com>
85- */
86-
87-#ifndef MIR_INPUT_INPUT_CONFIGURATION_H_
88-#define MIR_INPUT_INPUT_CONFIGURATION_H_
89-
90-#include <memory>
91-
92-namespace mir
93-{
94-namespace input
95-{
96-class InputManager;
97-
98-class InputConfiguration
99-{
100-public:
101- virtual ~InputConfiguration() = default;
102-
103- virtual std::shared_ptr<InputManager> the_input_manager() = 0;
104-
105-protected:
106- InputConfiguration() = default;
107- InputConfiguration(InputConfiguration const&) = delete;
108- InputConfiguration& operator=(InputConfiguration const&) = delete;
109-};
110-
111-}
112-}
113-
114-#endif
115
116=== modified file 'include/server/mir/server_configuration.h'
117--- include/server/mir/server_configuration.h 2014-09-30 06:11:33 +0000
118+++ include/server/mir/server_configuration.h 2014-10-09 09:59:52 +0000
119@@ -69,7 +69,6 @@
120 virtual std::shared_ptr<ServerStatusListener> the_server_status_listener() = 0;
121 virtual std::shared_ptr<DisplayChanger> the_display_changer() = 0;
122 virtual std::shared_ptr<graphics::Platform> the_graphics_platform() = 0;
123- virtual std::shared_ptr<input::InputConfiguration> the_input_configuration() = 0;
124 virtual std::shared_ptr<EmergencyCleanup> the_emergency_cleanup() = 0;
125 virtual auto the_fatal_error_strategy() -> void (*)(char const* reason, ...) = 0;
126
127
128=== modified file 'server-ABI-sha1sums'
129--- server-ABI-sha1sums 2014-10-09 09:59:52 +0000
130+++ server-ABI-sha1sums 2014-10-09 09:59:52 +0000
131@@ -48,7 +48,7 @@
132 a9f284ba4b05d58fd3eeb628d1f56fe4ac188526 include/server/mir/compositor/compositor_id.h
133 5205e30c5fdb5b5d8803064fc1abd102db59c4e7 include/server/mir/compositor/scene_element.h
134 4fcf34e424128b87ddc76733594e32e09ebbd486 include/server/mir/compositor/scene.h
135-92563e191509318a07095aa484fbb69fb07aeaac include/server/mir/default_server_configuration.h
136+afd4ec03c3aadc98b7dbee4e35d1d3bcb9a9334e include/server/mir/default_server_configuration.h
137 af1ff0714be973ac76d56006a2e5991f68cd1dec include/server/mir/display_server.h
138 a35c5495d8fd28fc0e375b17495fc5caab51b329 include/server/mir/emergency_cleanup.h
139 65db331f1c0e956eced5c9fc73a2b2122dbc8dc7 include/server/mir/frontend/connection_creator.h
140@@ -74,7 +74,6 @@
141 cef18b7215fbe00550d18c0aa0f79b641cff494e include/server/mir/input/cursor_listener.h
142 2331fc402686e862809bf24714a8746cdde97cb1 include/server/mir/input/event_filter.h
143 78862dda41d56c6b937a1ed197982e5fa37f50df include/server/mir/input/input_channel.h
144-574c11e234ba26924ccae8e005fb6f3db921441d include/server/mir/input/input_configuration.h
145 6f1d9cf83bbb1256f0b4d1ba1d94d95af98c52f0 include/server/mir/input/input_dispatcher.h
146 443aa3f7ab31409f4cc4496aff344f8b9978aca6 include/server/mir/input/input_manager.h
147 b2ec497c6bec1b3a67c991f31cc7b7c51050ecbb include/server/mir/input/input_reception_mode.h
148@@ -102,7 +101,7 @@
149 791624081fa86523f51f444d2b28d7ab32dde1a4 include/server/mir/scene/surface.h
150 993e9f458ffc4288d304413f3fa0b1dcc95a093d include/server/mir/scene/surface_observer.h
151 7ef3e99901168cda296d74d05a979f47bf9c3ff1 include/server/mir/server_action_queue.h
152-d429c9b200ecc7982f0dcda2b357c01f4794412b include/server/mir/server_configuration.h
153+8d83a51c278b8b71866d2178d9b6387c1f91a7d0 include/server/mir/server_configuration.h
154 86098b500339bfccd07a9bed8298f75a68b18f5c include/server/mir/server_status_listener.h
155 860c04f32b60e680140148dc9dc2295de145b9c1 include/server/mir/shell/display_layout.h
156 6a2107b01feae13060d5c305804906e53c52e0be include/server/mir/shell/focus_controller.h
157
158=== removed file 'src/include/server/mir/input/android/default_android_input_configuration.h'
159--- src/include/server/mir/input/android/default_android_input_configuration.h 2014-10-06 03:02:44 +0000
160+++ src/include/server/mir/input/android/default_android_input_configuration.h 1970-01-01 00:00:00 +0000
161@@ -1,90 +0,0 @@
162-/*
163- * Copyright © 2013-2014 Canonical Ltd.
164- *
165- * This program is free software: you can redistribute it and/or modify it
166- * under the terms of the GNU General Public License version 3,
167- * as published by the Free Software Foundation.
168- *
169- * This program is distributed in the hope that it will be useful,
170- * but WITHOUT ANY WARRANTY; without even the implied warranty of
171- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
172- * GNU General Public License for more details.
173- *
174- * You should have received a copy of the GNU General Public License
175- * along with this program. If not, see <http://www.gnu.org/licenses/>.
176- *
177- * Authored by: Robert Carr <robert.carr@canonical.com>
178- * Andreas Pokorny <andreas.pokorny@canonical.com>
179- */
180-
181-#ifndef MIR_INPUT_ANDROID_DEFAULT_ANDROID_INPUT_CONFIGURATION_H_
182-#define MIR_INPUT_ANDROID_DEFAULT_ANDROID_INPUT_CONFIGURATION_H_
183-
184-#include "mir/input/input_configuration.h"
185-
186-#include "mir/cached_ptr.h"
187-
188-namespace android
189-{
190-class InputReaderInterface;
191-class InputReaderPolicyInterface;
192-class InputListenerInterface;
193-class EventHubInterface;
194-}
195-
196-namespace droidinput = android;
197-
198-namespace mir
199-{
200-namespace input
201-{
202-class InputRegion;
203-class CursorListener;
204-class TouchVisualizer;
205-class InputReport;
206-class InputDispatcher;
207-
208-namespace android
209-{
210-class InputThread;
211-
212-class DefaultInputConfiguration : public mir::input::InputConfiguration
213-{
214-public:
215- DefaultInputConfiguration(std::shared_ptr<input::InputDispatcher> const& dispatcher,
216- std::shared_ptr<input::InputRegion> const& input_region,
217- std::shared_ptr<CursorListener> const& cursor_listener,
218- std::shared_ptr<TouchVisualizer> const& touch_visualizer,
219- std::shared_ptr<input::InputReport> const& input_report);
220- virtual ~DefaultInputConfiguration();
221-
222- std::shared_ptr<input::InputManager> the_input_manager() override;
223-
224-protected:
225- virtual std::shared_ptr<droidinput::EventHubInterface> the_event_hub();
226- virtual std::shared_ptr<droidinput::InputReaderInterface> the_reader();
227- virtual std::shared_ptr<droidinput::InputListenerInterface> the_input_translator();
228-
229- virtual std::shared_ptr<InputThread> the_reader_thread();
230-
231- virtual std::shared_ptr<droidinput::InputReaderPolicyInterface> the_reader_policy();
232-
233-private:
234- CachedPtr<input::InputManager> input_manager;
235- CachedPtr<InputThread> reader_thread;
236-
237- CachedPtr<droidinput::EventHubInterface> event_hub;
238- CachedPtr<droidinput::InputReaderPolicyInterface> reader_policy;
239- CachedPtr<droidinput::InputReaderInterface> reader;
240-
241- std::shared_ptr<input::InputDispatcher> const input_dispatcher;
242- std::shared_ptr<input::InputRegion> const input_region;
243- std::shared_ptr<CursorListener> const cursor_listener;
244- std::shared_ptr<TouchVisualizer> const touch_visualizer;
245- std::shared_ptr<input::InputReport> const input_report;
246-};
247-}
248-}
249-} // namespace mir
250-
251-#endif // MIR_INPUT_ANDROID_DEFAULT_ANDROID_INPUT_CONFIGURATION_H_
252
253=== modified file 'src/server/display_server.cpp'
254--- src/server/display_server.cpp 2014-09-30 06:11:33 +0000
255+++ src/server/display_server.cpp 2014-10-09 09:59:52 +0000
256@@ -74,7 +74,6 @@
257 graphics_platform{config.the_graphics_platform()},
258 display{config.the_display()},
259 input_dispatcher{config.the_input_dispatcher()},
260- input_configuration{config.the_input_configuration()},
261 compositor{config.the_compositor()},
262 connector{config.the_connector()},
263 prompt_connector{config.the_prompt_connector()},
264@@ -186,7 +185,6 @@
265 std::shared_ptr<mg::Platform> const graphics_platform; // Hold this so the platform is loaded once
266 std::shared_ptr<mg::Display> const display;
267 std::shared_ptr<mi::InputDispatcher> const input_dispatcher;
268- std::shared_ptr<input::InputConfiguration> const input_configuration;
269 std::shared_ptr<mc::Compositor> const compositor;
270 std::shared_ptr<mf::Connector> const connector;
271 std::shared_ptr<mf::Connector> const prompt_connector;
272
273=== modified file 'src/server/input/CMakeLists.txt'
274--- src/server/input/CMakeLists.txt 2014-09-30 06:11:33 +0000
275+++ src/server/input/CMakeLists.txt 2014-10-09 09:59:52 +0000
276@@ -8,7 +8,6 @@
277 event_filter_chain.cpp
278
279 null_input_channel_factory.cpp
280- null_input_configuration.cpp
281 null_input_dispatcher.cpp
282 display_input_region.cpp
283 vt_filter.cpp
284
285=== modified file 'src/server/input/android/CMakeLists.txt'
286--- src/server/input/android/CMakeLists.txt 2014-09-11 05:51:44 +0000
287+++ src/server/input/android/CMakeLists.txt 2014-10-09 09:59:52 +0000
288@@ -6,7 +6,6 @@
289 ${CMAKE_CURRENT_SOURCE_DIR}/android_input_channel.cpp
290 ${CMAKE_CURRENT_SOURCE_DIR}/rudimentary_input_reader_policy.cpp
291 ${CMAKE_CURRENT_SOURCE_DIR}/event_filter_dispatcher_policy.cpp
292- ${CMAKE_CURRENT_SOURCE_DIR}/default_android_input_configuration.cpp
293 ${CMAKE_CURRENT_SOURCE_DIR}/android_input_application_handle.cpp
294 ${CMAKE_CURRENT_SOURCE_DIR}/android_input_window_handle.cpp
295 ${CMAKE_CURRENT_SOURCE_DIR}/android_input_registrar.cpp
296
297=== removed file 'src/server/input/android/default_android_input_configuration.cpp'
298--- src/server/input/android/default_android_input_configuration.cpp 2014-09-30 06:11:33 +0000
299+++ src/server/input/android/default_android_input_configuration.cpp 1970-01-01 00:00:00 +0000
300@@ -1,123 +0,0 @@
301-/*
302- * Copyright © 2013-2014 Canonical Ltd.
303- *
304- * This program is free software: you can redistribute it and/or modify it
305- * under the terms of the GNU General Public License version 3,
306- * as published by the Free Software Foundation.
307- *
308- * This program is distributed in the hope that it will be useful,
309- * but WITHOUT ANY WARRANTY; without even the implied warranty of
310- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
311- * GNU General Public License for more details.
312- *
313- * You should have received a copy of the GNU General Public License
314- * along with this program. If not, see <http://www.gnu.org/licenses/>.
315- *
316- * Authored by: Robert Carr <robert.carr@canonical.com>
317- Andreas Pokorny <andreas.pokorny@canonical.com>
318- */
319-
320-#include "mir/input/android/default_android_input_configuration.h"
321-#include "event_filter_dispatcher_policy.h"
322-#include "android_input_reader_policy.h"
323-#include "android_input_thread.h"
324-#include "android_input_registrar.h"
325-#include "android_input_targeter.h"
326-#include "android_input_target_enumerator.h"
327-#include "android_input_manager.h"
328-#include "input_translator.h"
329-#include "common_input_thread.h"
330-
331-#include "mir/input/event_filter.h"
332-
333-#include <EventHub.h>
334-#include <InputDispatcher.h>
335-
336-#include "mir/input/event_filter.h"
337-
338-#include <EventHub.h>
339-#include <InputDispatcher.h>
340-#include <InputReader.h>
341-
342-#include <string>
343-
344-namespace droidinput = android;
345-
346-namespace mi = mir::input;
347-namespace mia = mi::android;
348-namespace ms = mir::scene;
349-namespace msh = mir::shell;
350-
351-mia::DefaultInputConfiguration::DefaultInputConfiguration(
352- std::shared_ptr<mi::InputDispatcher> const& input_dispatcher,
353- std::shared_ptr<mi::InputRegion> const& input_region,
354- std::shared_ptr<CursorListener> const& cursor_listener,
355- std::shared_ptr<TouchVisualizer> const& touch_visualizer,
356- std::shared_ptr<mi::InputReport> const& input_report) :
357- input_dispatcher(input_dispatcher),
358- input_region(input_region),
359- cursor_listener(cursor_listener),
360- touch_visualizer(touch_visualizer),
361- input_report(input_report)
362-{
363-}
364-
365-mia::DefaultInputConfiguration::~DefaultInputConfiguration()
366-{
367-}
368-
369-std::shared_ptr<droidinput::EventHubInterface> mia::DefaultInputConfiguration::the_event_hub()
370-{
371- return event_hub(
372- [this]()
373- {
374- return std::make_shared<droidinput::EventHub>(input_report);
375- });
376-}
377-
378-std::shared_ptr<droidinput::InputReaderPolicyInterface> mia::DefaultInputConfiguration::the_reader_policy()
379-{
380- return reader_policy(
381- [this]()
382- {
383- return std::make_shared<mia::InputReaderPolicy>(input_region, cursor_listener, touch_visualizer);
384- });
385-}
386-
387-
388-std::shared_ptr<droidinput::InputReaderInterface> mia::DefaultInputConfiguration::the_reader()
389-{
390- return reader(
391- [this]()
392- {
393- return std::make_shared<droidinput::InputReader>(
394- the_event_hub(), the_reader_policy(), the_input_translator());
395- });
396-}
397-
398-std::shared_ptr<mia::InputThread> mia::DefaultInputConfiguration::the_reader_thread()
399-{
400- return reader_thread(
401- [this]()
402- {
403- return std::make_shared<CommonInputThread>("Mir/InputReader",
404- new droidinput::InputReaderThread(the_reader()));
405- });
406-}
407-
408-std::shared_ptr<droidinput::InputListenerInterface> mia::DefaultInputConfiguration::the_input_translator()
409-{
410- return std::make_shared<mia::InputTranslator>(input_dispatcher);
411-}
412-
413-std::shared_ptr<mi::InputManager> mia::DefaultInputConfiguration::the_input_manager()
414-{
415- return input_manager(
416- [this]() -> std::shared_ptr<mi::InputManager>
417- {
418- return std::make_shared<mia::InputManager>(
419- the_event_hub(),
420- the_reader_thread());
421- });
422-}
423-
424
425=== modified file 'src/server/input/default_configuration.cpp'
426--- src/server/input/default_configuration.cpp 2014-10-09 09:59:52 +0000
427+++ src/server/input/default_configuration.cpp 2014-10-09 09:59:52 +0000
428@@ -20,17 +20,21 @@
429
430 #include "android/android_input_dispatcher.h"
431 #include "android/android_input_targeter.h"
432+#include "android/android_input_reader_policy.h"
433 #include "android/common_input_thread.h"
434+#include "android/android_input_reader_policy.h"
435 #include "android/android_input_registrar.h"
436 #include "android/android_input_target_enumerator.h"
437 #include "android/event_filter_dispatcher_policy.h"
438 #include "android/input_sender.h"
439 #include "android/input_channel_factory.h"
440+#include "android/android_input_manager.h"
441+#include "android/input_translator.h"
442 #include "display_input_region.h"
443 #include "event_filter_chain.h"
444-#include "null_input_configuration.h"
445 #include "cursor_controller.h"
446 #include "touchspot_controller.h"
447+#include "null_input_manager.h"
448 #include "null_input_dispatcher.h"
449 #include "null_input_targeter.h"
450 #include "xcursor_loader.h"
451@@ -38,7 +42,6 @@
452 #include "null_input_send_observer.h"
453 #include "null_input_channel_factory.h"
454
455-#include "mir/input/android/default_android_input_configuration.h"
456 #include "mir/input/touch_visualizer.h"
457 #include "mir/options/configuration.h"
458 #include "mir/options/option.h"
459@@ -47,6 +50,8 @@
460 #include "mir/main_loop.h"
461
462 #include <InputDispatcher.h>
463+#include <EventHub.h>
464+#include <InputReader.h>
465
466
467 namespace mi = mir::input;
468@@ -76,35 +81,6 @@
469 });
470 }
471
472-std::shared_ptr<mi::InputConfiguration>
473-mir::DefaultServerConfiguration::the_input_configuration()
474-{
475- return input_configuration(
476- [this]() -> std::shared_ptr<mi::InputConfiguration>
477- {
478- auto const options = the_options();
479- bool input_reading_required =
480- options->get<bool>(options::enable_input_opt) &&
481- !options->is_set(options::host_socket_opt);
482-
483- if (input_reading_required)
484- {
485- // fallback to standalone if host socket is unset
486- return std::make_shared<mia::DefaultInputConfiguration>(
487- the_input_dispatcher(),
488- the_input_region(),
489- the_cursor_listener(),
490- the_touch_visualizer(),
491- the_input_report()
492- );
493- }
494- else
495- {
496- return std::make_shared<mi::NullInputConfiguration>();
497- }
498- });
499-}
500-
501 std::shared_ptr<droidinput::InputEnumerator>
502 mir::DefaultServerConfiguration::the_input_target_enumerator()
503 {
504@@ -224,9 +200,72 @@
505 return input_manager(
506 [&, this]() -> std::shared_ptr<mi::InputManager>
507 {
508- if (the_options()->get<std::string>(options::legacy_input_report_opt) == options::log_opt_value)
509- mr::legacy_input::initialize(the_logger());
510- return the_input_configuration()->the_input_manager();
511+ auto const options = the_options();
512+ bool input_reading_required =
513+ options->get<bool>(options::enable_input_opt) &&
514+ !options->is_set(options::host_socket_opt);
515+
516+ if (input_reading_required)
517+ {
518+ if (options->get<std::string>(options::legacy_input_report_opt) == options::log_opt_value)
519+ mr::legacy_input::initialize(the_logger());
520+
521+ return std::make_shared<mia::InputManager>(
522+ the_event_hub(),
523+ the_input_reader_thread());
524+ }
525+ else
526+ return std::make_shared<mi::NullInputManager>();
527+ });
528+}
529+
530+std::shared_ptr<droidinput::EventHubInterface>
531+mir::DefaultServerConfiguration::the_event_hub()
532+{
533+ return event_hub(
534+ [this]()
535+ {
536+ return std::make_shared<droidinput::EventHub>(the_input_report());
537+ });
538+}
539+
540+std::shared_ptr<droidinput::InputReaderPolicyInterface>
541+mir::DefaultServerConfiguration::the_input_reader_policy()
542+{
543+ return input_reader_policy(
544+ [this]()
545+ {
546+ return std::make_shared<mia::InputReaderPolicy>(the_input_region(), the_cursor_listener(), the_touch_visualizer());
547+ });
548+}
549+
550+std::shared_ptr<droidinput::InputReaderInterface>
551+mir::DefaultServerConfiguration::the_input_reader()
552+{
553+ return input_reader(
554+ [this]()
555+ {
556+ return std::make_shared<droidinput::InputReader>(the_event_hub(), the_input_reader_policy(), the_input_translator());
557+ });
558+}
559+
560+std::shared_ptr<mia::InputThread>
561+mir::DefaultServerConfiguration::the_input_reader_thread()
562+{
563+ return input_reader_thread(
564+ [this]()
565+ {
566+ return std::make_shared<mia::CommonInputThread>("Mir/InputReader", new droidinput::InputReaderThread(the_input_reader()));
567+ });
568+}
569+
570+std::shared_ptr<droidinput::InputListenerInterface>
571+mir::DefaultServerConfiguration::the_input_translator()
572+{
573+ return input_translator(
574+ [this]()
575+ {
576+ return std::make_shared<mia::InputTranslator>(the_input_dispatcher());
577 });
578 }
579
580
581=== removed file 'src/server/input/null_input_configuration.cpp'
582--- src/server/input/null_input_configuration.cpp 2014-09-11 05:51:44 +0000
583+++ src/server/input/null_input_configuration.cpp 1970-01-01 00:00:00 +0000
584@@ -1,27 +0,0 @@
585-/*
586- * Copyright © 2013 Canonical Ltd.
587- *
588- * This program is free software: you can redistribute it and/or modify it
589- * under the terms of the GNU General Public License version 3,
590- * as published by the Free Software Foundation.
591- *
592- * This program is distributed in the hope that it will be useful,
593- * but WITHOUT ANY WARRANTY; without even the implied warranty of
594- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
595- * GNU General Public License for more details.
596- *
597- * You should have received a copy of the GNU General Public License
598- * along with this program. If not, see <http://www.gnu.org/licenses/>.
599- *
600- * Authored by: Robert Carr <robert.carr@canonical.com>
601- */
602-
603-#include "null_input_configuration.h"
604-#include "null_input_manager.h"
605-
606-namespace mi = mir::input;
607-
608-std::shared_ptr<mi::InputManager> mi::NullInputConfiguration::the_input_manager()
609-{
610- return std::make_shared<NullInputManager>();
611-}
612
613=== removed file 'src/server/input/null_input_configuration.h'
614--- src/server/input/null_input_configuration.h 2014-09-11 05:51:44 +0000
615+++ src/server/input/null_input_configuration.h 1970-01-01 00:00:00 +0000
616@@ -1,46 +0,0 @@
617-/*
618- * Copyright © 2013-2014 Canonical Ltd.
619- *
620- * This program is free software: you can redistribute it and/or modify it
621- * under the terms of the GNU General Public License version 3,
622- * as published by the Free Software Foundation.
623- *
624- * This program is distributed in the hope that it will be useful,
625- * but WITHOUT ANY WARRANTY; without even the implied warranty of
626- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
627- * GNU General Public License for more details.
628- *
629- * You should have received a copy of the GNU General Public License
630- * along with this program. If not, see <http://www.gnu.org/licenses/>.
631- *
632- * Authored by: Robert Carr <robert.carr@canonical.com>
633- * Andreas Pokorny <andreas.pokorny@canonical.com>
634- */
635-
636-#ifndef MIR_INPUT_NULL_INPUT_CONFIGURATION_H_
637-#define MIR_INPUT_NULL_INPUT_CONFIGURATION_H_
638-
639-#include "mir/input/input_configuration.h"
640-
641-namespace mir
642-{
643-namespace input
644-{
645-
646-class NullInputConfiguration : public InputConfiguration
647-{
648-public:
649- NullInputConfiguration() = default;
650- virtual ~NullInputConfiguration() = default;
651-
652- std::shared_ptr<input::InputManager> the_input_manager() override;
653-
654-protected:
655- NullInputConfiguration(const NullInputConfiguration&) = delete;
656- NullInputConfiguration& operator=(const NullInputConfiguration&) = delete;
657-};
658-
659-}
660-}
661-
662-#endif // MIR_INPUT_NULL_INPUT_CONFIGURATION
663
664=== modified file 'src/server/symbols.map'
665--- src/server/symbols.map 2014-10-09 09:59:52 +0000
666+++ src/server/symbols.map 2014-10-09 09:59:52 +0000
667@@ -3,7 +3,6 @@
668 extern "C++" {
669 # Symbols not yet picked up by script
670 vtable?for?mir::input::NullInputDispatcher;
671- vtable?for?mir::input::NullInputConfiguration;
672 VTT?for?mir::DefaultServerConfiguration;
673
674 # The following symbols come from running a script over the generated docs. Vis:
675@@ -53,6 +52,7 @@
676 mir::DefaultServerConfiguration::the_display_configuration_policy*;
677 mir::DefaultServerConfiguration::the_display_report*;
678 mir::DefaultServerConfiguration::the_emergency_cleanup*;
679+ mir::DefaultServerConfiguration::the_event_hub*;
680 mir::DefaultServerConfiguration::the_fatal_error_strategy*;
681 mir::DefaultServerConfiguration::the_focus_controller*;
682 mir::DefaultServerConfiguration::the_frame_dropping_policy_factory*;
683@@ -69,6 +69,9 @@
684 mir::DefaultServerConfiguration::the_input_configuration*;
685 mir::DefaultServerConfiguration::the_input_dispatcher*;
686 mir::DefaultServerConfiguration::the_input_manager*;
687+ mir::DefaultServerConfiguration::the_input_reader*;
688+ mir::DefaultServerConfiguration::the_input_reader_policy*;
689+ mir::DefaultServerConfiguration::the_input_reader_thread*;
690 mir::DefaultServerConfiguration::the_input_region*;
691 mir::DefaultServerConfiguration::the_input_registrar*;
692 mir::DefaultServerConfiguration::the_input_report*;
693@@ -77,6 +80,7 @@
694 mir::DefaultServerConfiguration::the_input_send_observer*;
695 mir::DefaultServerConfiguration::the_input_target_enumerator*;
696 mir::DefaultServerConfiguration::the_input_targeter*;
697+ mir::DefaultServerConfiguration::the_input_translator*;
698 mir::DefaultServerConfiguration::the_logger*;
699 mir::DefaultServerConfiguration::the_main_loop*;
700 mir::DefaultServerConfiguration::the_mediating_display_changer*;
701@@ -229,10 +233,6 @@
702 mir::input::InputChannel::InputChannel*;
703 mir::input::InputChannel::operator*;
704 mir::input::InputChannel::server_fd*;
705- mir::input::InputConfiguration::?InputConfiguration*;
706- mir::input::InputConfiguration::InputConfiguration*;
707- mir::input::InputConfiguration::operator*;
708- mir::input::InputConfiguration::the_input_manager*;
709 mir::input::InputDispatcher::configuration_changed*;
710 mir::input::InputDispatcher::device_reset*;
711 mir::input::InputDispatcher::dispatch*;
712@@ -404,7 +404,6 @@
713 mir::ServerConfiguration::the_emergency_cleanup*;
714 mir::ServerConfiguration::the_fatal_error_strategy*;
715 mir::ServerConfiguration::the_graphics_platform*;
716- mir::ServerConfiguration::the_input_configuration*;
717 mir::ServerConfiguration::the_input_dispatcher*;
718 mir::ServerConfiguration::the_input_manager*;
719 mir::ServerConfiguration::the_main_loop*;
720@@ -495,6 +494,7 @@
721 non-virtual?thunk?to?mir::DefaultServerConfiguration::the_display_configuration_policy*;
722 non-virtual?thunk?to?mir::DefaultServerConfiguration::the_display_report*;
723 non-virtual?thunk?to?mir::DefaultServerConfiguration::the_emergency_cleanup*;
724+ non-virtual?thunk?to?mir::DefaultServerConfiguration::the_event_hub*;
725 non-virtual?thunk?to?mir::DefaultServerConfiguration::the_fatal_error_strategy*;
726 non-virtual?thunk?to?mir::DefaultServerConfiguration::the_frame_dropping_policy_factory*;
727 non-virtual?thunk?to?mir::DefaultServerConfiguration::the_frontend_display_changer*;
728@@ -509,6 +509,9 @@
729 non-virtual?thunk?to?mir::DefaultServerConfiguration::the_input_configuration*;
730 non-virtual?thunk?to?mir::DefaultServerConfiguration::the_input_dispatcher*;
731 non-virtual?thunk?to?mir::DefaultServerConfiguration::the_input_manager*;
732+ non-virtual?thunk?to?mir::DefaultServerConfiguration::the_input_reader*;
733+ non-virtual?thunk?to?mir::DefaultServerConfiguration::the_input_reader_policy*;
734+ non-virtual?thunk?to?mir::DefaultServerConfiguration::the_input_reader_thread*;
735 non-virtual?thunk?to?mir::DefaultServerConfiguration::the_input_region*;
736 non-virtual?thunk?to?mir::DefaultServerConfiguration::the_input_registrar*;
737 non-virtual?thunk?to?mir::DefaultServerConfiguration::the_input_report*;
738@@ -517,6 +520,7 @@
739 non-virtual?thunk?to?mir::DefaultServerConfiguration::the_input_send_observer*;
740 non-virtual?thunk?to?mir::DefaultServerConfiguration::the_input_target_enumerator*;
741 non-virtual?thunk?to?mir::DefaultServerConfiguration::the_input_targeter*;
742+ non-virtual?thunk?to?mir::DefaultServerConfiguration::the_input_translator*;
743 non-virtual?thunk?to?mir::DefaultServerConfiguration::the_logger*;
744 non-virtual?thunk?to?mir::DefaultServerConfiguration::the_main_loop*;
745 non-virtual?thunk?to?mir::DefaultServerConfiguration::the_mediating_display_changer*;
746@@ -732,16 +736,6 @@
747 vtable?for?mir::shell::SurfaceCoordinatorWrapper;
748 vtable?for?mir::time::Alarm;
749 vtable?for?mir::time::Timer;
750-
751-# These symbols are needed by mir_acceptance_tests but are not intended to be public
752- mir::input::android::DefaultInputConfiguration::DefaultInputConfiguration*;
753- mir::input::android::DefaultInputConfiguration::?DefaultInputConfiguration*;
754- mir::input::android::DefaultInputConfiguration::the_input_manager*;
755- mir::input::android::DefaultInputConfiguration::the_reader*;
756- mir::input::android::DefaultInputConfiguration::the_input_translator*;
757- mir::input::android::DefaultInputConfiguration::the_reader_thread*;
758- mir::input::android::DefaultInputConfiguration::the_reader_policy*;
759- typeinfo?for?mir::input::android::DefaultInputConfiguration;
760
761 # these symbols are needed by mir_demo_server_shell but are not intended to be public
762 mir::compositor::GLRenderer::begin*;
763
764=== modified file 'tests/acceptance-tests/test_client_cursor_api.cpp'
765--- tests/acceptance-tests/test_client_cursor_api.cpp 2014-09-30 06:11:33 +0000
766+++ tests/acceptance-tests/test_client_cursor_api.cpp 2014-10-09 09:59:52 +0000
767@@ -243,7 +243,7 @@
768 return server_configuration_;
769 }
770
771- mir::input::android::FakeEventHub* fake_event_hub()
772+ std::shared_ptr<mir::input::android::FakeEventHub> fake_event_hub()
773 {
774 return server_configuration_.fake_event_hub;
775 }
776
777=== modified file 'tests/acceptance-tests/test_client_input.cpp'
778--- tests/acceptance-tests/test_client_input.cpp 2014-09-30 06:11:33 +0000
779+++ tests/acceptance-tests/test_client_input.cpp 2014-10-09 09:59:52 +0000
780@@ -204,7 +204,7 @@
781 return server_configuration_;
782 }
783
784- mir::input::android::FakeEventHub* fake_event_hub()
785+ std::shared_ptr<mir::input::android::FakeEventHub> fake_event_hub()
786 {
787 return server_configuration_.fake_event_hub;
788 }
789
790=== removed file 'tests/include/mir_test/fake_event_hub_input_configuration.h'
791--- tests/include/mir_test/fake_event_hub_input_configuration.h 2014-09-30 06:11:33 +0000
792+++ tests/include/mir_test/fake_event_hub_input_configuration.h 1970-01-01 00:00:00 +0000
793@@ -1,79 +0,0 @@
794-/*
795- * Copyright © 2013 Canonical Ltd.
796- *
797- * This program is free software: you can redistribute it and/or modify it
798- * under the terms of the GNU General Public License version 3,
799- * as published by the Free Software Foundation.
800- *
801- * This program is distributed in the hope that it will be useful,
802- * but WITHOUT ANY WARRANTY; without even the implied warranty of
803- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
804- * GNU General Public License for more details.
805- *
806- * You should have received a copy of the GNU General Public License
807- * along with this program. If not, see <http://www.gnu.org/licenses/>.
808- *
809- * Authored by: Robert Carr <robert.carr@canonical.com>
810- */
811-
812-#ifndef MIR_TEST_DOUBLES_FAKE_EVENT_HUB_INPUT_CONFIGURATION_H_
813-#define MIR_TEST_DOUBLES_FAKE_EVENT_HUB_INPUT_CONFIGURATION_H_
814-
815-#include "mir/input/android/default_android_input_configuration.h"
816-
817-#include <memory>
818-
819-namespace droidinput = android;
820-
821-namespace android
822-{
823-class EventHubInterface;
824-}
825-
826-namespace mir
827-{
828-namespace input
829-{
830-class CursorListener;
831-class TouchVisualizer;
832-class EventFilter;
833-class InputReport;
834-
835-namespace android
836-{
837-class FakeEventHub;
838-}
839-}
840-namespace test
841-{
842-namespace doubles
843-{
844-
845-class FakeEventHubInputConfiguration : public input::android::DefaultInputConfiguration
846-{
847-public:
848- FakeEventHubInputConfiguration(
849- std::shared_ptr<input::InputDispatcher> const& input_dispatcher,
850- std::shared_ptr<input::InputRegion> const& input_region,
851- std::shared_ptr<input::CursorListener> const& cursor_listener,
852- std::shared_ptr<input::TouchVisualizer> const& touch_visualizer,
853- std::shared_ptr<input::InputReport> const& input_report);
854-
855- virtual ~FakeEventHubInputConfiguration();
856-
857- std::shared_ptr<droidinput::EventHubInterface> the_event_hub();
858- input::android::FakeEventHub* the_fake_event_hub();
859-
860-protected:
861- FakeEventHubInputConfiguration(FakeEventHubInputConfiguration const&) = delete;
862- FakeEventHubInputConfiguration& operator=(FakeEventHubInputConfiguration const&) = delete;
863-
864-private:
865- std::shared_ptr<input::android::FakeEventHub> event_hub;
866-};
867-
868-}
869-}
870-} // namespace mir
871-
872-#endif /* MIR_TEST_DOUBLES_FAKE_EVENT_HUB_INPUT_CONFIGURATION_H_ */
873
874=== modified file 'tests/include/mir_test_framework/fake_event_hub_server_configuration.h'
875--- tests/include/mir_test_framework/fake_event_hub_server_configuration.h 2014-08-29 14:50:41 +0000
876+++ tests/include/mir_test_framework/fake_event_hub_server_configuration.h 2014-10-09 09:59:52 +0000
877@@ -31,13 +31,6 @@
878 class FakeEventHub;
879 }
880 }
881-namespace test
882-{
883-namespace doubles
884-{
885-class FakeEventHubInputConfiguration;
886-}
887-}
888 }
889
890 namespace mir_test_framework
891@@ -48,15 +41,13 @@
892 public:
893 using StubbedServerConfiguration::StubbedServerConfiguration;
894
895- std::shared_ptr<mir::input::InputConfiguration> the_input_configuration() override;
896+ std::shared_ptr<droidinput::EventHubInterface> the_event_hub() override;
897+ std::shared_ptr<mir::input::InputManager> the_input_manager() override;
898 std::shared_ptr<mir::input::InputDispatcher> the_input_dispatcher() override;
899 std::shared_ptr<mir::shell::InputTargeter> the_input_targeter() override;
900 std::shared_ptr<mir::input::InputSender> the_input_sender() override;
901
902- mir::input::android::FakeEventHub* fake_event_hub;
903-
904-private:
905- std::shared_ptr<mir::test::doubles::FakeEventHubInputConfiguration> input_configuration;
906+ std::shared_ptr<mir::input::android::FakeEventHub> fake_event_hub;
907 };
908
909 }
910
911=== modified file 'tests/include/mir_test_framework/input_testing_server_configuration.h'
912--- tests/include/mir_test_framework/input_testing_server_configuration.h 2014-09-30 06:11:33 +0000
913+++ tests/include/mir_test_framework/input_testing_server_configuration.h 2014-10-09 09:59:52 +0000
914@@ -61,12 +61,13 @@
915 void on_start();
916 void on_exit();
917
918- std::shared_ptr<mir::input::InputConfiguration> the_input_configuration() override;
919+ std::shared_ptr<droidinput::EventHubInterface> the_event_hub() override;
920+ std::shared_ptr<mir::input::InputManager> the_input_manager() override;
921 std::shared_ptr<mir::input::InputDispatcher> the_input_dispatcher() override;
922 std::shared_ptr<mir::shell::InputTargeter> the_input_targeter() override;
923 std::shared_ptr<mir::input::InputSender> the_input_sender() override;
924
925- mir::input::android::FakeEventHub* fake_event_hub;
926+ std::shared_ptr<mir::input::android::FakeEventHub> fake_event_hub;
927
928 protected:
929 virtual void inject_input() = 0;
930@@ -75,8 +76,6 @@
931
932 private:
933 std::thread input_injection_thread;
934-
935- std::shared_ptr<mir::test::doubles::FakeEventHubInputConfiguration> input_configuration;
936 };
937
938 }
939
940=== modified file 'tests/include/mir_test_framework/stubbed_server_configuration.h'
941--- tests/include/mir_test_framework/stubbed_server_configuration.h 2014-09-11 05:51:44 +0000
942+++ tests/include/mir_test_framework/stubbed_server_configuration.h 2014-10-09 09:59:52 +0000
943@@ -43,7 +43,7 @@
944 // We override the_input_manager in the default server configuration
945 // to avoid starting and stopping the full android input stack for tests
946 // which do not leverage input.
947- std::shared_ptr<input::InputConfiguration> the_input_configuration() override;
948+ std::shared_ptr<input::InputManager> the_input_manager() override;
949 std::shared_ptr<input::InputDispatcher> the_input_dispatcher() override;
950 std::shared_ptr<shell::InputTargeter> the_input_targeter() override;
951 std::shared_ptr<input::InputSender> the_input_sender() override;
952
953=== modified file 'tests/integration-tests/input/android/test_android_cursor_listener.cpp'
954--- tests/integration-tests/input/android/test_android_cursor_listener.cpp 2014-10-09 09:59:52 +0000
955+++ tests/integration-tests/input/android/test_android_cursor_listener.cpp 2014-10-09 09:59:52 +0000
956@@ -21,7 +21,6 @@
957
958 #include "mir_test/fake_shared.h"
959 #include "mir_test/fake_event_hub.h"
960-#include "mir_test/fake_event_hub_input_configuration.h"
961 #include "mir_test_framework/fake_event_hub_server_configuration.h"
962 #include "mir_test_doubles/mock_event_filter.h"
963 #include "mir_test_doubles/stub_input_enumerator.h"
964@@ -76,9 +75,7 @@
965
966 void SetUp() override
967 {
968- configuration = the_input_configuration();
969-
970- input_manager = configuration->the_input_manager();
971+ input_manager = the_input_manager();
972 input_manager->start();
973 input_dispatcher = the_input_dispatcher();
974 input_dispatcher->start();
975@@ -92,7 +89,6 @@
976
977 MockCursorListener cursor_listener;
978 std::shared_ptr<mtd::MockEventFilter> event_filter = std::make_shared<mtd::MockEventFilter>();
979- std::shared_ptr<mi::InputConfiguration> configuration;
980 std::shared_ptr<mi::InputManager> input_manager;
981 std::shared_ptr<mi::InputDispatcher> input_dispatcher;
982 };
983
984=== modified file 'tests/integration-tests/input/android/test_android_input_manager.cpp'
985--- tests/integration-tests/input/android/test_android_input_manager.cpp 2014-10-09 09:59:52 +0000
986+++ tests/integration-tests/input/android/test_android_input_manager.cpp 2014-10-09 09:59:52 +0000
987@@ -24,7 +24,6 @@
988
989 #include "mir_test/fake_shared.h"
990 #include "mir_test/fake_event_hub.h"
991-#include "mir_test/fake_event_hub_input_configuration.h"
992 #include "mir_test_framework/fake_event_hub_server_configuration.h"
993 #include "mir_test_doubles/mock_event_filter.h"
994 #include "mir_test_doubles/stub_scene_surface.h"
995@@ -72,9 +71,7 @@
996 }
997 void SetUp() override
998 {
999- configuration = the_input_configuration();
1000-
1001- input_manager = configuration->the_input_manager();
1002+ input_manager = the_input_manager();
1003 input_manager->start();
1004 input_dispatcher = the_input_dispatcher();
1005 input_dispatcher->start();
1006@@ -88,7 +85,6 @@
1007
1008 protected:
1009 std::shared_ptr<mtd::MockEventFilter> event_filter = std::make_shared<mtd::MockEventFilter>();
1010- std::shared_ptr<mi::InputConfiguration> configuration;
1011 std::shared_ptr<mi::InputManager> input_manager;
1012 std::shared_ptr<mi::InputDispatcher> input_dispatcher;
1013 };
1014@@ -229,9 +225,7 @@
1015
1016 void SetUp() override
1017 {
1018- configuration = the_input_configuration();
1019-
1020- input_manager = configuration->the_input_manager();
1021+ input_manager = the_input_manager();
1022 input_manager->start();
1023 input_dispatcher = the_input_dispatcher();
1024 input_dispatcher->start();
1025@@ -248,7 +242,6 @@
1026 mtd::StubScene scene;
1027 mia::InputRegistrar input_registrar{mt::fake_shared(scene)};
1028
1029- std::shared_ptr<mi::InputConfiguration> configuration;
1030 std::shared_ptr<mi::InputManager> input_manager;
1031 std::shared_ptr<mi::InputDispatcher> input_dispatcher;
1032
1033
1034=== modified file 'tests/integration-tests/session_management.cpp'
1035--- tests/integration-tests/session_management.cpp 2014-09-11 05:51:44 +0000
1036+++ tests/integration-tests/session_management.cpp 2014-10-09 09:59:52 +0000
1037@@ -18,7 +18,6 @@
1038
1039 #include "mir/frontend/session.h"
1040 #include "mir/frontend/shell.h"
1041-#include "mir/input/input_configuration.h"
1042
1043 #include "mir/scene/surface_creation_parameters.h"
1044 #include "mir/scene/session.h"
1045
1046=== modified file 'tests/integration-tests/test_server_shutdown.cpp'
1047--- tests/integration-tests/test_server_shutdown.cpp 2014-09-30 13:50:09 +0000
1048+++ tests/integration-tests/test_server_shutdown.cpp 2014-10-09 09:59:52 +0000
1049@@ -27,7 +27,6 @@
1050
1051 #include "mir_test_framework/display_server_test_fixture.h"
1052
1053-#include "mir_test/fake_event_hub_input_configuration.h"
1054 #include "mir_test/fake_event_hub.h"
1055 #include "mir_test_doubles/stub_renderer.h"
1056
1057@@ -122,20 +121,9 @@
1058
1059 struct FakeEventHubServerConfig : TestingServerConfiguration
1060 {
1061- std::shared_ptr<mi::InputConfiguration> the_input_configuration() override
1062+ std::shared_ptr<droidinput::EventHubInterface> the_event_hub() override
1063 {
1064- if (!input_configuration)
1065- {
1066- input_configuration =
1067- std::make_shared<mtd::FakeEventHubInputConfiguration>(
1068- the_input_dispatcher(),
1069- the_input_region(),
1070- the_cursor_listener(),
1071- the_touch_visualizer(),
1072- the_input_report());
1073- }
1074-
1075- return input_configuration;
1076+ return the_fake_event_hub();
1077 }
1078
1079 std::shared_ptr<mi::InputManager> the_input_manager() override
1080@@ -153,13 +141,18 @@
1081 return DefaultServerConfiguration::the_input_dispatcher();
1082 }
1083
1084- mia::FakeEventHub* the_fake_event_hub()
1085+
1086+ std::shared_ptr<mia::FakeEventHub> the_fake_event_hub()
1087 {
1088- the_input_configuration();
1089- return input_configuration->the_fake_event_hub();
1090+ if (!fake_event_hub)
1091+ {
1092+ fake_event_hub = std::make_shared<mia::FakeEventHub>();
1093+ }
1094+
1095+ return fake_event_hub;
1096 }
1097
1098- std::shared_ptr<mtd::FakeEventHubInputConfiguration> input_configuration;
1099+ std::shared_ptr<mia::FakeEventHub> fake_event_hub;
1100 };
1101 }
1102
1103
1104=== modified file 'tests/integration-tests/test_session.cpp'
1105--- tests/integration-tests/test_session.cpp 2014-09-11 05:51:44 +0000
1106+++ tests/integration-tests/test_session.cpp 2014-10-09 09:59:52 +0000
1107@@ -17,7 +17,7 @@
1108 */
1109
1110 #include "mir/default_server_configuration.h"
1111-#include "src/server/input/null_input_configuration.h"
1112+#include "src/server/input/null_input_manager.h"
1113 #include "mir/compositor/compositor.h"
1114 #include "src/server/scene/application_session.h"
1115 #include "src/server/scene/pixel_buffer.h"
1116@@ -54,12 +54,12 @@
1117 {
1118 TestServerConfiguration() : DefaultServerConfiguration(0, nullptr) {}
1119
1120- std::shared_ptr<mi::InputConfiguration> the_input_configuration() override
1121+ std::shared_ptr<mi::InputManager> the_input_manager() override
1122 {
1123- if (!input_configuration)
1124- input_configuration = std::make_shared<mi::NullInputConfiguration>();
1125+ if (!input_manager)
1126+ input_manager = std::make_shared<mi::NullInputManager>();
1127
1128- return input_configuration;
1129+ return input_manager;
1130 }
1131
1132 std::shared_ptr<mf::Connector> the_connector() override
1133@@ -123,7 +123,7 @@
1134 });
1135 }
1136
1137- std::shared_ptr<mi::NullInputConfiguration> input_configuration;
1138+ std::shared_ptr<mi::NullInputManager> input_manager;
1139 };
1140
1141 }
1142
1143=== modified file 'tests/mir_test_doubles/CMakeLists.txt'
1144--- tests/mir_test_doubles/CMakeLists.txt 2014-10-06 03:02:44 +0000
1145+++ tests/mir_test_doubles/CMakeLists.txt 2014-10-09 09:59:52 +0000
1146@@ -14,7 +14,6 @@
1147 test_protobuf_client.cpp
1148 event_factory.cpp
1149 fake_event_hub.cpp
1150- fake_event_hub_input_configuration.cpp
1151 test_protobuf_socket_server.cpp
1152 mock_timer.cpp
1153 mock_frame_dropping_policy_factory.cpp
1154
1155=== removed file 'tests/mir_test_doubles/fake_event_hub_input_configuration.cpp'
1156--- tests/mir_test_doubles/fake_event_hub_input_configuration.cpp 2014-09-30 06:11:33 +0000
1157+++ tests/mir_test_doubles/fake_event_hub_input_configuration.cpp 1970-01-01 00:00:00 +0000
1158@@ -1,50 +0,0 @@
1159-/*
1160- * Copyright © 2013-2014 Canonical Ltd.
1161- *
1162- * This program is free software: you can redistribute it and/or modify it
1163- * under the terms of the GNU General Public License version 3,
1164- * as published by the Free Software Foundation.
1165- *
1166- * This program is distributed in the hope that it will be useful,
1167- * but WITHOUT ANY WARRANTY; without even the implied warranty of
1168- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1169- * GNU General Public License for more details.
1170- *
1171- * You should have received a copy of the GNU General Public License
1172- * along with this program. If not, see <http://www.gnu.org/licenses/>.
1173- *
1174- * Author: Robert Carr <robert.carr@canonical.com>
1175- * Andreas Pokorny <andreas.pokorny@canonical.com>
1176- */
1177-
1178-#include "mir_test/fake_event_hub_input_configuration.h"
1179-#include "mir_test/fake_event_hub.h"
1180-
1181-namespace mi = mir::input;
1182-namespace mia = mi::android;
1183-namespace mtd = mir::test::doubles;
1184-
1185-mtd::FakeEventHubInputConfiguration::FakeEventHubInputConfiguration(
1186- std::shared_ptr<mir::input::InputDispatcher> const& dispatcher,
1187- std::shared_ptr<input::InputRegion> const& input_region,
1188- std::shared_ptr<input::CursorListener> const& cursor_listener,
1189- std::shared_ptr<input::TouchVisualizer> const& touch_visualizer,
1190- std::shared_ptr<mi::InputReport> const& input_report) :
1191- DefaultInputConfiguration(dispatcher, input_region, cursor_listener, touch_visualizer, input_report),
1192- event_hub(std::make_shared<mia::FakeEventHub>())
1193-{
1194-}
1195-
1196-mtd::FakeEventHubInputConfiguration::~FakeEventHubInputConfiguration()
1197-{
1198-}
1199-
1200-std::shared_ptr<droidinput::EventHubInterface> mtd::FakeEventHubInputConfiguration::the_event_hub()
1201-{
1202- return event_hub;
1203-}
1204-
1205-mia::FakeEventHub* mtd::FakeEventHubInputConfiguration::the_fake_event_hub()
1206-{
1207- return event_hub.get();
1208-}
1209
1210=== modified file 'tests/mir_test_framework/fake_event_hub_server_configuration.cpp'
1211--- tests/mir_test_framework/fake_event_hub_server_configuration.cpp 2014-08-29 14:50:41 +0000
1212+++ tests/mir_test_framework/fake_event_hub_server_configuration.cpp 2014-10-09 09:59:52 +0000
1213@@ -20,12 +20,16 @@
1214 #include "mir_test_framework/fake_event_hub_server_configuration.h"
1215
1216 #include "mir_test/fake_event_hub.h"
1217-#include "mir_test/fake_event_hub_input_configuration.h"
1218
1219 namespace mtf = mir_test_framework;
1220 namespace mi = mir::input;
1221 namespace ms = mir::shell;
1222-namespace mtd = mir::test::doubles;
1223+namespace mia = mir::input::android;
1224+
1225+std::shared_ptr<mi::InputManager> mtf::FakeEventHubServerConfiguration::the_input_manager()
1226+{
1227+ return DefaultServerConfiguration::the_input_manager();
1228+}
1229
1230 std::shared_ptr<ms::InputTargeter> mtf::FakeEventHubServerConfiguration::the_input_targeter()
1231 {
1232@@ -42,17 +46,11 @@
1233 return DefaultServerConfiguration::the_input_sender();
1234 }
1235
1236-std::shared_ptr<mi::InputConfiguration> mtf::FakeEventHubServerConfiguration::the_input_configuration()
1237+std::shared_ptr<droidinput::EventHubInterface> mtf::FakeEventHubServerConfiguration::the_event_hub()
1238 {
1239- if (!input_configuration)
1240+ if (!fake_event_hub)
1241 {
1242- input_configuration = std::make_shared<mtd::FakeEventHubInputConfiguration>(
1243- the_input_dispatcher(),
1244- the_input_region(),
1245- the_cursor_listener(),
1246- the_touch_visualizer(),
1247- the_input_report());
1248- fake_event_hub = input_configuration->the_fake_event_hub();
1249+ fake_event_hub = std::make_shared<mia::FakeEventHub>();
1250
1251 fake_event_hub->synthesize_builtin_keyboard_added();
1252 fake_event_hub->synthesize_builtin_cursor_added();
1253@@ -60,5 +58,5 @@
1254 fake_event_hub->synthesize_device_scan_complete();
1255 }
1256
1257- return input_configuration;
1258+ return fake_event_hub;
1259 }
1260
1261=== modified file 'tests/mir_test_framework/input_testing_server_options.cpp'
1262--- tests/mir_test_framework/input_testing_server_options.cpp 2014-09-30 06:11:33 +0000
1263+++ tests/mir_test_framework/input_testing_server_options.cpp 2014-10-09 09:59:52 +0000
1264@@ -26,7 +26,6 @@
1265 #include "mir/input/composite_event_filter.h"
1266
1267 #include "mir_test/fake_event_hub.h"
1268-#include "mir_test/fake_event_hub_input_configuration.h"
1269 #include "mir_test/wait_condition.h"
1270
1271 #include <boost/throw_exception.hpp>
1272@@ -84,6 +83,11 @@
1273 return DefaultServerConfiguration::the_input_targeter();
1274 }
1275
1276+std::shared_ptr<mi::InputManager> mtf::InputTestingServerConfiguration::the_input_manager()
1277+{
1278+ return DefaultServerConfiguration::the_input_manager();
1279+}
1280+
1281 std::shared_ptr<mi::InputDispatcher> mtf::InputTestingServerConfiguration::the_input_dispatcher()
1282 {
1283 return DefaultServerConfiguration::the_input_dispatcher();
1284@@ -94,17 +98,11 @@
1285 return DefaultServerConfiguration::the_input_sender();
1286 }
1287
1288-std::shared_ptr<mi::InputConfiguration> mtf::InputTestingServerConfiguration::the_input_configuration()
1289+std::shared_ptr<droidinput::EventHubInterface> mtf::InputTestingServerConfiguration::the_event_hub()
1290 {
1291- if (!input_configuration)
1292+ if (!fake_event_hub)
1293 {
1294- input_configuration = std::make_shared<mtd::FakeEventHubInputConfiguration>(
1295- the_input_dispatcher(),
1296- the_input_region(),
1297- the_cursor_listener(),
1298- the_touch_visualizer(),
1299- the_input_report());
1300- fake_event_hub = input_configuration->the_fake_event_hub();
1301+ fake_event_hub = std::make_shared<mia::FakeEventHub>();
1302
1303 fake_event_hub->synthesize_builtin_keyboard_added();
1304 fake_event_hub->synthesize_builtin_cursor_added();
1305@@ -112,5 +110,5 @@
1306 fake_event_hub->synthesize_device_scan_complete();
1307 }
1308
1309- return input_configuration;
1310+ return fake_event_hub;
1311 }
1312
1313=== modified file 'tests/mir_test_framework/stubbed_server_configuration.cpp'
1314--- tests/mir_test_framework/stubbed_server_configuration.cpp 2014-09-30 06:11:33 +0000
1315+++ tests/mir_test_framework/stubbed_server_configuration.cpp 2014-10-09 09:59:52 +0000
1316@@ -41,7 +41,7 @@
1317
1318 #include "mir/compositor/renderer.h"
1319 #include "mir/compositor/renderer_factory.h"
1320-#include "src/server/input/null_input_configuration.h"
1321+#include "src/server/input/null_input_manager.h"
1322 #include "src/server/input/null_input_dispatcher.h"
1323 #include "src/server/input/null_input_targeter.h"
1324
1325@@ -276,14 +276,14 @@
1326 });
1327 }
1328
1329-std::shared_ptr<mi::InputConfiguration> mtf::StubbedServerConfiguration::the_input_configuration()
1330+std::shared_ptr<mi::InputManager> mtf::StubbedServerConfiguration::the_input_manager()
1331 {
1332 auto options = the_options();
1333
1334 if (options->get<bool>("tests-use-real-input"))
1335- return DefaultServerConfiguration::the_input_configuration();
1336+ return DefaultServerConfiguration::the_input_manager();
1337 else
1338- return std::make_shared<mi::NullInputConfiguration>();
1339+ return std::make_shared<mi::NullInputManager>();
1340 }
1341
1342 std::shared_ptr<msh::InputTargeter> mtf::StubbedServerConfiguration::the_input_targeter()

Subscribers

People subscribed via source and target branches