#pragma once #include #include #include #include #include #include #include #include #include namespace custom { class Controller { public: Controller(); ~Controller(); bool initialize(); bool start(); bool stop(); void shutdown() { stop(); } bool isRunning() const { return running_; } // Sport bool StandUp(); bool StandDown(); bool Sit(); bool Damp(); bool RecoveryStand(); bool StopMove(); bool BalanceStand(); bool Dance1(); bool Dance2(); bool Hello(); // Obstacle bool SwitchSet(bool enable); bool SwitchGet(bool& enable); bool UseRemoteCommandFromApi(bool isRemoteCommandsFromApi); bool MoveToAbsolutePosition(float x, float y, float yaw); bool MoveToIncrementPosition(float x, float y, float yaw); private: std::unique_ptr sc_; std::unique_ptr oac_; std::atomic running_; std::atomic initialized_; }; } // namespace custom