OSDN Git Service

First commitment for the BlackTank LPC1769.
[blacktank/blacktank.git] / audio_effect.h
1 /**
2  * @file audio_effect.h
3  * @brief コーデックから受け取ったデータに対して、実際の信号処理を施す。
4  * @date 2011/02/19
5  * @author: Takemasa Nakamura (Modified: Shinichiro Nakamura)
6  */
7
8 #ifndef AUDIO_EFFECT_H
9 #define AUDIO_EFFECT_H
10
11 /**
12  * @brief エフェクトに対するパラメータ。
13  * @details
14  * エフェクトに対するパラメータの解釈は、各エフェクト処理が行う。
15  */
16 typedef struct {
17     int var0;   /**< エフェクトパラメータ値0。(意味は各エフェクタに依存) */
18     int var1;   /**< エフェクトパラメータ値1。(意味は各エフェクタに依存) */
19     int var2;   /**< エフェクトパラメータ値2。(意味は各エフェクタに依存) */
20     int var3;   /**< エフェクトパラメータ値3。(意味は各エフェクタに依存) */
21 } effect_param_t;
22
23 /**
24  * オーディオエフェクト(スルー)を実行する。
25  *
26  * @param param エフェクトパラメータ。
27  * @param in_left 入力データ。(L)
28  * @param in_right 入力データ。(R)
29  * @param out_left 出力データ。(L)
30  * @param out_right 出力データ。(R)
31  */
32 void audio_effect_through(
33         const effect_param_t *param,
34         const AUDIOSAMPLE *in_left,
35         const AUDIOSAMPLE *in_right,
36         AUDIOSAMPLE *out_left,
37         AUDIOSAMPLE *out_right);
38
39 /**
40  * オーディオエフェクト(ボーカルキャンセル)を実行する。
41  *
42  * @param param エフェクトパラメータ。
43  * @param in_left 入力データ。(L)
44  * @param in_right 入力データ。(R)
45  * @param out_left 出力データ。(L)
46  * @param out_right 出力データ。(R)
47  */
48 void audio_effect_vocal_cancel(
49         const effect_param_t *param,
50         const AUDIOSAMPLE *in_left,
51         const AUDIOSAMPLE *in_right,
52         AUDIOSAMPLE *out_left,
53         AUDIOSAMPLE *out_right);
54
55 /**
56  * オーディオエフェクト(FIR: Finite Impulse Response)を実行する。
57  *
58  * @param param エフェクトパラメータ。
59  * @param in_left 入力データ。(L)
60  * @param in_right 入力データ。(R)
61  * @param out_left 出力データ。(L)
62  * @param out_right 出力データ。(R)
63  */
64 void audio_effect_fir(
65         const effect_param_t *param,
66         const AUDIOSAMPLE *in_left,
67         const AUDIOSAMPLE *in_right,
68         AUDIOSAMPLE *out_left,
69         AUDIOSAMPLE *out_right);
70
71 /**
72  * オーディオエフェクト(IIR: Infinite Impulse Response)を実行する。
73  *
74  * @param param エフェクトパラメータ。
75  * @param in_left 入力データ。(L)
76  * @param in_right 入力データ。(R)
77  * @param out_left 出力データ。(L)
78  * @param out_right 出力データ。(R)
79  */
80 void audio_effect_iir(
81         const effect_param_t *param,
82         const AUDIOSAMPLE *in_left,
83         const AUDIOSAMPLE *in_right,
84         AUDIOSAMPLE *out_left,
85         AUDIOSAMPLE *out_right);
86
87 #endif
88