CreatorCreator
Home
Getting Started
  • 中文简体
  • English
Home
Getting Started
  • 中文简体
  • English
  • Creator

    • Getting Started
  • Stream Dock

    • Plugin SDK
    • Icon Pack

      • Overview
      • Terminology
      • Creating an Icon Pack
      • Icon Specifications
    • Scene Configuration

      • What is a Scenario Configuration?
      • Exporting
      • Use Cases
  • mPanel

    • Plugin SDK
  • Cpp SDK

    • Overview
    • Dependency Installation
    • Device Manager
    • StreamDock Base Class
    • Communication Transport
    • Example
    • API Reference
    • Source Code
  • Python SDK

    • Overview
    • Dependency Installation
    • Device Manager
    • StreamDock Base Class
    • API Reference
    • Examples
    • Source Code
  • Windows-WebSocket SDK

    • Overview
    • Getting Started
    • Events Sent
    • Events Received
    • Source Code
  • Support

    • Help and Bug Reporting

Overview

The StreamDock CPP SDK is an SDK for directly controlling StreamDock devices on Linux, Windows, and macOS systems without relying on software. You can easily achieve direct device control through this SDK.

Linux StreamDock SDK

How StreamDock CPP SDK Communicates with Devices

The StreamDock CPP SDK uses HIDAPI to communicate with devices. HIDAPI is a simple cross-platform library for communicating with HID devices. View details

On different platforms, the SDK uses different system APIs to monitor device plug/unplug events:

  • Windows: Uses Windows message mechanism (WM_DEVICECHANGE) to monitor device hot-plug events
  • Linux: Uses libudev to monitor device plug/unplug events, implementing device hot-plug support
  • macOS: Uses IOKit framework to monitor device events

Supported Device Models

StreamDock CPP SDK currently supports the following device models:

  • StreamDock 293/293s (Old platform)
  • StreamDock 293V3/293sV3 (New platform)
  • StreamDock N1/N3/N3V2/N3V25 (New platform)
  • StreamDock N4/N4Pro (New platform)
  • StreamDock M3/M18/M18V2/M18V3 (New platform)
  • K1 Pro (New platform)
  • StreamDock XL (New platform)

Platform Features

Linux

  1. Device Hot-plug Monitoring: Real-time monitoring of device plug/unplug events through libudev
  2. Multi-device Support: Can connect to and control multiple StreamDock devices simultaneously
  3. Asynchronous Event Processing: Supports asynchronous processing of device events for improved response speed
  4. Permission Management: Supports configuring device access permissions through udev rules or running with sudo permissions

Windows

  1. Device Hot-plug Monitoring: Real-time monitoring of device plug/unplug events through Windows message mechanism (WM_DEVICECHANGE)
  2. Multi-device Support: Can connect to and control multiple StreamDock devices simultaneously
  3. Asynchronous Event Processing: Supports asynchronous processing of device events for improved response speed
  4. DLL Support: Provides pre-compiled transport.dll to simplify integration process

macOS

  1. Multi-device Support: Can connect to and control multiple StreamDock devices simultaneously
  2. Asynchronous Event Processing: Supports asynchronous processing of device events for improved response speed
  3. Permission Management: Requires granting application permissions to access USB devices

Old vs New Platform Differences

  • Old Platform Devices (e.g., 293/293s): All commands must be executed serially (synchronously), asynchronous operations are not supported
  • New Platform Devices (e.g., N series, M series): Support asynchronous command execution with faster response speed

TIP

C++ version 17 or above is recommended, Linux recommends Ubuntu 20.04 or above, zlib recommends 1.2.11, libpng recommends 1.6.37, libjpeg recommends v9b, OpenCV: 4.12.0 or higher version (pre-compiled versions provided for Windows platform)

Last Updated:
Contributors: JKWTCN
Next
Dependency Installation