+ struct command_context
+ {
+ IO::ClientInfoPtr client;
+ channel_context channel;
+ int channel_index;
+ int layer_id;
+ std::vector<channel_context> channels;
+ spl::shared_ptr<core::help_repository> help_repo;
+ spl::shared_ptr<core::media_info_repository> media_info_repo;
+ spl::shared_ptr<core::cg_producer_registry> cg_registry;
+ spl::shared_ptr<core::system_info_provider_repository> system_info_repo;
+ std::shared_ptr<core::thumbnail_generator> thumb_gen;
+ spl::shared_ptr<const core::frame_producer_registry> producer_registry;
+ spl::shared_ptr<const core::frame_consumer_registry> consumer_registry;
+ std::shared_ptr<accelerator::ogl::device> ogl_device;
+ std::promise<bool>& shutdown_server_now;
+ std::vector<std::wstring> parameters;
+
+ int layer_index(int default_ = 0) const { return layer_id == -1 ? default_: layer_id; }
+
+ command_context(
+ IO::ClientInfoPtr client,
+ channel_context channel,
+ int channel_index,
+ int layer_id,
+ std::vector<channel_context> channels,
+ spl::shared_ptr<core::help_repository> help_repo,
+ spl::shared_ptr<core::media_info_repository> media_info_repo,
+ spl::shared_ptr<core::cg_producer_registry> cg_registry,
+ spl::shared_ptr<core::system_info_provider_repository> system_info_repo,
+ std::shared_ptr<core::thumbnail_generator> thumb_gen,
+ spl::shared_ptr<const core::frame_producer_registry> producer_registry,
+ spl::shared_ptr<const core::frame_consumer_registry> consumer_registry,
+ std::shared_ptr<accelerator::ogl::device> ogl_device,
+ std::promise<bool>& shutdown_server_now)
+ : client(std::move(client))
+ , channel(channel)
+ , channel_index(channel_index)
+ , layer_id(layer_id)
+ , channels(std::move(channels))
+ , help_repo(std::move(help_repo))
+ , media_info_repo(std::move(media_info_repo))
+ , cg_registry(std::move(cg_registry))
+ , system_info_repo(std::move(system_info_repo))
+ , thumb_gen(std::move(thumb_gen))
+ , producer_registry(std::move(producer_registry))
+ , consumer_registry(std::move(consumer_registry))
+ , ogl_device(std::move(ogl_device))
+ , shutdown_server_now(shutdown_server_now)
+ {
+ }