summaryrefslogtreecommitdiff
path: root/src/class
diff options
context:
space:
mode:
authorhathach <[email protected]>2025-09-29 15:02:51 +0700
committerhathach <[email protected]>2025-09-29 15:08:12 +0700
commit4f3a5f92fa21307b1f1c9700cd041e945a627f63 (patch)
treee30b3b28e512e2cc3fdb7808d9e9a9cc8c05ff45 /src/class
parenta09c65c4e4860d215648a3fc2d5f768f292e0e01 (diff)
refactor mtp examples, add phase and session id to callback data
Diffstat (limited to 'src/class')
-rw-r--r--src/class/mtp/mtp_device.c3
-rw-r--r--src/class/mtp/mtp_device.h6
2 files changed, 9 insertions, 0 deletions
diff --git a/src/class/mtp/mtp_device.c b/src/class/mtp/mtp_device.c
index f3f594dcf..798a965eb 100644
--- a/src/class/mtp/mtp_device.c
+++ b/src/class/mtp/mtp_device.c
@@ -307,6 +307,7 @@ bool mtpd_control_xfer_cb(uint8_t rhport, uint8_t stage, tusb_control_request_t
tud_mtp_request_cb_data_t cb_data = {
.idx = 0,
.stage = stage,
+ .session_id = p_mtp->session_id,
.request = request,
.buf = p_mtp->control_buf,
.bufsize = tu_le16toh(request->wLength),
@@ -395,6 +396,8 @@ bool mtpd_xfer_cb(uint8_t rhport, uint8_t ep_addr, xfer_result_t event, uint32_t
tud_mtp_cb_data_t cb_data;
cb_data.idx = 0;
+ cb_data.phase = p_mtp->phase;
+ cb_data.session_id = p_mtp->session_id;
cb_data.command_container = &p_mtp->command;
cb_data.io_container = headered_packet;
cb_data.total_xferred_bytes = 0;
diff --git a/src/class/mtp/mtp_device.h b/src/class/mtp/mtp_device.h
index c69f6f12f..397fbbbce 100644
--- a/src/class/mtp/mtp_device.h
+++ b/src/class/mtp/mtp_device.h
@@ -39,6 +39,9 @@
// callback data for Bulk Only Transfer (BOT) protocol
typedef struct {
uint8_t idx; // mtp instance
+ uint8_t phase; // current phase
+ uint32_t session_id;
+
const mtp_container_command_t* command_container;
mtp_container_info_t io_container;
@@ -50,6 +53,8 @@ typedef struct {
typedef struct {
uint8_t idx;
uint8_t stage; // control stage
+ uint32_t session_id;
+
const tusb_control_request_t* request;
// buffer for data stage
uint8_t* buf;
@@ -95,6 +100,7 @@ bool tud_mtp_data_receive(mtp_container_info_t* p_container);
// send response
bool tud_mtp_response_send(mtp_container_info_t* p_container);
+// send event notification on event endpoint
bool tud_mtp_event_send(mtp_event_t* event);
//--------------------------------------------------------------------+