From: Shinichiro Nakamura Date: Sat, 19 Jan 2013 07:34:34 +0000 (+0900) Subject: $B%A%1%C%H(B #30540 uzume_callback.c$B$N(BDoxygen$B$r=$@5$7$?!#(B X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=52ed6d41fda10f7b0632831a90a54a155e9d8e09;p=uzume%2Fuzume_bfin.git $B%A%1%C%H(B #30540 uzume_callback.c$B$N(BDoxygen$B$r=$@5$7$?!#(B $B0J2<$r=$@5$7$?!#(B * $BB8:_$7$J$$4X?t$KBP$9$k(B@ref$B$,E=$i$l$F$$$k!#(B * $BJQ?tL>$,JQ99$5$l$F$$$k$N$K(B@param$B$,99?7$5$l$F$$$J$$!#(B --- diff --git a/uzumeapp/uzume_callback.c b/uzumeapp/uzume_callback.c index 5f102d9..9cb3624 100644 --- a/uzumeapp/uzume_callback.c +++ b/uzumeapp/uzume_callback.c @@ -1,59 +1,59 @@ /** * @file uzume_callback.c * @brief オーディオ信号処理を行うユーザー・コールバック - * */ #include "t_services.h" #include "s_services.h" #include "kernel_id.h" #include "uzume.h" #include "i2s_subsystem.h" + /** * @brief 信号処理初期化関数 + * @details + * この関数はUZUMEプラットフォームの初期化を行う。 + * フィルタの構築や変数の初期化などを実行すると良い。 + * * @ingroup AUDIO - * - * この関数は@ref codec_callback()に先立って一度だけ呼び出される。フィルタの構築や - * 変数の初期化に使う。 */ -void init_audio( void ) +void init_audio(void) { /* ブロックサイズは UZUME_BLOCKSIZE マクロを使用すればわかる */ } + /** * @brief 信号処理関数 - * @param in0_left 左チャンネル0入力配列 - * @param in0_right 右チャンネル0入力配列 - * @param out0_left 左チャンネル0出力配列 - * @param out0_right 右チャンネル0出力配列 + * @param input_left 左チャンネル0入力配列 + * @param input_right 右チャンネル0入力配列 + * @param output_left 左チャンネル0出力配列 + * @param output_right 右チャンネル0出力配列 * @ingroup AUDIO - * - * ユーザーが信号処理を行う関数。オーディオ信号に同期して呼び出される。それぞれの引数は - * 引数countがあらわす個数だけデータを持っている。データは24bit符号付整数。32bit変数に - * 左詰で渡される。 - * + * + * ユーザーが信号処理を行う関数。オーディオ信号に同期して呼び出される。 + * それぞれの引数は引数countがあらわす個数だけデータを持っている。 + * データは24bit符号付整数。32bit変数に左詰で渡される。 + * * この関数はステレオ信号を2系統あつかえる。すなわち、系統0と系統1がそれぞれ左右チャンネルを持つ。 - * - * この関数が使う資源で、あらかじめ初期化が必要なものは、@ref codec_callback_init()の - * 中で初期化しておく。 + * この関数が使う資源で、あらかじめ初期化が必要なものは、@ref init_audio()の中で初期化しておく。 */ -void process_audio( - AUDIOSAMPLE input_left[], - AUDIOSAMPLE input_right[], - AUDIOSAMPLE output_left[], - AUDIOSAMPLE output_right[] - ) +void process_audio( + AUDIOSAMPLE input_left[], + AUDIOSAMPLE input_right[], + AUDIOSAMPLE output_left[], + AUDIOSAMPLE output_right[] + ) { - // ループ変数 - fract32 sample; - fract32 volume; + // ループ変数 + fract32 sample; + fract32 volume; + + // ch 0 のボリューム値(32bit) + volume = get_volume(0) >> 15; - // ch 0 のボリューム値(32bit) - volume = get_volume(0)>>15; - - // count個のサンプルすべてを処理する - for ( sample = 0; sample < UZUME_BLOCKSIZE; sample++ ){ - output_left[sample] = (input_left[sample]>>16) * volume; - output_right[sample] = (input_right[sample]>>16) * volume; - } + // count個のサンプルすべてを処理する + for (sample = 0; sample < UZUME_BLOCKSIZE; sample++) { + output_left[sample] = (input_left[sample] >> 16) * volume; + output_right[sample] = (input_right[sample] >> 16) * volume; + } }