はじめに
Rubyを使ってシンプルなGUIのラジオアプリを作った。
Glimmer-DSL-LibUI を利用した。
概要
- RadioBrowserのTopVote500がテーブルに表示される。
- インプットボックスに打ち込むと、ラジオ局をインクリメンタルサーチできる(Glimmer-DSL-LibUIの機能)
- 再生ボタンを押すとコマンド(デフォルトではVLC)が起動してラジオを再生する。
ポイントと感想
- GUIのポイントは、テーブルのインクリメンタルサーチだが、これはGlimmer-dsl-libuiの標準機能を使った。
- テーブルのColumnの幅の調節ってできるんだろうか?
- Glimmer-DSL-LibUI 自動でテーブルの変更を検知して更新してくれるようだ。
- ラジオ局は https://www.radio-browser.info のAPIを叩いて取得している。
- TopVoteから取得している。
- 本当はもっと利用できるラジオ局を増やしたいが、あまり多くするとパフォーマンスが悪化。
- TopVoteから取得している。
- 再生自体はVLCに丸投げしている。
- spawnを利用してコマンドを起動。PIDを記録。終了時はPIDをkill。
-
この方法はコマンドに空白文字などが含まれるとうまくいかない。
- グループIDを指定すれば大丈夫かも。
- 監視用のスレッドが作成される。これをui_timerから監視。そうすることで、VLCが途中で終了したら気がつくようにしてある。
- VLCはインターフェイスを選べる。ここでは
dummy
を指定している。
- Glimmer-DSL-LibUIの作者の方からプルリクエストを頂いた。自分が気が付かなかったバグをいくつか修正してもらった。Mac対応やWindows対応が行われた。ありがたいし勉強になった。
この記事は以上です。