hathach 3 年 前
コミット
20b810d25b
2 ファイル変更8 行追加2 行削除
  1. 6 1
      src/class/audio/audio_device.c
  2. 2 1
      src/class/audio/audio_device.h

+ 6 - 1
src/class/audio/audio_device.c

@@ -1708,6 +1708,7 @@ static bool audiod_set_interface(uint8_t rhport, tusb_control_request_t const *
 
 
       TU_VERIFY(foundEPs == nEps);
       TU_VERIFY(foundEPs == nEps);
 
 
+#if CFG_TUD_AUDIO_ENABLE_FEEDBACK_EP
       // Invoke one callback for a final set interface
       // Invoke one callback for a final set interface
       if (tud_audio_set_itf_cb) TU_VERIFY(tud_audio_set_itf_cb(rhport, p_request));
       if (tud_audio_set_itf_cb) TU_VERIFY(tud_audio_set_itf_cb(rhport, p_request));
 
 
@@ -1728,6 +1729,7 @@ static bool audiod_set_interface(uint8_t rhport, tusb_control_request_t const *
           set_fb_params(audio, sample_freq, mclk_freq);
           set_fb_params(audio, sample_freq, mclk_freq);
         }
         }
       }
       }
+#endif
 
 
       // We are done - abort loop
       // We are done - abort loop
       break;
       break;
@@ -1737,6 +1739,7 @@ static bool audiod_set_interface(uint8_t rhport, tusb_control_request_t const *
     p_desc = tu_desc_next(p_desc);
     p_desc = tu_desc_next(p_desc);
   }
   }
 
 
+#if CFG_TUD_AUDIO_ENABLE_FEEDBACK_EP
   // Disable SOF interrupt if no driver has any enabled feedback EP
   // Disable SOF interrupt if no driver has any enabled feedback EP
   bool disable = true;
   bool disable = true;
   for(uint8_t i=0; i < CFG_TUD_AUDIO; i++)
   for(uint8_t i=0; i < CFG_TUD_AUDIO; i++)
@@ -1748,6 +1751,7 @@ static bool audiod_set_interface(uint8_t rhport, tusb_control_request_t const *
     }
     }
   }
   }
   if (disable) usbd_sof_enable(rhport, false);
   if (disable) usbd_sof_enable(rhport, false);
+#endif
 
 
   tud_control_status(rhport, p_request);
   tud_control_status(rhport, p_request);
 
 
@@ -2080,7 +2084,6 @@ static bool set_fb_params(audiod_function_t* audio, uint32_t f_s, uint32_t f_m)
 
 
   return true;
   return true;
 }
 }
-#endif
 
 
 uint32_t tud_audio_feedback_update(uint8_t func_id, uint32_t cycles)
 uint32_t tud_audio_feedback_update(uint8_t func_id, uint32_t cycles)
 {
 {
@@ -2118,10 +2121,12 @@ uint32_t tud_audio_feedback_update(uint8_t func_id, uint32_t cycles)
 
 
   return feedback;
   return feedback;
 }
 }
+#endif
 
 
 void audiod_sof_isr (uint8_t rhport, uint32_t frame_count)
 void audiod_sof_isr (uint8_t rhport, uint32_t frame_count)
 {
 {
   (void) rhport;
   (void) rhport;
+  (void) frame_count;
 
 
 #if CFG_TUD_AUDIO_ENABLE_EP_OUT && CFG_TUD_AUDIO_ENABLE_FEEDBACK_EP
 #if CFG_TUD_AUDIO_ENABLE_EP_OUT && CFG_TUD_AUDIO_ENABLE_FEEDBACK_EP
   // Determine feedback value - The feedback method is described in 5.12.4.2 of the USB 2.0 spec
   // Determine feedback value - The feedback method is described in 5.12.4.2 of the USB 2.0 spec

+ 2 - 1
src/class/audio/audio_device.h

@@ -490,6 +490,8 @@ static inline bool tud_audio_fb_set(uint32_t feedback);
 uint8_t tud_audio_n_get_fb_n_frames(uint8_t func_id);
 uint8_t tud_audio_n_get_fb_n_frames(uint8_t func_id);
 static inline uint8_t tud_audio_get_fb_n_frames();
 static inline uint8_t tud_audio_get_fb_n_frames();
 
 
+#endif // CFG_TUD_AUDIO_ENABLE_EP_OUT && CFG_TUD_AUDIO_ENABLE_FEEDBACK_EP
+
 // Update feedback value with passed cycles since last time this update function is called.
 // Update feedback value with passed cycles since last time this update function is called.
 // Typically called within tud_audio_sof_isr(). Required tud_audio_feedback_params_cb() is implemented
 // Typically called within tud_audio_sof_isr(). Required tud_audio_feedback_params_cb() is implemented
 // This function will also call tud_audio_feedback_set()
 // This function will also call tud_audio_feedback_set()
@@ -503,7 +505,6 @@ TU_ATTR_WEAK void tud_audio_feedback_params_cb(uint8_t func_id, uint8_t alt_itf,
 
 
 TU_ATTR_WEAK void tud_audio_sof_isr(uint8_t func_id, uint32_t frame);
 TU_ATTR_WEAK void tud_audio_sof_isr(uint8_t func_id, uint32_t frame);
 
 
-#endif // CFG_TUD_AUDIO_ENABLE_EP_OUT && CFG_TUD_AUDIO_ENABLE_FEEDBACK_EP
 
 
 #if CFG_TUD_AUDIO_INT_CTR_EPSIZE_IN
 #if CFG_TUD_AUDIO_INT_CTR_EPSIZE_IN
 TU_ATTR_WEAK bool tud_audio_int_ctr_done_cb(uint8_t rhport, uint16_t n_bytes_copied);
 TU_ATTR_WEAK bool tud_audio_int_ctr_done_cb(uint8_t rhport, uint16_t n_bytes_copied);