sACN  2.0.2
Implementation of ANSI E1.31 (Streaming ACN)
View other versions:
common.h
Go to the documentation of this file.
1 /******************************************************************************
2  * Copyright 2022 ETC Inc.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  ******************************************************************************
16  * This file is a part of sACN. For more information, go to:
17  * https://github.com/ETCLabs/sACN
18  *****************************************************************************/
19 
20 #ifndef SACN_CPP_COMMON_H_
21 #define SACN_CPP_COMMON_H_
22 
28 #include "etcpal/cpp/error.h"
29 #include "etcpal/cpp/log.h"
30 #include "etcpal/cpp/uuid.h"
31 #include "sacn/common.h"
32 
49 namespace sacn
50 {
55 
70 inline etcpal::Error Init(const EtcPalLogParams* log_params = nullptr)
71 {
72  return sacn_init(log_params, nullptr);
73 }
74 
89 inline etcpal::Error Init(const EtcPalLogParams* log_params, std::vector<SacnMcastInterface>& sys_netints)
90 {
91  SacnNetintConfig netint_config = {sys_netints.data(), sys_netints.size()};
92  return sacn_init(log_params, &netint_config);
93 }
94 
110 {
111  SacnNetintConfig netint_config = {sys_netints.data(), sys_netints.size()};
112  return sacn_init(nullptr, &netint_config);
113 }
114 
128 inline etcpal::Error Init(const etcpal::Logger& logger)
129 {
130  return sacn_init(&logger.log_params(), nullptr);
131 }
132 
147 {
148  SacnNetintConfig netint_config = {sys_netints.data(), sys_netints.size()};
149  return sacn_init(&logger.log_params(), &netint_config);
150 }
151 
162 inline void Deinit()
163 {
164  return sacn_deinit();
165 }
166 
178 {
179  return sacn_get_remote_source_handle(&source_cid.get());
180 }
181 
195 {
196  EtcPalUuid cid;
197  etcpal_error_t error = sacn_get_remote_source_cid(source_handle, &cid);
198  etcpal::Uuid cid_to_return = cid;
199 
200  if (error == kEtcPalErrOk)
201  return cid_to_return;
202 
203  return error;
204 }
205 
206 }; // namespace sacn
207 
208 #endif // SACN_CPP_COMMON_H_
const EtcPalLogParams & log_params() const noexcept
constexpr const EtcPalUuid & get() const noexcept
Common definitions for sACN.
T data(T... args)
etcpal_error_t
kEtcPalErrOk
uint16_t sacn_remote_source_t
Definition: common.h:58
#define SACN_REMOTE_SOURCE_INVALID
Definition: common.h:60
etcpal_error_t sacn_init(const EtcPalLogParams *log_params, const SacnNetintConfig *sys_netint_config)
Initialize the sACN library.
Definition: common.c:68
sacn_remote_source_t sacn_get_remote_source_handle(const EtcPalUuid *source_cid)
Converts a remote source CID to the corresponding handle, or SACN_REMOTE_SOURCE_INVALID if not found.
Definition: common.c:289
void sacn_deinit(void)
Deinitialize the sACN library.
Definition: common.c:234
etcpal_error_t sacn_get_remote_source_cid(sacn_remote_source_t source_handle, EtcPalUuid *source_cid)
Converts a remote source handle to the corresponding source CID.
Definition: common.c:314
etcpal::Error Init(const EtcPalLogParams *log_params=nullptr)
Initialize the sACN library.
Definition: common.h:70
void Deinit()
Deinitialize the sACN library.
Definition: common.h:162
RemoteSourceHandle GetRemoteSourceHandle(const etcpal::Uuid &source_cid)
Converts a remote source CID to the corresponding handle, or SACN_REMOTE_SOURCE_INVALID if not found.
Definition: common.h:177
etcpal::Expected< etcpal::Uuid > GetRemoteSourceCid(RemoteSourceHandle source_handle)
Converts a remote source handle to the corresponding source CID.
Definition: common.h:194
A namespace which contains all C++ language definitions in the sACN library.
Definition: common.h:50
constexpr RemoteSourceHandle kInvalidRemoteSourceHandle
Definition: common.h:54
sacn_remote_source_t RemoteSourceHandle
Definition: common.h:52
T size(T... args)
Definition: common.h:102