# SNDEX_SetI2SFrequency

## 構文

  `#include <twl/snd.h>`

      SNDEXResult SNDEX_SetI2SFrequency( SNDEXFrequency freq );

## 引数

freq | `SNDEXFrequency列挙型`のI2S動作周波数を指定します。

## 返り値

SNDEX_RESULT_SUCCESS | 一連の処理が正常に完了した場合に返ります。
SNDEX_RESULT_ILLEGAL_STATE | NITROプラットフォーム上で当関数を呼び出した場合、 例外ハンドラ内から当関数を呼び出した場合、CODECをCODEC-DSモードで動作させている場合、 音声強制スピーカー出力設定を行っている場合、マイクの周波数限定自動サンプリングを行っている場合に返ります。
SNDEX_RESULT_INVALID_PARAM | 規定値に含まれていない値をfreqに指定した場合に返ります。
SNDEX_RESULT_BEFORE_INIT | サウンド拡張機能を`SNDEX_Init()`により初期化していない場合に返ります。
SNDEX_RESULT_EXCLUSIVE | 他のサウンド拡張機能に関する処理を実行中の場合に返ります。サウンド拡張機能に関する各処理は排他制御により同時には行えませんのでご注意下さい。 また、ARM7内での排他制御エラーが発生した場合にも返ります。この場合はARM7内での処理進捗状況に依存したエラーですので、リトライすると状況が改善する可能性があります。 SNDEX ライブラリの概要にある通り、シャッター音再生処理中もこのエラーを返します。
SNDEX_RESULT_PXI_SEND_ERROR | ARM7へのPXIコマンド発行に失敗した場合に返ります。 ARM7へのPXI送信キューが飽和した場合や、ハードウェアがエラーを検知した場合に発生するエラーですので、リトライすると状況が改善する可能性があります。
SNDEX_RESULT_FATAL_ERROR | 通常起こり得ないエラーです。 ライブラリの状態管理を無視して直接不正なPXIコマンドを発行した場合、 ARM7コンポーネントとサウンド拡張機能ライブラリのバージョンが異なる場合、 メモリ破壊等によりライブラリの状態管理が異常な状態に陥った場合等に発生する可能性があります。 ランタイムに復旧する手段はありません。

## 説明

I2S動作周波数設定を同期的に変更します。I2S動作周波数の初期値はSNDEX_FREQUENCY_32730です。

内部で`SNDEX_SetI2SFrequencyAsync()`を呼び出し、非同期処理が完了するまで当関数を呼び出したスレッドを停止します。 スレッドからの呼び出しを前提としていますので、例外ハンドラ内からの呼び出しは失敗します。 また、処理の完了はPXI受信割込みにより検知しますので、PXI受信割込みを禁止していると当関数内部でブロックし続けることに注意して下さい。

## 注意

I2S動作周波数の変更は、CPU外部デバイスとの通信クロックの変更同期処理を伴います。 このため、サウンド出力機能及びCODECに関連する機能全てに影響します。 CPUからの音声出力・DSPからの音声出力・タッチパネル入力のサンプリング・マイク入力のサンプリング・DSPでのマイク入力のサンプリングを 全て停止させた状態で周波数を切り換えるようにして下さい。

## 参照

`SNDEX_SetI2SFrequencyAsync, SNDEX_GetI2SFrequency, MIC_StopLimitedSampling,MIC_StopAutoSampling, TP_RequestAutoSamplingStop`

## 履歴

2008/11/07 シャッター音再生処理時に SNDEX_RESULT_EXCLUSIVE が返ることを追記
2008/02/15 初版