Add todos and comments

This commit is contained in:
Reinhard Panhuber 2022-03-16 07:13:38 +01:00
parent 90502739c3
commit 92ac041869
2 changed files with 9 additions and 5 deletions

View File

@ -2047,6 +2047,8 @@ void audiod_sof (uint8_t rhport, uint32_t frame_count)
uint32_t n_cylces = tud_audio_n_get_fm_n_cycles_cb(rhport, audio->ep_fb);
uint32_t feedback = ((n_cylces - audio->n_cycles_old) << 3) * audio->feeback_param_factor_N / audio->feeback_param_factor_D; // feeback_param_factor_N has scaling factor of 13 bits, n_cycles 3 and feeback_param_factor_D 1, hence 16.16 precision
// TODO: Implement fast computation in case n_frames * f_s / f_m is a power of two
tud_audio_n_fb_set(i, feedback);
audio->n_frames_current = 0;
audio->n_cycles_old = n_cylces;

View File

@ -587,11 +587,12 @@ void tud_task (void)
case DCD_EVENT_SOF:
TU_LOG2("\r\n");
for ( uint8_t i = 0; i < TOTAL_DRIVER_COUNT; i++ )
{
usbd_class_driver_t const * driver = get_driver(i);
if ( driver->sof ) driver->sof(event.rhport, event.sof.frame_count);
}
// TODO: Should this really be done here in the queue? How to distinguish the calls here from those SOF events which should be handled directly in the ISR routine? If we do it like this, the SOF routines get called two time right now, once in the ISR context and once again here
// for ( uint8_t i = 0; i < TOTAL_DRIVER_COUNT; i++ )
// {
// usbd_class_driver_t const * driver = get_driver(i);
// if ( driver->sof ) driver->sof(event.rhport, event.sof.frame_count);
// }
break;
case USBD_EVENT_FUNC_CALL:
@ -1410,6 +1411,7 @@ void usbd_edpt_close(uint8_t rhport, uint8_t ep_addr)
void usbd_sof_enable(uint8_t rhport, bool en)
{
// TODO: Check needed if all drivers including the user sof_cb does not need an active SOF ISR any more. Only if all drivers switched off SOF calls the SOF interrupt may be disabled
dcd_sof_enable(rhport, en);
}