OSDN Git Service

ブロックサイズの指定方法と引数を整理
authortakemasa <suikan@users.sourceforge.jp>
Sun, 9 Dec 2012 07:44:50 +0000 (16:44 +0900)
committertakemasa <suikan@users.sourceforge.jp>
Sun, 9 Dec 2012 07:44:50 +0000 (16:44 +0900)
uzume_prototype/uzume.c
uzume_prototype/uzume.h
uzume_prototype/uzume_callback.c

index 6e8abf5..14ca223 100644 (file)
@@ -103,7 +103,7 @@ static struct DMA_DESCRIPTOR rxDesc[3];
  * 左右チャンネルそれぞれに配列を与える。配列内部にはサンプル順にデータが並ぶ。
  * ステレオは2系統あるので左チャンネルも2系統分のデータがある。
  */
-static int leftIn[AUDIOBUFSIZE];
+static int leftIn[UZUME_BLOCKSIZE];
 /**
  * @brief 右入力データ引渡し変数
  * 
@@ -112,7 +112,7 @@ static int leftIn[AUDIOBUFSIZE];
  * 左右チャンネルそれぞれに配列を与える。配列内部にはサンプル順にデータが並ぶ。
  * ステレオは2系統あるので右チャンネルも2系統分のデータがある。
  */
-static int rightIn[AUDIOBUFSIZE];
+static int rightIn[UZUME_BLOCKSIZE];
 /**
  * @brief 左出力データ引渡し変数
  * 
@@ -120,7 +120,7 @@ static int rightIn[AUDIOBUFSIZE];
  * @ref codec_callback()関数から出力オーディオデータをうけとるための引数。
  * 左右チャンネルそれぞれに配列を与える。配列内部にはサンプル順にデータが並ぶ。
  */
-static int leftOut[AUDIOBUFSIZE];
+static int leftOut[UZUME_BLOCKSIZE];
 /**
  * @brief 右出力データ引渡し変数
  * 
@@ -128,7 +128,7 @@ static int leftOut[AUDIOBUFSIZE];
  * @ref codec_callback()関数から出力オーディオデータをうけとるための引数。
  * 左右チャンネルそれぞれに配列を与える。配列内部にはサンプル順にデータが並ぶ。
  */
-static int rightOut[AUDIOBUFSIZE];
+static int rightOut[UZUME_BLOCKSIZE];
 
 /**
  * @brief コーデックの初期化
@@ -207,21 +207,21 @@ static void setup_sport0_dma(void)
        rxDesc[0].next = &rxDesc[1];
        rxDesc[0].start = RxBuffer[0].data;
        rxDesc[0].config = 0x7700 | WNR | WDSIZE_32 | DI_EN | DMAEN;    // Large List, 7 short word.
-       rxDesc[0].x_count = SLOT_PER_SAMPLE * AUDIOBUFSIZE;
+       rxDesc[0].x_count = SLOT_PER_SAMPLE * UZUME_BLOCKSIZE;
        rxDesc[0].x_modify = 4;
        rxDesc[0].avairableBuf = 1;     // DMA_NEXT_PTRがデスクリプタ[0]なら、バッファ1を使える。
        
        rxDesc[1].next = &rxDesc[2];
        rxDesc[1].start = RxBuffer[1].data;
        rxDesc[1].config = 0x7700 | WNR | WDSIZE_32 | DI_EN | DMAEN;    // Large List, 7 short word.
-       rxDesc[1].x_count = SLOT_PER_SAMPLE * AUDIOBUFSIZE;
+       rxDesc[1].x_count = SLOT_PER_SAMPLE * UZUME_BLOCKSIZE;
        rxDesc[1].x_modify = 4;
        rxDesc[1].avairableBuf = 2;     // DMA_NEXT_PTRがデスクリプタ[1]なら、バッファ2を使える。
        
        rxDesc[2].next = &rxDesc[0];
        rxDesc[2].start = RxBuffer[2].data;
        rxDesc[2].config = 0x7700 | WNR | WDSIZE_32 | DI_EN | DMAEN;    // Large List, 7 short word.
-       rxDesc[2].x_count = SLOT_PER_SAMPLE * AUDIOBUFSIZE;
+       rxDesc[2].x_count = SLOT_PER_SAMPLE * UZUME_BLOCKSIZE;
        rxDesc[2].x_modify = 4;
        rxDesc[2].avairableBuf = 0;     // DMA_NEXT_PTRがデスクリプタ[2]なら、バッファ0を使える。
        
@@ -229,21 +229,21 @@ static void setup_sport0_dma(void)
        txDesc[0].next = &txDesc[1];
        txDesc[0].start = TxBuffer[0].data;
        txDesc[0].config = 0x7700 | WDSIZE_32 | DMAEN;  // Large List, 7 short word.
-       txDesc[0].x_count = SLOT_PER_SAMPLE * AUDIOBUFSIZE;
+       txDesc[0].x_count = SLOT_PER_SAMPLE * UZUME_BLOCKSIZE;
        txDesc[0].x_modify = 4;
        txDesc[0].avairableBuf = 1;     // DMA_NEXT_PTRがデスクリプタ[0]なら、バッファ1を使える。
        
        txDesc[1].next = &txDesc[2];
        txDesc[1].start = TxBuffer[1].data;
        txDesc[1].config = 0x7700 | WDSIZE_32 | DMAEN;  // Large List, 7 short word.
-       txDesc[1].x_count =  SLOT_PER_SAMPLE * AUDIOBUFSIZE;
+       txDesc[1].x_count =  SLOT_PER_SAMPLE * UZUME_BLOCKSIZE;
        txDesc[1].x_modify = 4;
        txDesc[1].avairableBuf = 2;     // DMA_NEXT_PTRがデスクリプタ[1]なら、バッファ2を使える。
 
        txDesc[2].next = &txDesc[0];
        txDesc[2].start = TxBuffer[2].data;
        txDesc[2].config = 0x7700 | WDSIZE_32 | DMAEN;  // Large List, 7 short word.
-       txDesc[2].x_count =  SLOT_PER_SAMPLE * AUDIOBUFSIZE;
+       txDesc[2].x_count =  SLOT_PER_SAMPLE * UZUME_BLOCKSIZE;
        txDesc[2].x_modify = 4;
        txDesc[2].avairableBuf = 0;     // DMA_NEXT_PTRがデスクリプタ[2]なら、バッファ1を使える。
 
@@ -305,7 +305,7 @@ void task_audiocodec(VP_INT extinf)
        
        init_codec();
 
-       init_audio( AUDIOBUFSIZE );     // コールバックの初期化
+       init_audio( UZUME_BLOCKSIZE );  // コールバックの初期化
 
        setup_sport0();         //                      SPORT0 設定 
        setup_sport0_dma();     //                      SPORT DMA 設定 
@@ -326,7 +326,7 @@ void task_audiocodec(VP_INT extinf)
                bufRx = (( struct DMA_DESCRIPTOR * ) *pDMA1_NEXT_DESC_PTR )->avairableBuf;
                
                                // CODECの受信データを引数バッファにコピー
-               for ( sample = 0; sample < AUDIOBUFSIZE; sample++ ){
+               for ( sample = 0; sample < UZUME_BLOCKSIZE; sample++ ){
                        leftIn[sample]  = RxBuffer[bufRx].data[sample][ADC_L0];
                        rightIn[sample] = RxBuffer[bufRx].data[sample][ADC_R0];
                }
@@ -336,11 +336,11 @@ void task_audiocodec(VP_INT extinf)
                                leftIn,
                                rightIn,
                                leftOut,
-                               rightOut,
-                               AUDIOBUFSIZE);
+                               rightOut
+                               );
                
                                // 引数データをCODEC用送信バッファにコピー
-               for ( sample = 0; sample < AUDIOBUFSIZE; sample++ ){
+               for ( sample = 0; sample < UZUME_BLOCKSIZE; sample++ ){
                        TxBuffer[bufRx].data[sample][DAC_L0] = leftOut[sample];
                        TxBuffer[bufRx].data[sample][DAC_R0] = rightOut[sample];
                }                               
index 6eb7a2e..3c56556 100644 (file)
@@ -7,7 +7,7 @@
 /**
  * @brief 割り込み1回あたりのサンプル数。ユーザーが変えてもよい。
  */
