19 #ifndef MIR_CLIENT_SCREENCAST_STREAM_H 20 #define MIR_CLIENT_SCREENCAST_STREAM_H 32 #include <EGL/eglplatform.h> 54 class BufferStreamParameters;
63 class ClientBufferFactory;
74 std::shared_ptr<ClientPlatform>
const& native_window_factory,
75 mir::protobuf::BufferStream
const& protobuf_bs);
78 MirWaitHandle* next_buffer(std::function<
void()>
const& done)
override;
79 std::shared_ptr<mir::client::ClientBuffer> get_current_buffer()
override;
80 uint32_t get_current_buffer_id()
override;
81 int swap_interval()
const override;
83 void set_buffer_cache_size(
unsigned int)
override;
86 std::shared_ptr<MemoryRegion> secure_for_cpu_write()
override;
88 void request_and_wait_for_next_buffer()
override;
94 bool valid()
const override;
96 void buffer_available(mir::protobuf::Buffer
const& buffer)
override;
97 void buffer_unavailable()
override;
100 char const* get_error_message()
const override;
104 void process_buffer(protobuf::Buffer
const& buffer);
105 void process_buffer(protobuf::Buffer
const& buffer, std::unique_lock<std::mutex>&);
106 void screencast_buffer_received(std::function<
void()> done);
108 mutable std::mutex mutex;
112 std::shared_ptr<ClientPlatform>
const client_platform;
113 std::shared_ptr<ClientBufferFactory>
const factory;
114 std::unique_ptr<mir::protobuf::BufferStream> protobuf_bs;
115 int const swap_interval_{1};
117 std::shared_ptr<void> egl_native_window_;
123 std::unique_ptr<mir::protobuf::Void> protobuf_void;
125 std::shared_ptr<MemoryRegion> secured_region;
128 std::string error_message;
135 #endif // MIR_CLIENT_SCREENCAST_STREAM_H
All things Mir.
Definition: atomic_callback.h:25
Definition: mir_wait_handle.h:31
Responsible for taking the buffer data sent from the server and wrapping it in a ClientBuffer.
Definition: client_buffer_depository.h:46
Definition: mir_native_buffer.h:30
Definition: screencast_stream.h:68
Definition: egl_native_surface.h:31
Definition: client_buffer_stream.h:68
Definition: mir_connection.h:96
Definition: buffer_stream.h:37
#define EGLNativeWindowType
Definition: client_buffer_stream.h:55
Definition: mir_display_server.h:33
MirSurfaceParameters is the structure of minimum required information that you must provide to Mir in...
Definition: client_types.h:169