#pragma once

#include "moza/generated/device_as.generated.hpp"

namespace moza::as {

class Wheelbase : public internal::WheelbaseGeneratedBase
{
public:
    using WheelbaseGeneratedBase::WheelbaseGeneratedBase;
};

class Throttle : public internal::ThrottleGeneratedBase
{
public:
    using ThrottleGeneratedBase::ThrottleGeneratedBase;
};

class Rudder : public internal::RudderGeneratedBase
{
public:
    using RudderGeneratedBase::RudderGeneratedBase;
};

class Motor : public internal::MotorGeneratedBase
{
public:
    using MotorGeneratedBase::MotorGeneratedBase;
};

class Stick : public internal::StickGeneratedBase
{
public:
    using StickGeneratedBase::StickGeneratedBase;
};

class ThrottlePanel : public internal::ThrottlePanelGeneratedBase
{
public:
    using ThrottlePanelGeneratedBase::ThrottlePanelGeneratedBase;
};

class Accessory : public internal::AccessoryGeneratedBase
{
public:
    using AccessoryGeneratedBase::AccessoryGeneratedBase;
};

class ForceFeedbackThrottle : public internal::ForceFeedbackThrottleGeneratedBase
{
public:
    using ForceFeedbackThrottleGeneratedBase::ForceFeedbackThrottleGeneratedBase;
};

class ControlPanel : public internal::ControlPanelGeneratedBase
{
public:
    using ControlPanelGeneratedBase::ControlPanelGeneratedBase;
};

class Screen : public internal::ScreenGeneratedBase
{
public:
    using ScreenGeneratedBase::ScreenGeneratedBase;
};

using Main  = Wheelbase;
using Other = Accessory;

} // namespace moza::as
