#pragma once #include "connection_handler.hpp" #include "custom_device.hpp" #include #include #include #include #include #include namespace com::teamspeak { class TS_Client { public: TS_Client(std::string_view path, bool& success); ~TS_Client(); static bool create(std::string_view path); bool log_clientlib_version(); void on_client_move_common(uint64_t connection_id, uint16_t client_id, uint64_t old_channel_id, uint64_t new_channel_id, Visibility visibility); void on_connect_status_change(uint64_t connection_id, ConnectStatus status, uint32_t error); ClientUIFunctions _funcs; std::string _identity = ""; std::array, 2> _connections; bool _shutting_down = false; static constexpr bool _do_autoreconnect{ true }; private: std::unique_ptr _custom_device; public: static std::unique_ptr ts_client; }; }