diff options
Diffstat (limited to 'include/libsoundmanager.hpp')
-rw-r--r-- | include/libsoundmanager.hpp | 94 |
1 files changed, 0 insertions, 94 deletions
diff --git a/include/libsoundmanager.hpp b/include/libsoundmanager.hpp deleted file mode 100644 index ed61db6..0000000 --- a/include/libsoundmanager.hpp +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Copyright (c) 2017 TOYOTA MOTOR CORPORATION - * - * 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. - */ - -#ifndef LIBSOUNDMANAGER_H -#define LIBSOUNDMANAGER_H -#include <vector> -#include <map> -#include <string> -#include <functional> -#include <json-c/json.h> -#include <systemd/sd-event.h> -extern "C" -{ -#include <afb/afb-binding.h> -#include <afb/afb-wsj1.h> -#include <afb/afb-ws-client.h> -} - -class LibSoundmanager -{ -public: - LibSoundmanager(); - ~LibSoundmanager(); - LibSoundmanager(const LibSoundmanager &) = delete; - LibSoundmanager &operator=(const LibSoundmanager &) = delete; - int init(int port, const std::string& token); - - using handler_asyncSetSourceState = std::function<void(int sourceID, int handle)>; - - enum EventType_AsyncSetSourceState { - Event_AsyncSetSourceState_On = 1, - Event_AsyncSetSourceState_Off , - Event_AsyncSetSourceState_Pause - }; - - /* Method */ - int registerSource(const std::string& sourceName); - int connect(int sourceID, int sinkID); - int connect(int sourceID, const std::string& sinkName = "default"); - int disconnect(int connectionID); - int ackSetSourceState(int handle, int error); - - int call(const std::string& verb, struct json_object* arg); - int call(const char* verb, struct json_object* arg); - int subscribe(const std::string& event_name); - int unsubscribe(const std::string& event_name); - void set_event_handler(enum EventType_AsyncSetSourceState et, handler_asyncSetSourceState f); - void register_callback( - void (*event_cb)(const std::string& event, struct json_object* event_contents), - void (*reply_cb)(struct json_object* reply_contents), - void (*hangup_cb)(void) = nullptr); - void register_callback( - void (*reply_cb)(struct json_object* reply_contents), - void (*hangup_cb)(void) = nullptr); - -private: - int init_event(); - int initialize_websocket(); - int dispatch_asyncSetSourceState(int sourceID, int handle, const std::string& sourceState); - - void (*onEvent)(const std::string& event, struct json_object* event_contents); - void (*onReply)(struct json_object* reply); - void (*onHangup)(void); - - struct afb_wsj1* sp_websock; - struct afb_wsj1_itf minterface; - sd_event* mploop; - int mport; - std::string mtoken; - std::vector<int> msourceIDs; - std::map<EventType_AsyncSetSourceState, std::function<void(int sourceID, int handle)>> handlers; - -public: - /* Don't use/ Internal only */ - void on_hangup(void *closure, struct afb_wsj1 *wsj); - void on_call(void *closure, const char *api, const char *verb, struct afb_wsj1_msg *msg); - void on_event(void *closure, const char *event, struct afb_wsj1_msg *msg); - void on_reply(void *closure, struct afb_wsj1_msg *msg); -}; - -#endif /* LIBSOUNDMANAGER_H */ |