Modified a little for 32k byte buffer.

Dependents:   Peach_AudioChannelDividerAndCompensator

Files at this revision

API Documentation at this revision

Comitter:
dokunewon
Date:
Sun Oct 18 08:16:03 2015 +0000
Parent:
60:68924f211e71
Commit message:
Change a little.

Changed in this revision

Doku_USBAudio/USBAudio.cpp Show annotated file Show diff for this revision Revisions of this file
Doku_USBAudio/USBAudio.h Show annotated file Show diff for this revision Revisions of this file
USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb1/src/userdef/usb1_function_userdef.c Show annotated file Show diff for this revision Revisions of this file
diff -r 68924f211e71 -r ff0388dee94f Doku_USBAudio/USBAudio.cpp
--- a/Doku_USBAudio/USBAudio.cpp	Sun Oct 11 07:37:39 2015 +0000
+++ b/Doku_USBAudio/USBAudio.cpp	Sun Oct 18 08:16:03 2015 +0000
@@ -55,7 +55,7 @@
     volume = 0;
 
     // connect the device
-    USBDevice::connect();
+    //USBDevice::connect(); //doku
 }
 
 bool USBAudio::read(uint8_t * buf) {
@@ -116,58 +116,17 @@
     return (mute) ? 0.0 : volume;
 }
 
-extern DigitalOut LedR;
-extern DigitalOut LedG;
-extern DigitalOut LedB;
-
-// receive 32k sample of sudio stereo data
-// if input stalls then zero is paded  
-// so, it every time returns 32k sample of data
-int USBAudio::read32kSZ(uint32_t *Buf)
+// receive 32k sample of stereo data
+int USBAudio::read32k(uint32_t *Buf)
 {
     //受信データが準備できてなければ、
     if(! m_prbuf)
     {
-printf("Data stall in bank:");
-        //バッファの前半を受信中ならば、
-        if(m_widx < 32768)
-        {
-printf("0\n");
-            //データをユーザのバッファへコピーして、
-            memcpy((uint8_t *)Buf,(uint8_t *)&m_rbuf[32768*0],32768 * 4);
-            //ユーザバッファをゼロで埋めて
-            memset((uint8_t *)Buf,0,32768*4);
-            //受信バッファをクリアする
-            memset((uint8_t*)m_rbuf,0,65536*4);
-            //次は、バッファの前半から受信する
-            //m_widx = 0;
-            //受信データに「準備中」を設定する
-            //m_prbuf = NULL;
-            //1(受信完了)を返す
-            return 1;
-        }
-        //バッファの後半を受信中ならば、
-        else 
-        {    
-printf("1\n");
-            //データをユーザのバッファへコピーして、
-            memcpy((uint8_t *)Buf,(uint8_t *)&m_rbuf[32768*1],32768 * 4);
-            //ユーザバッファをゼロで埋めて
-            memset((uint8_t *)Buf,0,32768*4);
-            //受信バッファをクリアする
-            memset((uint8_t*)m_rbuf,0,65536*4);
-            //次は、バッファの前半から受信する
-            //m_widx = 0;
-            //受信データに「準備中」を設定する
-            //m_prbuf = NULL;
-            //1(受信完了)を返す
-            return 1;
-        }
+        return 0;
     }
     //受信データが準備できていれば、
     else
     {
-printf("Data ready\n");
         //データをユーザのバッファへコピーして、
         memcpy((uint8_t *)Buf,(uint8_t *)m_prbuf,32768 * 4);
         //受信データに「準備中」を設定する
@@ -177,26 +136,11 @@
     }
 }
 
-// receive 32k sample of sudio stereo data
-//int USBAudio::read32k(uint8_t *buf)
-//{
-//    //受信データが準備できてなければ、
-//    if(! m_prbuf)
-//    {
-//        //0(受信準備中)を返す。
-//        return 0;
-//    }
-//    //受信データが準備できていれば、
-//    else
-//    {
-//        //データをユーザのバッファへコピーして、
-//        memcpy((uint8_t *)buf,(uint8_t *)m_prbuf,32768 * 4);
-//        //受信データに「準備中」を設定する
-//        m_prbuf = NULL;
-//        //1(受信完了)を返す
-//        return 1;
-//    }
-//}
+int USBAudio::clear32k()
+{
+    //clear entier buffer
+    memset((uint8_t *)m_rbuf,0,32768 * 4 * 2);
+}
 
 bool USBAudio::EPISO_OUT_callback() {
     int ridx;
diff -r 68924f211e71 -r ff0388dee94f Doku_USBAudio/USBAudio.h
--- a/Doku_USBAudio/USBAudio.h	Sun Oct 11 07:37:39 2015 +0000
+++ b/Doku_USBAudio/USBAudio.h	Sun Oct 18 08:16:03 2015 +0000
@@ -102,8 +102,9 @@
     volatile uint32_t m_rbuf[32768 * 2];
     uint32_t tmpbuf[48];
     int m_widx;
-    int USBAudio::read32kSZ(uint32_t *buf);
-    
+    int USBAudio::read32k(uint32_t *buf);
+    int USBAudio::clear32k();
+
     /**
     * Try to read an audio packet. During a frame, only a single reading (you can't write and read an audio packet during the same frame)can be done using this method. Warning: Non Blocking
     *
diff -r 68924f211e71 -r ff0388dee94f USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb1/src/userdef/usb1_function_userdef.c
--- a/USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb1/src/userdef/usb1_function_userdef.c	Sun Oct 11 07:37:39 2015 +0000
+++ b/USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb1/src/userdef/usb1_function_userdef.c	Sun Oct 18 08:16:03 2015 +0000
@@ -115,11 +115,13 @@
 * Arguments    : none
 * Return Value : none
 *******************************************************************************/
+int USB_Audio_Attached = 0;//doku
 void Userdef_USB_usb1_function_attach (void)
 {
-    printf("\n");
-    printf("channel 1 attach device\n");
-    printf("\n");
+    USB_Audio_Attached = 1;                 //doku
+//    printf("\n");                         //doku
+//    printf("channel 1 attach device\n");  //doku
+//    printf("\n");                         //doku
 }
 
 /*******************************************************************************
@@ -131,9 +133,10 @@
 *******************************************************************************/
 void Userdef_USB_usb1_function_detach (void)
 {
-    printf("\n");
-    printf("channel 1 detach device\n");
-    printf("\n");
+    USB_Audio_Attached = 0;                 //doku
+//    printf("\n");                         //doku
+//    printf("channel 1 detach device\n");  //doku
+//    printf("\n");                         //doku
 }
 
 /*******************************************************************************