| // Copyright 2018 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "simple_camera_server_app.h" |
| |
| #include "lib/component/cpp/startup_context.h" |
| |
| namespace simple_camera { |
| |
| SimpleCameraApp::SimpleCameraApp() |
| : context_(component::StartupContext::CreateFromStartupInfo()) { |
| context_->outgoing().AddPublicService(bindings_.GetHandler(this)); |
| } |
| |
| void SimpleCameraApp::ConnectToCamera( |
| uint32_t camera_id, |
| ::fidl::InterfaceHandle<::fuchsia::images::ImagePipe> image_pipe) { |
| // If we fail to connect, disconnect from the client. We only have one |
| // client, so we just call CloseAll. |
| zx_status_t status = |
| video_display_.ConnectToCamera(camera_id, std::move(image_pipe), |
| [this]() { this->bindings_.CloseAll(); }); |
| if (status != ZX_OK) { |
| bindings_.CloseAll(); |
| } |
| } |
| |
| } // namespace simple_camera |