19 #ifndef MIR_CLIENT_SCREENCAST_STREAM_H 20 #define MIR_CLIENT_SCREENCAST_STREAM_H 31 #include <EGL/eglplatform.h> 53 class BufferStreamParameters;
62 class ClientBufferFactory;
73 std::shared_ptr<ClientPlatform>
const& native_window_factory,
74 mir::protobuf::BufferStream
const& protobuf_bs);
77 MirWaitHandle* next_buffer(std::function<
void()>
const& done)
override;
78 std::shared_ptr<mir::client::ClientBuffer> get_current_buffer()
override;
79 uint32_t get_current_buffer_id()
override;
80 int swap_interval()
const override;
82 void set_buffer_cache_size(
unsigned int)
override;
85 std::shared_ptr<MemoryRegion> secure_for_cpu_write()
override;
87 void request_and_wait_for_next_buffer()
override;
93 bool valid()
const override;
95 void buffer_available(mir::protobuf::Buffer
const& buffer)
override;
96 void buffer_unavailable()
override;
99 char const* get_error_message()
const override;
103 void process_buffer(protobuf::Buffer
const& buffer);
104 void process_buffer(protobuf::Buffer
const& buffer, std::unique_lock<std::mutex>&);
105 void screencast_buffer_received(std::function<
void()> done);
107 mutable std::mutex mutex;
111 std::shared_ptr<ClientPlatform>
const client_platform;
112 std::shared_ptr<ClientBufferFactory>
const factory;
113 std::unique_ptr<mir::protobuf::BufferStream> protobuf_bs;
114 int const swap_interval_{1};
116 std::shared_ptr<void> egl_native_window_;
122 std::unique_ptr<mir::protobuf::Void> protobuf_void;
124 std::shared_ptr<MemoryRegion> secured_region;
127 std::string error_message;
128 std::shared_ptr<ClientBuffer> current_buffer;
135 #endif // MIR_CLIENT_SCREENCAST_STREAM_H
All things Mir.
Definition: atomic_callback.h:25
Definition: mir_wait_handle.h:31
Definition: mir_native_buffer.h:30
Definition: screencast_stream.h:67
Definition: egl_native_surface.h:31
Definition: client_buffer_stream.h:69
Definition: mir_connection.h:96
Definition: buffer_stream.h:37
#define EGLNativeWindowType
Definition: client_buffer_stream.h:56
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:166