-#define AUDIOBUFSIZE 64
+#define UZUME_BLOCKSIZE 64
 /**
  * @brief サンプルあたりのスロット数。I2Sなら2。
  */
@@ -30,7 +30,7 @@ typedef int AUDIOSAMPLE;
  * スロット数 @ref SLOT_PER_SAMPLEの積である。
  */
 struct CODEC_BUFFER{
-       AUDIOSAMPLE data[AUDIOBUFSIZE][SLOT_PER_SAMPLE];
+       AUDIOSAMPLE data[UZUME_BLOCKSIZE][SLOT_PER_SAMPLE];
 } ;
 
 
@@ -41,7 +41,7 @@ extern void process_audio(
         AUDIOSAMPLE input_left[],
         AUDIOSAMPLE input_right[],
         AUDIOSAMPLE output_left[],
-        AUDIOSAMPLE output_right[],
-        AUDIOSAMPLE count);
+        AUDIOSAMPLE output_right[]
+        );
 
 #endif /*UZUME_H_*/
index a8883e0..84ed363 100644 (file)
@@ -24,7 +24,6 @@ void init_audio( int count )
  * @param in0_right 右チャンネル0入力配列
  * @param out0_left 左チャンネル0出力配列
  * @param out0_right 右チャンネル0出力配列
- * @param count 受け渡しするサンプル数
  * @ingroup AUDIO
  * 
  * ユーザーが信号処理を行う関数。オーディオ信号に同期して呼び出される。それぞれの引数は
@@ -37,17 +36,17 @@ void init_audio( int count )
  * 中で初期化しておく。
  */
 void process_audio( 
-                       int input_left[], 
-                       int input_right[], 
-                       int output_left[], 
-                       int output_right[], 
-                       int count)
+                       AUDIOSAMPLE input_left[],
+                       AUDIOSAMPLE input_right[],
+                       AUDIOSAMPLE output_left[],
+                       AUDIOSAMPLE output_right[]
+                       )
 {
                // ループ変数
        int sample;
        
                // count個のサンプルすべてを処理する
-       for ( sample = 0; sample < count; sample++ ){
+       for ( sample = 0; sample < UZUME_BLOCKSIZE; sample++ ){
                output_left[sample]  = input_left[sample];
                output_right[sample] = input_right[sample];
        }