forked from manuelbl/JavaDoesUSB
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconfiguration.cpp
More file actions
64 lines (42 loc) · 2.01 KB
/
Copy pathconfiguration.cpp
File metadata and controls
64 lines (42 loc) · 2.01 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
//
// Java Does USB
// Copyright (c) 2022 Manuel Bleichenbacher
// Licensed under MIT License
// https://opensource.org/licenses/MIT
//
// Reference C++ code common for Linux / macOS / Windows
//
#include "configuration.hpp"
// --- usb_endpoint
usb_endpoint::usb_endpoint(int number, usb_direction direction, usb_transfer_type transfer_type, int packet_size)
: number_(number), direction_(direction), transfer_type_(transfer_type), packet_size_(packet_size) { }
usb_endpoint usb_endpoint::invalid(-1, usb_direction::out, usb_transfer_type::bulk, 0);
// --- usb_alternate_interface
usb_alternate_interface::usb_alternate_interface(int number, int class_code, int subclass_code, int protocol_code)
: number_(number), class_code_(class_code), subclass_code_(subclass_code), protocol_code_(protocol_code) { }
void usb_alternate_interface::add_endpoint(usb_endpoint&& endpoint) {
endpoints_.push_back(std::move(endpoint));
}
usb_alternate_interface usb_alternate_interface::invalid(-1, 0, 0, 0);
// --- usb_interface
usb_interface::usb_interface(int number)
: number_(number), is_claimed_(false), alternate_index_(0) { }
const usb_alternate_interface& usb_interface::alternate() const {
if (alternate_index_ < 0 || alternate_index_ >= alternates_.size())
return usb_alternate_interface::invalid;
return alternates_[alternate_index_];
}
void usb_interface::set_claimed(bool claimed) {
is_claimed_ = claimed;
}
usb_alternate_interface* usb_interface::add_alternate(usb_alternate_interface&& alternate) {
alternates_.push_back(std::move(alternate));
return &alternates_.back();
}
void usb_interface::set_alternate(int index) {
alternate_index_ = index;
}
usb_interface usb_interface::invalid(-1);
// --- usb_composite_function
usb_composite_function::usb_composite_function(int first_interface, int num_interfaces, int class_code, int subclass_code, int protocol_code)
: first_interface_(first_interface), num_interfaces_(num_interfaces), class_code_(class_code), subclass_code_(subclass_code), protocol_code_(protocol_code) { }