表示系とWebラジオの再生系それぞれの確認が出来たので、合体融合して完成形にしていく。
まずは、ロータリーエンコーダーを以下のように追加。
次に、エンコーダーの入力でGPIOを使えるようにするために必要なライブラリ
(libgpiod-dev)をインストール
sudo apt install -y libgpiod-dev
MakefileをGeminiにお願いして以下のように合体版とし、コンパイル時に -lgpiodを追加
# ==========================================
# コンパイラとフラグの設定
# ==========================================
CXX := g++
CXXFLAGS := -std=c++20 -O3 -Wall $(shell pkg-config --cflags gstreamer-1.0)
# インクルードパスの設定
INCLUDES := -I./Display_Lib_RPI/include \
-I./Display_Lib_RPI/include/ili9341 \
$(shell pkg-config --cflags freetype2)
# リンクするライブラリの設定 (-ljpeg と -lgpiod を追加)
LIBS := $(shell pkg-config --libs freetype2 gstreamer-1.0) -llgpio -lgpiod -ljpeg -lpthread
# ==========================================
# ソースファイルとオブジェクトファイルの定義
# ==========================================
SRC_MAIN := webradio.cpp
SRC_LIB := Display_Lib_RPI/src/common_data_RDL.cpp \
Display_Lib_RPI/src/font_data_RDL.cpp \
Display_Lib_RPI/src/print_data_RDL.cpp \
Display_Lib_RPI/src/utility_data_RDL.cpp \
Display_Lib_RPI/src/color16_graphics_RDL.cpp \
Display_Lib_RPI/src/ili9341/ILI9341_TFT_LCD_RDL.cpp
OBJ_MAIN := webradio.o
OBJ_LIB := $(SRC_LIB:.cpp=.o)
OBJS := $(OBJ_MAIN) $(OBJ_LIB)
TARGET := webradio
# ==========================================
# ビルドルール
# ==========================================
all: $(TARGET)
$(TARGET): $(OBJS)
@echo "Linking $(TARGET)..."
$(CXX) $(CXXFLAGS) $(INCLUDES) $^ -o $@ $(LIBS)
@echo "Build successful!"
$(OBJ_MAIN): $(SRC_MAIN)
@echo "Compiling $<..."
$(CXX) $(CXXFLAGS) $(INCLUDES) -c $< -o $@
Display_Lib_RPI/src/%.o: Display_Lib_RPI/src/%.cpp
@echo "Compiling $<..."
$(CXX) $(CXXFLAGS) $(INCLUDES) -c $< -o $@
.PHONY: all clean
clean:
@echo "Cleaning up object files and target..."
rm -f $(TARGET) $(OBJS)
音量が、デフォルトでは小さかったので、Linuxのマスターボリュームを以下のように70%に引き上げ。
amixer set Master 70%
そして、この音量設定を保存
sudo alsactl store
合体融合では、おじさんの手作業が多いので、時間がかかっている。
しかし、まぁ、なんとか、とりあえず動きだした。
選局と、音量調整、電波強度、アルバムアート表示は出来る。
しかし、まだまだ未実装のコードは多い。VUメーターも動いていない。
今回のコード他を以下に入れておきますので、興味のある方はどうぞ。
補足
WebRadio_work1.cppをwebradio.cppとして保存、make
./webradioで実行
その他環境設定は過去記事を参照。完成したら、まとめ記事を書きます。
まだ表示も出来てないところもあるし、設定保存等も実装出来ていない。
次は、VUメーターから取り掛かろうと思う。
まだまだ、だいぶ手を入れなければならない。
「もっと手を入れるのニャ」
こっちも手がかかる・・



