Merge pull request #2202 from Rocky04/patch-4
Invoke unmounted state on configuration reset
This commit is contained in:
@@ -133,7 +133,7 @@ void tud_suspend_cb(bool remote_wakeup_en)
|
|||||||
// Invoked when usb bus is resumed
|
// Invoked when usb bus is resumed
|
||||||
void tud_resume_cb(void)
|
void tud_resume_cb(void)
|
||||||
{
|
{
|
||||||
blink_interval_ms = BLINK_MOUNTED;
|
blink_interval_ms = tud_mounted() ? BLINK_MOUNTED : BLINK_NOT_MOUNTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
|
@@ -134,7 +134,7 @@ void tud_suspend_cb(bool remote_wakeup_en)
|
|||||||
// Invoked when usb bus is resumed
|
// Invoked when usb bus is resumed
|
||||||
void tud_resume_cb(void)
|
void tud_resume_cb(void)
|
||||||
{
|
{
|
||||||
blink_interval_ms = BLINK_MOUNTED;
|
blink_interval_ms = tud_mounted() ? BLINK_MOUNTED : BLINK_NOT_MOUNTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
|
@@ -146,7 +146,7 @@ void tud_suspend_cb(bool remote_wakeup_en)
|
|||||||
// Invoked when usb bus is resumed
|
// Invoked when usb bus is resumed
|
||||||
void tud_resume_cb(void)
|
void tud_resume_cb(void)
|
||||||
{
|
{
|
||||||
blink_interval_ms = BLINK_MOUNTED;
|
blink_interval_ms = tud_mounted() ? BLINK_MOUNTED : BLINK_NOT_MOUNTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
|
@@ -99,7 +99,7 @@ void tud_suspend_cb(bool remote_wakeup_en)
|
|||||||
// Invoked when usb bus is resumed
|
// Invoked when usb bus is resumed
|
||||||
void tud_resume_cb(void)
|
void tud_resume_cb(void)
|
||||||
{
|
{
|
||||||
blink_interval_ms = BLINK_MOUNTED;
|
blink_interval_ms = tud_mounted() ? BLINK_MOUNTED : BLINK_NOT_MOUNTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -179,7 +179,14 @@ void tud_suspend_cb(bool remote_wakeup_en)
|
|||||||
// Invoked when usb bus is resumed
|
// Invoked when usb bus is resumed
|
||||||
void tud_resume_cb(void)
|
void tud_resume_cb(void)
|
||||||
{
|
{
|
||||||
xTimerChangePeriod(blinky_tm, pdMS_TO_TICKS(BLINK_MOUNTED), 0);
|
if (tud_mounted())
|
||||||
|
{
|
||||||
|
xTimerChangePeriod(blinky_tm, pdMS_TO_TICKS(BLINK_MOUNTED), 0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
xTimerChangePeriod(blinky_tm, pdMS_TO_TICKS(BLINK_NOT_MOUNTED), 0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
|
@@ -116,7 +116,7 @@ void tud_suspend_cb(bool remote_wakeup_en)
|
|||||||
// Invoked when usb bus is resumed
|
// Invoked when usb bus is resumed
|
||||||
void tud_resume_cb(void)
|
void tud_resume_cb(void)
|
||||||
{
|
{
|
||||||
blink_interval_ms = BLINK_MOUNTED;
|
blink_interval_ms = tud_mounted() ? BLINK_MOUNTED : BLINK_NOT_MOUNTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
|
@@ -111,7 +111,7 @@ void tud_suspend_cb(bool remote_wakeup_en)
|
|||||||
// Invoked when usb bus is resumed
|
// Invoked when usb bus is resumed
|
||||||
void tud_resume_cb(void)
|
void tud_resume_cb(void)
|
||||||
{
|
{
|
||||||
blink_interval_ms = BLINK_MOUNTED;
|
blink_interval_ms = tud_mounted() ? BLINK_MOUNTED : BLINK_NOT_MOUNTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Invoked on DFU_DETACH request to reboot to the bootloader
|
// Invoked on DFU_DETACH request to reboot to the bootloader
|
||||||
|
@@ -100,7 +100,7 @@ void tud_suspend_cb(bool remote_wakeup_en)
|
|||||||
// Invoked when usb bus is resumed
|
// Invoked when usb bus is resumed
|
||||||
void tud_resume_cb(void)
|
void tud_resume_cb(void)
|
||||||
{
|
{
|
||||||
blink_interval_ms = BLINK_MOUNTED;
|
blink_interval_ms = tud_mounted() ? BLINK_MOUNTED : BLINK_NOT_MOUNTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -102,7 +102,7 @@ void tud_suspend_cb(bool remote_wakeup_en)
|
|||||||
// Invoked when usb bus is resumed
|
// Invoked when usb bus is resumed
|
||||||
void tud_resume_cb(void)
|
void tud_resume_cb(void)
|
||||||
{
|
{
|
||||||
blink_interval_ms = BLINK_MOUNTED;
|
blink_interval_ms = tud_mounted() ? BLINK_MOUNTED : BLINK_NOT_MOUNTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
|
@@ -101,7 +101,7 @@ void tud_suspend_cb(bool remote_wakeup_en)
|
|||||||
// Invoked when usb bus is resumed
|
// Invoked when usb bus is resumed
|
||||||
void tud_resume_cb(void)
|
void tud_resume_cb(void)
|
||||||
{
|
{
|
||||||
blink_interval_ms = BLINK_MOUNTED;
|
blink_interval_ms = tud_mounted() ? BLINK_MOUNTED : BLINK_NOT_MOUNTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
|
@@ -180,7 +180,14 @@ void tud_suspend_cb(bool remote_wakeup_en)
|
|||||||
// Invoked when usb bus is resumed
|
// Invoked when usb bus is resumed
|
||||||
void tud_resume_cb(void)
|
void tud_resume_cb(void)
|
||||||
{
|
{
|
||||||
xTimerChangePeriod(blinky_tm, pdMS_TO_TICKS(BLINK_MOUNTED), 0);
|
if (tud_mounted())
|
||||||
|
{
|
||||||
|
xTimerChangePeriod(blinky_tm, pdMS_TO_TICKS(BLINK_MOUNTED), 0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
xTimerChangePeriod(blinky_tm, pdMS_TO_TICKS(BLINK_NOT_MOUNTED), 0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
|
@@ -122,7 +122,7 @@ void tud_suspend_cb(bool remote_wakeup_en)
|
|||||||
// Invoked when usb bus is resumed
|
// Invoked when usb bus is resumed
|
||||||
void tud_resume_cb(void)
|
void tud_resume_cb(void)
|
||||||
{
|
{
|
||||||
blink_interval_ms = BLINK_MOUNTED;
|
blink_interval_ms = tud_mounted() ? BLINK_MOUNTED : BLINK_NOT_MOUNTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
|
@@ -105,7 +105,7 @@ void tud_suspend_cb(bool remote_wakeup_en)
|
|||||||
// Invoked when usb bus is resumed
|
// Invoked when usb bus is resumed
|
||||||
void tud_resume_cb(void)
|
void tud_resume_cb(void)
|
||||||
{
|
{
|
||||||
blink_interval_ms = BLINK_MOUNTED;
|
blink_interval_ms = tud_mounted() ? BLINK_MOUNTED : BLINK_NOT_MOUNTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
|
@@ -105,7 +105,7 @@ void tud_suspend_cb(bool remote_wakeup_en)
|
|||||||
// Invoked when usb bus is resumed
|
// Invoked when usb bus is resumed
|
||||||
void tud_resume_cb(void)
|
void tud_resume_cb(void)
|
||||||
{
|
{
|
||||||
blink_interval_ms = BLINK_MOUNTED;
|
blink_interval_ms = tud_mounted() ? BLINK_MOUNTED : BLINK_NOT_MOUNTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
|
@@ -96,7 +96,7 @@ void tud_suspend_cb(bool remote_wakeup_en)
|
|||||||
// Invoked when usb bus is resumed
|
// Invoked when usb bus is resumed
|
||||||
void tud_resume_cb(void)
|
void tud_resume_cb(void)
|
||||||
{
|
{
|
||||||
blink_interval_ms = BLINK_MOUNTED;
|
blink_interval_ms = tud_mounted() ? BLINK_MOUNTED : BLINK_NOT_MOUNTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
|
@@ -147,7 +147,7 @@ void tud_suspend_cb(bool remote_wakeup_en)
|
|||||||
// Invoked when usb bus is resumed
|
// Invoked when usb bus is resumed
|
||||||
void tud_resume_cb(void)
|
void tud_resume_cb(void)
|
||||||
{
|
{
|
||||||
blink_interval_ms = BLINK_MOUNTED;
|
blink_interval_ms = tud_mounted() ? BLINK_MOUNTED : BLINK_NOT_MOUNTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Helper for clock get requests
|
// Helper for clock get requests
|
||||||
|
@@ -97,7 +97,7 @@ void tud_suspend_cb(bool remote_wakeup_en)
|
|||||||
// Invoked when usb bus is resumed
|
// Invoked when usb bus is resumed
|
||||||
void tud_resume_cb(void)
|
void tud_resume_cb(void)
|
||||||
{
|
{
|
||||||
blink_interval_ms = BLINK_MOUNTED;
|
blink_interval_ms = tud_mounted() ? BLINK_MOUNTED : BLINK_NOT_MOUNTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
|
@@ -100,7 +100,7 @@ void tud_suspend_cb(bool remote_wakeup_en)
|
|||||||
// Invoked when usb bus is resumed
|
// Invoked when usb bus is resumed
|
||||||
void tud_resume_cb(void)
|
void tud_resume_cb(void)
|
||||||
{
|
{
|
||||||
blink_interval_ms = BLINK_MOUNTED;
|
blink_interval_ms = tud_mounted() ? BLINK_MOUNTED : BLINK_NOT_MOUNTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -160,7 +160,7 @@ void tud_suspend_cb(bool remote_wakeup_en)
|
|||||||
// Invoked when usb bus is resumed
|
// Invoked when usb bus is resumed
|
||||||
void tud_resume_cb(void)
|
void tud_resume_cb(void)
|
||||||
{
|
{
|
||||||
blink_interval_ms = BLINK_MOUNTED;
|
blink_interval_ms = tud_mounted() ? BLINK_MOUNTED : BLINK_NOT_MOUNTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
|
@@ -125,7 +125,7 @@ void tud_suspend_cb(bool remote_wakeup_en)
|
|||||||
// Invoked when usb bus is resumed
|
// Invoked when usb bus is resumed
|
||||||
void tud_resume_cb(void)
|
void tud_resume_cb(void)
|
||||||
{
|
{
|
||||||
blink_interval_ms = BLINK_MOUNTED;
|
blink_interval_ms = tud_mounted() ? BLINK_MOUNTED : BLINK_NOT_MOUNTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Invoked when CDC interface received data from host
|
// Invoked when CDC interface received data from host
|
||||||
|
@@ -710,8 +710,18 @@ static bool process_control_request(uint8_t rhport, tusb_control_request_t const
|
|||||||
_usbd_dev.speed = speed; // restore speed
|
_usbd_dev.speed = speed; // restore speed
|
||||||
}
|
}
|
||||||
|
|
||||||
// switch to new configuration if not zero
|
// Handle the new configuration and execute the corresponding callback
|
||||||
if ( cfg_num ) TU_ASSERT( process_set_config(rhport, cfg_num) );
|
if ( cfg_num )
|
||||||
|
{
|
||||||
|
// switch to new configuration if not zero
|
||||||
|
TU_ASSERT( process_set_config(rhport, cfg_num) );
|
||||||
|
|
||||||
|
if ( tud_mount_cb ) tud_mount_cb();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if ( tud_umount_cb ) tud_umount_cb();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_usbd_dev.cfg_num = cfg_num;
|
_usbd_dev.cfg_num = cfg_num;
|
||||||
@@ -964,9 +974,6 @@ static bool process_set_config(uint8_t rhport, uint8_t cfg_num)
|
|||||||
TU_ASSERT(drv_id < TOTAL_DRIVER_COUNT);
|
TU_ASSERT(drv_id < TOTAL_DRIVER_COUNT);
|
||||||
}
|
}
|
||||||
|
|
||||||
// invoke callback
|
|
||||||
if (tud_mount_cb) tud_mount_cb();
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user