blob: 9f508e1cd857e5485558fdebf443aab59437c02c [file] [log] [blame]
// Copyright 2018 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CECSERVICE_CECSERVICE_DBUS_ADAPTOR_H_
#define CECSERVICE_CECSERVICE_DBUS_ADAPTOR_H_
#include <memory>
#include <vector>
#include <base/macros.h>
#include <base/memory/ref_counted.h>
#include <brillo/dbus/dbus_object.h>
#include <dbus/bus.h>
#include "cecservice/cec_device.h"
#include "cecservice/cec_fd.h"
#include "cecservice/cec_manager.h"
#include "cecservice/dbus_adaptors/org.chromium.CecService.h"
namespace cecservice {
class CecServiceDBusAdaptor : public org::chromium::CecServiceAdaptor,
public org::chromium::CecServiceInterface {
public:
explicit CecServiceDBusAdaptor(scoped_refptr<dbus::Bus> bus);
~CecServiceDBusAdaptor() override;
// Register the D-Bus object and interfaces.
void RegisterAsync(
const brillo::dbus_utils::AsyncEventSequencer::CompletionAction& cb);
// org::chromium::CecServiceInterface overrides; D-Bus methods.
void GetTvsPowerStatus(std::unique_ptr<brillo::dbus_utils::DBusMethodResponse<
std::vector<int32_t>>> response) override;
bool SendStandByToAllDevices(brillo::ErrorPtr* error) override;
bool SendWakeUpToAllDevices(brillo::ErrorPtr* error) override;
private:
CecFdOpenerImpl cec_fd_opener_;
CecDeviceFactoryImpl cec_device_factory_;
CecManager cec_;
brillo::dbus_utils::DBusObject dbus_object_;
DISALLOW_COPY_AND_ASSIGN(CecServiceDBusAdaptor);
};
} // namespace cecservice
#endif // CECSERVICE_CECSERVICE_DBUS_ADAPTOR_H_