~ubuntu-branches/ubuntu/utopic/mir/utopic-proposed

« back to all changes in this revision

Viewing changes to src/client/mir_prompt_session.h

  • Committer: Package Import Robot
  • Author(s): Ubuntu daily release, Daniel van Vugt
  • Date: 2014-07-17 07:58:53 UTC
  • mfrom: (1.1.67)
  • Revision ID: package-import@ubuntu.com-20140717075853-s4i71ob3iq4ns49z
Tags: 0.5.0+14.10.20140717-0ubuntu1
[ Daniel van Vugt ]
* New upstream release 0.5.0 (https://launchpad.net/mir/+milestone/0.5.0)
  - mirclient ABI unchanged at 8. Clients do not need rebuilding.
  - mirserver ABI bumped to 23. Servers need rebuilding, but probably don't
    need modification:
    . DefaultServerConfiguration/Cursor API: Cursor interfaces changed, most
      notably CursorImages moved from ::mir::graphics to ::mir::input.
    . DefaultServerConfiguration: New "prompt" API.
    . DefaultServerConfiguration: "clock" member is now static.
    . SessionAuthorizer: New functions.
    . ServerConfiguration: New function added: the_prompt_connector().
  - Enhancements:
    . Add AddressSanitizer cmake build type.
    . frontend, client API, tests: add support for prompt session
      permissions and for client detecting errors.
    . server: Ensure our emergency cleanup handling infrastructure is
      signal-safe.
    . Implement and enable an xcursor based image loader for cursors.
    . Fix warnings raised by the new g++-4.9.
    . shared, scene: Introduce a generic listener collection.
    . MirMotionEvent: Define a struct typedef to allow for
      pointer_coordinates to be used individually.
  - Bugs fixed:
    . Nexus 10 leaks during overlay operations (LP: #1331769)
    . MultiThreadedCompositor deadlocks (LP: #1335311)
    . Intermittent test failure in ClientSurfaceEvents can client query 
      orientation (LP: #1335741)
    . Intermittent test failure in ClientSurfaceEvents/OrientationEvents
      (LP: #1335752)
    . Intermittent memory error in ClientSurfaceEvents on
      orientation query (LP: #1335819)
    . mir_unit_tests.EventDistributorTest.* SEGFAULT (LP: #1338902)
    . [regression] Device locks randomly on welcome screen (LP: #1339700)
    . Intermittent deadlock when switching to session with custom display
      config & closing other session (LP: #1340669)
    . Mir cursor has no hotspot setting, assumes (0, 0) (LP: #1189775)
    . clang built mir_unit_tests.ProtobufSocketCommunicatorFD crashes
      intermittently (LP: #1300653)
    . g++-4.9 binary incompatibilities with libraries built with g++-4.8
      (LP: #1329089)
    . [test regression] SurfaceLoop fails sporadically on deleting surfaces
      for a disconnecting client (LP: #1335747)
    . Intermittent test failure ServerShutdown when clients are blocked
      (LP: #1335873)
    . [regression] mir_demo_client_multiwin is displayed with obviously
      wrong colours (LP: #1339471)
    . Partially onscreen surfaces not occluded when covered by another
      surface (LP: #1340078)
    . SurfaceConfigurator::attribute_set always say "unfocused" for focus
      property changes (LP: #1336548)

Show diffs side-by-side

added added

removed removed

Lines of Context:
47
47
 
48
48
    MirWaitHandle* start(pid_t application_pid, mir_prompt_session_callback callback, void* context);
49
49
    MirWaitHandle* stop(mir_prompt_session_callback callback, void* context);
50
 
    MirWaitHandle* add_prompt_provider(pid_t provider_pid, mir_prompt_session_add_prompt_provider_callback callback, void* context);
51
50
 
52
51
    MirWaitHandle* new_fds_for_prompt_providers(
53
52
        unsigned int no_of_fds,
61
60
private:
62
61
    std::mutex mutable mutex; // Protects parameters, wait_handles & results
63
62
    mir::protobuf::DisplayServer& server;
64
 
    mir::protobuf::PromptProvider prompt_provider;
65
63
    mir::protobuf::PromptSessionParameters parameters;
66
64
    mir::protobuf::Void add_result;
67
65
    mir::protobuf::Void protobuf_void;
71
69
 
72
70
    MirWaitHandle start_wait_handle;
73
71
    MirWaitHandle stop_wait_handle;
74
 
    MirWaitHandle add_result_wait_handle;
75
72
    MirWaitHandle fds_for_prompt_providers_wait_handle;
76
73
    std::atomic<MirPromptSessionState> state;
77
74
 
84
81
    void set_state(MirPromptSessionState new_state);
85
82
    void done_start(mir_prompt_session_callback callback, void* context);
86
83
    void done_stop(mir_prompt_session_callback callback, void* context);
87
 
    void done_add_prompt_provider(mir_prompt_session_add_prompt_provider_callback callback, void* context);
88
84
    void done_fds_for_prompt_providers(mir_client_fd_callback callback, void* context);
89
85
    MirPromptSession(MirPromptSession const&) = delete;
90
86
    MirPromptSession& operator=(MirPromptSession const&) = delete;