/*
 * Copyright (C) 2023 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#include "cuttlefish/host/commands/run_cvd/server_loop_impl.h"

#include "cuttlefish/common/libs/fs/shared_buf.h"
#include "cuttlefish/common/libs/fs/shared_fd.h"
#include "cuttlefish/common/libs/utils/result.h"
#include "cuttlefish/host/libs/command_util/runner/defs.h"
#include "cuttlefish/host/libs/command_util/util.h"

namespace cuttlefish {
namespace run_cvd_impl {

Result<void> ServerLoopImpl::HandleStartScreenRecording() {
  LOG(INFO) << "Sending the request to start screen recording.";

  CF_EXPECT(webrtc_controller_.SendStartRecordingCommand(),
            "Failed to send start recording command.");
  return {};
}

Result<void> ServerLoopImpl::HandleStopScreenRecording() {
  LOG(INFO) << "Sending the request to stop screen recording.";

  CF_EXPECT(webrtc_controller_.SendStopRecordingCommand(),
            "Failed to send stop recording command.");
  return {};
}

Result<void> ServerLoopImpl::HandleScreenshotDisplay(
    const cuttlefish::run_cvd::ScreenshotDisplay& request) {
  LOG(INFO) << "Sending the request to screenshot display to webrtc.";
  CF_EXPECT(webrtc_controller_.SendScreenshotDisplayCommand(
                request.display_number(), request.screenshot_path()),
            "Failed to send start screenshot display command to webrtc.");
  return {};
}

}  // namespace run_cvd_impl
}  // namespace cuttlefish
