06.ボリューム値の復元対応
Bluetoothオーディオレシーバーの電源を入れなおし、Bluetooth機能が搭載されているデバイス(スマートフォンやパソコン)からBluethoothの再接続をした際に、前回のボリューム値が復元されるようにします。
設定の保存、読込は、「Non-Volatile Storage (NVS)」機能を使用します。
前提
「05.絶対音量対応」を実施していない場合は、実施します。
ボリューム値の保存、読込の関数の宣言と定義
ボリューム値の保存、読込の関数の宣言のファイルを用意します。
ファイル名を「config.h」とします。
「bluetooth_audio_receiver」ディレクトリに配置します。
ファイル「config.h」の内容は以下のようにします。
ボリューム値の保存、読込のための関数の宣言のファイルを用意します。
ファイル名を「config.c」とします。
「bluetooth_audio_receiver」ディレクトリに配置します。
ファイル「config.c」の内容は以下のようにします。
ボリューム値の保存、読込の関数の呼び出し
「bt_app_av.c」内の、「s_volume」に関する処理を、すべて、「config_get_volume 関数」「config_set_volume
関数」の処理に置き換えます。
「bt_app_av.c」ファイル
「bt_app_av.c」ファイルのヘッダー部に、「#include "config.h"」を追加します。
config_init 関数の呼び出し
設定の保存、読込は、「Non-Volatile Storage (NVS)」機能を使用します。「Non-Volatile Storage (NVS)」機能を使用するには、初期化処理が必要です。
「Non-Volatile Storage (NVS)」の初期化処理を行う config_init 関数の呼び出しを、「main.c」ファイルの「app_main
関数」に、追加します。
(もともとある、「Non-Volatile Storage (NVS)」の初期化処理は、コメントアウトします)
「main.c」ファイルのヘッダー部に、「#include "config.h"」を追加します。
「CMakeLists.txt」ファイルの編集
ボリューム値に応じたオーディオデータに変更するための関数の定義のファイルを、ビルド対象に追加します。
「CMakeLists.txt」ファイルに、「config.c」を追加します。
ビルド
以下のコマンドを実行し、プロジェクトのプログラムをビルドします。
完了するまで、しばらく待ちます。
フラッシュ
ビルド結果を、マイコンに書き込むフラッシュのコマンドは以下の書式です。
シリアル通信デバイス名が「/dev/ttyUSB0」の場合は、以下のコマンドを実行します。
完了するまで、しばらく待ちます。
動作確認
フラッシュが完了すると、マイコンに書き込まれたプログラムが起動します。
Bluetooth機能が搭載されているデバイス(スマートフォンやパソコン)から、作成した「Bluetooth Audio Receiver」にBluetooth接続します。
作成した「Bluetooth Audio Receiver」のデバイス名は「ESP_SPEAKER」です。
作成した「Bluetooth Audio Receiver」のイヤホンジャックに接続したイヤホンやスピーカーから、接続元のデバイスで再生したオーディオを聴くことができます。
Bluetoothオーディオレシーバーの電源を入れなおし、Bluetooth機能が搭載されているデバイス(スマートフォンやパソコン)からBluethoothの再接続をした際に、前回のボリューム値が復元されます。
関連ページ
前項目:05.絶対音量対応