34 typedef std::function<void(std::shared_ptr<DeviceList> removedList, std::shared_ptr<DeviceList> addedList)>
DeviceChangedCallback;
58 explicit Context(
const char *configPath =
"") {
82 return std::make_shared<DeviceList>(list);
129 return std::make_shared<Device>(device);
139 deviceChangedCallback_ = callback;
224 Context::getLogCallback() = callback;
245 auto ctx =
static_cast<Context *
>(userData);
246 if(ctx && ctx->deviceChangedCallback_) {
247 auto removed = std::make_shared<DeviceList>(removedList);
248 auto added = std::make_shared<DeviceList>(addedList);
249 ctx->deviceChangedCallback_(removed, added);
253 static void logCallback(
OBLogSeverity severity,
const char *logMsg,
void *userData) {
256 (*cb)(severity, logMsg);
267#define enableMultiDeviceSync enableDeviceClockSync
Context is a management class that describes the runtime of the SDK and is responsible for resource a...
OB_EXPORT void ob_enable_device_clock_sync(ob_context *context, uint64_t repeat_interval_msec, ob_error **error)
Activates device clock synchronization to synchronize the clock of the host and all created devices (...
OB_EXPORT void ob_set_logger_to_callback(ob_log_severity severity, ob_log_callback callback, void *user_data, ob_error **error)
Set the log callback function.
OB_EXPORT void ob_set_uvc_backend_type(ob_context *context, ob_uvc_backend_type backend_type, ob_error **error)
For linux, there are two ways to enable the UVC backend: libuvc and v4l2. This function is used to se...
OB_EXPORT ob_context * ob_create_context_with_config(const char *config_file_path, ob_error **error)
Create a context object with a specified configuration file.
OB_EXPORT void ob_set_device_changed_callback(ob_context *context, ob_device_changed_callback callback, void *user_data, ob_error **error)
Set a device plug-in callback function.
OB_EXPORT void ob_free_idle_memory(ob_context *context, ob_error **error)
Free idle memory from the internal frame memory pool.
OB_EXPORT void ob_set_logger_to_file(ob_log_severity severity, const char *directory, ob_error **error)
Set the log output to a file.
OB_EXPORT void ob_set_logger_severity(ob_log_severity severity, ob_error **error)
Set the global log level.
OB_EXPORT ob_device * ob_create_net_device(ob_context *context, const char *address, uint16_t port, ob_error **error)
Create a network device object.
OB_EXPORT void ob_set_logger_to_console(ob_log_severity severity, ob_error **error)
Set the log output to the console.
OB_EXPORT ob_device_list * ob_query_device_list(ob_context *context, ob_error **error)
Get a list of enumerated devices.
OB_EXPORT void ob_delete_context(ob_context *context, ob_error **error)
Delete a context object.
OB_EXPORT void ob_enable_net_device_enumeration(ob_context *context, bool enable, ob_error **error)
Enable or disable network device enumeration.
OB_EXPORT bool ob_force_ip_config(const char *deviceUid, ob_net_ip_config config, ob_error **error)
"Force" a static IP address configuration in a device identified by its MAC Address.
OB_EXPORT void ob_set_extensions_directory(const char *directory, ob_error **error)
Set the extensions directory.
This file defines the Error class, which describes abnormal errors within the SDK....
struct ob_context_t ob_context
enum ob_uvc_backend_type OBUvcBackendType
struct ob_device_list_t ob_device_list
OBLogSeverity
log level, the higher the level, the stronger the log filter
void enableNetDeviceEnumeration(bool enable) const
enable or disable net device enumeration.
std::function< void(std::shared_ptr< DeviceList > removedList, std::shared_ptr< DeviceList > addedList)> DeviceChangedCallback
Type definition for the device changed callback function.
static void setLoggerSeverity(OBLogSeverity severity)
Set the level of the global log, which affects both the log level output to the console,...
static void setLoggerToConsole(OBLogSeverity severity)
Set log output to the console.
void setDeviceChangedCallback(DeviceChangedCallback callback)
Set the device plug-in callback function.
bool forceIp(const char *macAddress, const OBNetIpConfig &config)
"Force" a static IP address configuration in a device identified by its MAC Address.
std::function< void(OBLogSeverity severity, const char *logMsg)> LogCallback
Type definition for the log output callback function.
void enableDeviceClockSync(uint64_t repeatIntervalMsec) const
Activates device clock synchronization to synchronize the clock of the host and all created devices (...
static void setLoggerToCallback(OBLogSeverity severity, LogCallback callback)
Set the logger to callback.
~Context() noexcept
Context destructor.
void setUvcBackendType(OBUvcBackendType type) const
For linux, there are two ways to enable the UVC backend: libuvc and v4l2. This function is used to se...
static void setExtensionsDirectory(const char *directory)
Set the extensions directory.
void freeIdleMemory() const
Frees idle memory from the internal frame memory pool.
Context(const char *configPath="")
Context constructor.
std::shared_ptr< Device > createNetDevice(const char *address, uint16_t port) const
Creates a network device with the specified IP address and port.
std::shared_ptr< DeviceList > queryDeviceList() const
Queries the enumerated device list.
static void setLoggerToFile(OBLogSeverity severity, const char *directory)
Set log output to a file.
A class describing device information, representing the name, id, serial number and other basic infor...
Class representing a list of devices.
static void handle(ob_error **error, bool throw_exception=true)
A static function to handle the ob_error and throw an exception if needed.
IP address configuration for network devices (IPv4)
The error class exposed by the SDK, users can get detailed error information according to the error.