AVDECC Controller  v0.4.8
 All Classes Namespaces Files Functions Enumerations Enumerator Macros
controller.h
Go to the documentation of this file.
1 /*
2  * Licensed under the MIT License (MIT)
3  *
4  * Copyright (c) 2013 AudioScience Inc.
5  *
6  * Permission is hereby granted, free of charge, to any person obtaining a copy of
7  * this software and associated documentation files (the "Software"), to deal in
8  * the Software without restriction, including without limitation the rights to
9  * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
10  * the Software, and to permit persons to whom the Software is furnished to do so,
11  * subject to the following conditions:
12  *
13  * The above copyright notice and this permission notice shall be included in all
14  * copies or substantial portions of the Software.
15  *
16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
18  * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
19  * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
20  * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
21  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22  */
23 
30 #pragma once
31 #ifndef _AVDECC_CONTROLLER_LIB_CONTROLLER_H_
32 #define _AVDECC_CONTROLLER_LIB_CONTROLLER_H_
33 
34 #include <stdint.h>
35 #include "build.h"
36 
37 namespace avdecc_lib
38 {
39  class end_station;
40  class configuration_descriptor;
41 
42  class controller
43  {
44  public:
48  AVDECC_CONTROLLER_LIB32_API virtual void STDCALL destroy() = 0;
49 
53  AVDECC_CONTROLLER_LIB32_API virtual const char * STDCALL get_version() const = 0;
54 
58  AVDECC_CONTROLLER_LIB32_API virtual uint32_t STDCALL get_end_station_count() = 0;
59 
63  AVDECC_CONTROLLER_LIB32_API virtual end_station * STDCALL get_end_station_by_index(uint32_t end_station_index) = 0;
64 
68  AVDECC_CONTROLLER_LIB32_API virtual configuration_descriptor * STDCALL get_config_desc_by_index(uint32_t end_station_index, uint16_t entity_index, uint16_t config_index) = 0;
69 
73  AVDECC_CONTROLLER_LIB32_API virtual configuration_descriptor * STDCALL get_config_desc_by_guid(uint64_t end_station_guid, uint16_t entity_index, uint16_t config_index) = 0;
74 
78  AVDECC_CONTROLLER_LIB32_API virtual void STDCALL set_logging_level(int32_t new_log_level) = 0;
79 
83  AVDECC_CONTROLLER_LIB32_API virtual uint32_t STDCALL missed_notification_count() = 0;
84 
88  AVDECC_CONTROLLER_LIB32_API virtual uint32_t STDCALL missed_log_count() = 0;
89 
93  AVDECC_CONTROLLER_LIB32_API virtual int STDCALL send_controller_avail_cmd(void *notification_id, uint32_t end_station_index) = 0;
94  };
95 
113  extern "C" AVDECC_CONTROLLER_LIB32_API controller * STDCALL create_controller(net_interface *netif,
114  void (*notification_callback) (void *notification_user_obj, int32_t notification_type, uint64_t guid, uint16_t cmd_type,
115  uint16_t desc_type, uint16_t desc_index, uint32_t cmd_status, void *notification_id),
116  void (*log_callback) (void *log_user_obj, int32_t log_level, const char *log_msg, int32_t time_stamp_ms));
117 }
118 
119 #endif
AVDECC_CONTROLLER_LIB32_API controller *STDCALL create_controller(net_interface *netif, void(*notification_callback)(void *notification_user_obj, int32_t notification_type, uint64_t guid, uint16_t cmd_type, uint16_t desc_type, uint16_t desc_index, uint32_t cmd_status, void *notification_id), void(*log_callback)(void *log_user_obj, int32_t log_level, const char *log_msg, int32_t time_stamp_ms))
virtual AVDECC_CONTROLLER_LIB32_API const char *STDCALL get_version() const =0
virtual AVDECC_CONTROLLER_LIB32_API configuration_descriptor *STDCALL get_config_desc_by_index(uint32_t end_station_index, uint16_t entity_index, uint16_t config_index)=0
virtual AVDECC_CONTROLLER_LIB32_API configuration_descriptor *STDCALL get_config_desc_by_guid(uint64_t end_station_guid, uint16_t entity_index, uint16_t config_index)=0
virtual AVDECC_CONTROLLER_LIB32_API int STDCALL send_controller_avail_cmd(void *notification_id, uint32_t end_station_index)=0
virtual AVDECC_CONTROLLER_LIB32_API end_station *STDCALL get_end_station_by_index(uint32_t end_station_index)=0
Definition: configuration_descriptor.h:58
Definition: controller.h:42
virtual AVDECC_CONTROLLER_LIB32_API uint32_t STDCALL missed_log_count()=0
virtual AVDECC_CONTROLLER_LIB32_API uint32_t STDCALL get_end_station_count()=0
Definition: net_interface.h:39
virtual AVDECC_CONTROLLER_LIB32_API void STDCALL set_logging_level(int32_t new_log_level)=0
virtual AVDECC_CONTROLLER_LIB32_API void STDCALL destroy()=0
virtual AVDECC_CONTROLLER_LIB32_API uint32_t STDCALL missed_notification_count()=0
Definition: end_station.h:42