1 /*---------------------------------------------------------------------------* 2 Project: NintendoWare 3 File: snd_BiquadFilterCallback.h 4 5 Copyright (C)2009-2011 Nintendo/HAL Laboratory, Inc. All rights reserved. 6 7 These coded instructions, statements, and computer programs contain proprietary 8 information of Nintendo and/or its licensed developers and are protected by 9 national and international copyright laws. They may not be disclosed to third 10 parties or copied or duplicated in any form, in whole or in part, without the 11 prior written consent of Nintendo. 12 13 The content herein is highly confidential and should be handled accordingly. 14 15 $Revision: $ 16 *---------------------------------------------------------------------------*/ 17 18 #ifndef NW_SND_BIQUAD_FILTER_CALLBACK_H_ 19 #define NW_SND_BIQUAD_FILTER_CALLBACK_H_ 20 21 #include <nn/types.h> 22 #include <nn/snd.h> 23 24 namespace nw { 25 namespace snd { 26 27 //--------------------------------------------------------------------------- 28 //! @brief biquad フィルタを表す抽象クラスです。 29 //! 30 //! BiquadFilterCallback クラスから継承し、 31 //! ユーザー側で biquad フィルタを実装することができます。 32 //! 33 //! BiquadFilterCallback の使用方法については、 34 //! @ref SoundSystem::SetBiquadFilterCallback 関数を参照してください。 35 //! 36 //! @see SoundSystem::SetBiquadFilterCallback 37 //! 38 //! @date 2010/10/15 初版 39 //--------------------------------------------------------------------------- 40 class BiquadFilterCallback 41 { 42 public: 43 //--------------------------------------------------------------------------- 44 //! @brief biquad フィルタの計算に使用する係数の構造体です。 45 //! 46 //! 詳しくは CTR_SDK の nn::snd::BiquadFilterCoefficients 47 //! のリファレンスを参照してください。 48 //! 49 //! @see GetCoefficients 50 //! 51 //! @date 2010/10/15 初版 52 //--------------------------------------------------------------------------- 53 typedef nn::snd::BiquadFilterCoefficients Coefficients; 54 55 //--------------------------------------------------------------------------- 56 //! @brief デストラクタです。 57 //! 58 //! @date 2010/10/15 初版 59 //--------------------------------------------------------------------------- ~BiquadFilterCallback()60 virtual ~BiquadFilterCallback() {} 61 62 //--------------------------------------------------------------------------- 63 //! @brief biquad フィルタの係数を返します。 64 //! 65 //! nw::snd ライブラリ内部の biquad フィルタ係数が必要なタイミングで呼び出されます。 66 //! BiquadFilterCallback を継承したクラスで、 67 //! この関数にフィルタ係数を実装する必要があります。 68 //! 69 //! type は、コールバッククラスを @ref SoundSystem::SetBiquadFilterCallback 70 //! で登録したときのタイプ番号です。 71 //! @ref BiquadFilterType に記述されている BIQUAD_FILTER_TYPE_USER_MIN ~ 72 //! BIQUAD_FILTER_TYPE_USER_MAX までの値が入ります。 73 //! 74 //! value はフィルタのかかり具合を表す 0.0f ~ 1.0f の値です。 75 //! この値に応じたフィルタ係数を coef に格納するように実装します。 76 //! 77 //! @param[in] type フィルタの種類です 78 //! (BIQUAD_FILTER_TYPE_USER_MIN ~BIQUAD_FILTER_TYPE_USER_MAX)。 79 //! @param[in] value フィルタのかかり具合です (0.0f ~ 1.0f) 80 //! @param[out] coef 計算したフィルタ係数を格納するための構造体です。 81 //! 82 //! @see SoundSystem::SetBiquadFilterCallback 83 //! @see BiquadFilterType 84 //! 85 //! @date 2010/10/15 初版 86 //--------------------------------------------------------------------------- 87 virtual void GetCoefficients( int type, f32 value, Coefficients* coef ) const = 0; 88 }; 89 90 } // namespace nw::snd 91 } // namespace nw 92 93 94 #endif /* NW_SND_BIQUAD_FILTER_CALLBACK_H_ */ 95 96