00001 #include "afw.h" 00002 #include "param.h" 00003 00004 /** \file processdata.cpp 00005 * \brief オーディオコールバック関数 00006 * \author アナログ・デバイセズ株式会社 00007 * \version 1.1 00008 * \date 2006.Jan.16 00009 * 00010 * このファイルは、オーディオ処理のコールバック関数を含む。 00011 */ 00012 namespace afw{ 00013 /** コールバック関数の処理化 00014 * 00015 * コールバック関数を呼ぶ前に初期化の必要がある場合は、この関数内部で行う。 00016 */ 00017 void initProcessData(void) 00018 { 00019 } 00020 /** オーディオ・コールバック関数 00021 * 00022 * @param leftIn 左チャンネルの入力データバッファ 00023 * @param rightIn 右チャンネルの入力データバッファ 00024 * @param leftOut 左チャンネルの出力データバッファ 00025 * @param rightOut 右チャンネルの出力データバッファ 00026 * @param count 各バッファに格納されているオーディオデータの数 00027 * 00028 * この関数はDMAが受信バッファをいっぱいにするたびに割り込み経由で呼ばれる。 00029 * 引数として渡されるのは受信データを含む入力バッファのほか、送信データを 00030 * 格納するために使う出力バッファとデータ個数である。 00031 * ユーザーは関数内部で入力バッファのデータを加工して、出力バッファに送信すべき 00032 * データをおく。 00033 * 00034 * 配列はshortfract型である。この16bit固定小数点型はshortと同じ大きさを 00035 * 持つが、四則は固定小数点領域で定義されている。 00036 * 00037 * for文の内部では、1サンプルづつ、左右チャンネルコピーを行う。これで 00038 * 入力データが出力にコピーされる。コピーする際、 00039 * 00040 * 割り込みソースのクリアなどは、この関数の呼び出し側で行うので、関数内で 00041 * 処理する必要はない。 00042 */ 00043 00044 void processData( 00045 const shortfract leftIn[], 00046 const shortfract rightIn[], 00047 shortfract leftOut[], 00048 shortfract rightOut[], 00049 int count 00050 ) 00051 { 00052 00053 for ( int i=0; i<count; i++ ){ // 引数配列のすべてのデータをコピーする。 00054 leftOut[i] = leftIn[i] * param::gain; 00055 rightOut[i] = rightIn[i] * param::gain; 00056 } 00057 00058 } // processData 00059 00060 }; // namespace afw
1.5.1-p1