content: // Copyright (c) 2020-2025 saki t_saki@serenegiant.com
  //
  // 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.
  
  // / USB機器情報を保持する
  final class DeviceInfo {
    /// ベンダーID
    final int vendorId;
    /// プロダクトID
    final  int productId;
    /// デバイスクラス
    final int deviceClass;
    /// デバイスサブクラス
    final int deviceSubClass;
    /// デバイスプロトコル
    final  int deviceProtocol;
    /// パディング用のダミー
    final int reserved1;
    /// USB機器名(商品名ではない)
    final String name;
    /// 会社名(読み取れない機器は空文字列)
    final String manufacturerName;
    /// 製品名(読み取れない機器は空文字列)
    final String productName;
    /// シリアル番号(読み取れない機器は空文字列)
    final String serial;
  
    /// コンストラクタ
    DeviceInfo(this.vendorId, this.productId, this.deviceClass,
        this.deviceSubClass, this.deviceProtocol, this.reserved1, this.name,
        this.manufacturerName, this.productName, this.serial);
  
    @override
    String toString() {
      return 'DeviceInfo{vendorId:$vendorId, productId:$productId, deviceClass:$deviceClass, deviceSubClass:$deviceSubClass, deviceProtocol:$deviceProtocol, reserved1:$reserved1, name:$name, manufacturerName:$manufacturerName, productName:$productName, serial:$serial}';
    }
  }
  