moOdeaudio8.2.5 + Jwm

moodeaudio8.2.5を新規インストール。前回8.2.4で導入したJwmを少し修正してみました。

moOdeaudio8.2.5

初回の起動はパスワードファイルをコピーしている関連かmpdエラーが出ます。オーナー変更で正常動作

$ sudo chown mpd:audio /var/lib/mpd
$ sudo chown mpd:audio /var/lib/mpd/playlists

8.2.5ではmoodeメニューのUIが若干変更になっているようです。

Jwm

JwmはPi4で変更した.jwmrcを元にmoodeに適用しています。 .jwmrc jwm-menu
 

moodeではx11-appsがインストールされているのでJwmパネルの時刻をクリックするとxclockが起動します。
oclockに変更(カラーはx11色名称が使用可。タイトルバーはdevilspie2で外している)
.jwmrc

<Clock format="%H:%M"><Button mask="123">exec:oclock -fg Lime -bg SlateGray</Button></Clock>

さて8.2.4で導入したJwmですがやはりdevilspie2による自動整列が便利なことから継続して使用することにしました。

jwmメニューのSystem Menuをクリックするとワークスペース4に移動してシステムメニューを起動(xdotool)。moode(pi)ボタンクリックでワークスペース1に移動して必要なアプリケーション起動、devilspie2を再起動して定位置に配置(uim-toolbar-gtkは手作業)
ワークスペースへの配置はdevilspie2で可能ですが気が向いたらdwmも併用することを考慮してxdotoolでマウスポインタを移動
System Menuではfehから壁紙を貼り付けています。(適当な画像を用意 background.png)

~/.fehbg

#!/bin/sh
feh --no-fehbg --bg-scale '/home/pi/background.png'

system_menu.py (一部抜粋) system_menu.py

ラジオメニューのナチュレボタン(devilspie2)を修正しています。

# nature
def nature():
    wm = ("ps ax | grep dwm | grep -v grep | awk '{print($NF)}'")
    wm = (subprocess.Popen(wm, stdout=subprocess.PIPE, shell=True).communicate()[0]).decode('utf-8')
    wm = wm.strip()
    if wm == "/usr/local/bin/dwm":
        messagebox.showinfo('nature', 'Wm = DWM  Bye!')
        return
    #subprocess.run("mpc volume 10", shell=True)
    #subprocess.run("mpc clear", shell=True)
    subprocess.run("echo '' > /tmp/moode_id", shell=True)
    subprocess.run("echo '1' > /tmp/test_id", shell=True)
    proc = ("ps ax | grep -v grep | grep devilspie2 | grep Sl")
    proc = (subprocess.Popen(proc, stdout=subprocess.PIPE, shell=True).communicate()[0]).decode('utf-8')
    proc = proc.strip()
    if not proc:
        subprocess.run("devilspie2 &", shell=True)
    else:
        subprocess.run("killall -q devilspie2 && sleep 0.5 && devilspie2 &", shell=True)
icon1001 = PhotoImage(file=dir+'nature.png')
button1001 = ttk.Button(frame1,image=icon1001,command=nature)
button1001.grid(row=2,column=5)

ラジオデータ

moodeaudio8になってラジオマネージャーから登録したラジオ局のエクスポート、インポート機能が無くなっているようです。当サイトでは現在90サイトほどの登録があります。moodeのラジオデータはそれほど頻繁に更新があるわけでは無いのですが稀にURLの変更、また入れ替えがあったりします。国別制限などで最初から聴取不可のサイトなどもあったりしますができるだけ最新のデータに登録したラジオデータを取り込むようにしています。今回気がついたところではBBC RadioのURLが変更になっています。旧URLでも再生は可能ですがSimulラジオからはURLを変更しないとロゴ画像を表示しません。
以下当サイトで実行しているデータインポート(限りなく安全と思いますが自己責任)基本作業はsqlite3が使えれば必ずしもmoodeaudioで作業する必要は無いのですがmoodeaudioで実行したほうが効率がいいので新規インストールしたmoodeaudio8.2.5で実行。
例として8.2.4のユーザーデータを8.2.5に移行。基本作業はユーザー権限で実行、作成したmoode-sqlite3.dbを最後にroot権限でコピー実行。概略としてはユーザー登録したラジオデータは500番以降に記録されます。824のsqlite3.dbから500番以降のデータを取り出し825の最新データに追記。また登録したラジオサイトはplsファイル、ロゴ画像が作成されるので824のカードからコピー所定の位置に配置する必要があります。
ユーザー(home)にディレクトリを作成。824はカードを用意。moode-sqlite3.dbをそれぞれコピー

$ mkdir -p ~/sqlite3/moode824
$ cp /media/rootfs/var/local/www/db/moode-sqlite3.db ~/sqlite3/moode824
$ mkdir -p ~/sqlite3/moode825
$ cp /var/local/www/db/moode-sqlite3.db ~/sqlite3/moode825

エクスポート
~/sqlite3/moode824/radio-export.sh

#!/bin/sh
# radio-export.sh(this file)
# -- csv(old_ver)
sqlite3 -csv moode-sqlite3.db "SELECT * from cfg_radio ;" > cfg_radio.csv
# -- user_data(old_ver)
sleep 1
cat cfg_radio.csv | awk -F "," '$1 >= 500 {print}' > cfg_radio.csv.user_data

824のカードから500番以降のデータをエクスポート(cfg_radio.csv.user_data)

$ cd ~/sqlite3/moode824
$ sh radio-export.sh
$ mv cfg_radio.csv.user_data ../moode825

インポート
~/sqlite3/moode825/radio-import.sh

#!/bin/sh
# radio-import.sh(this file)
# -- csv(new_ver)
sqlite3 -csv moode-sqlite3.db "SELECT * from cfg_radio ;" > cfg_radio.csv
# -- add user_data(new_ver)
sleep 1
cat cfg_radio.csv.user_data >> cfg_radio.csv

user_dataをcfg_radio.csvに追記

$ cd ~/sqlite3/moode825
$ sh radio-import.sh

moode-sqlite3.db インポート(対話モード)

$ sqlite3 moode-sqlite3.db
#SQLite version 3.16.2 2017-01-06 16:32:41
#Enter ".help" for usage hints.
sqlite> .separator ,
sqlite> delete from cfg_radio;
sqlite> .mode csv
sqlite> .import cfg_radio.csv cfg_radio
sqlite> .exit
$ sudo cp -p /var/local/www/db/moode-sqlite3.db /var/local/www/db/moode-sqlite3.db.def
$ sudo cp ./moode-sqlite3.db /var/local/www/db


sqlite3を実行すると対話モードに入ります。上記の通り実行、エラーメッセージが無ければ成功しています。
最後にsudoでコピー実行。最初にバックアップを取っておくといいでしょう。
plsファイル /var/lib/mpd/music/RADIO
logo /var/local/www/imagesw/radio-logos
200×200 80×80
/var/local/www/imagesw/radio-logos/thumbs