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.絶対音量対応