• プラグイン

    プラグイン機能とは

    v0.3.10で実装されたsymphonic-mpdの『プラグイン機能』とは、自分で書いたシェルを起動するボタンをメニューに追加できる機能です。
    例えば、DACのデジタルフィルタを切り替えるシェルを用意すれば、Web UIのメニューから実行することができます。


    参考サイト

    ジャイアンさんが丁寧な解説を描いてくださいました。ご一読くださいませ。

    symphonic-mpdユーザーのためのLinux初心者講座 たぶん其の一
    オーバークロックプリセットの話題です

    symphonic-mpdユーザーのためのLinux初心者講座 そして其の二
    オーバークロックプリセットの後編です

    symphonic-mpdユーザーのためのLinux初心者講座 やっと其の三
    UPDATE THIS FOLDERプラグイン導入の話題です

    symphonic-mpd & SabreBerry32ユーザーのためのLinux中級講座
    デジタルボリュームON/OFFプラグインの話題です


    プラグインの設定

    設定ファイルは/home/pi/plugins/.plugin.jsonです。

    同梱しているサンプルプラグイン「ボリューム設定プラグイン(75%固定)」を例に説明しますと、
    /home/pi/plugins/.plugin.jsonには以下のように定義されています。

    {
    "menu" :"VOLUME(75%)",
    "active" :"yes",
    "icon" :"volume-up",
    "form" :"",
    "command":"mpc volume 75",
    "output" :"",
    "success":"success!",
    "error" :"error!"
    } ,
    
    項目 説明
    menu メニューに表示するボタン名。
    active yesで表示、noで非表示。
    icon ボタン横のアイコンを指定。
    form フォームのhtmlを指定。シェルにパラメータを渡す必要がなければフォームも不要ですので、設定は空にします。設定するパスは/var/lib/mpd/music/が起点となります。例えばフォームのhtmlが/var/lib/mpd/music/xx.htmlの場合、設定値は"/xx.html"となります。フォーム内のinputタグには必ずname="param"をつけてください。
    command 実行するシェルのパス。(シェルではなくコマンドを直接指定しても問題ありません)
    output 実行結果画面のhtmlを指定。不要なら空にします。設定するパスは/var/lib/mpd/music/が起点となります。例えばcommandで指定したシェルで/var/lib/mpd/music/RAM/output.htmlを出力する場合、設定値は"/RAM/output.html"となります。
    success シェルの戻り値が0の場合に表示するメッセージ。outputが指定されている場合はそちらが優先され、successに指定したメッセージは使われません。
    error シェルの戻り値が0より大きい場合に表示するメッセージ。

    フォームの作り方

    シェルにパラメータを引き渡したい場合、htmlで作成したフォームを呼び出すことができます。

    例として『ブラウズ中のフォルダに絞ってLIBRARY UPDATEを実行する』というプラグインを取り上げます。

    初めに、/home/pi/plugins/update_folder.htmlを作成します。

    <form>
    <input id="library_update_target" class="form-control" type="text" name="param" value="" />
    <script>
    $(function(){
    $("#library_update_target").val(browsepath);
    });
    </script>
    </form>
    

    sudo ln -s /home/pi/plugins/update_folder.html

    ※シンボリックリンクを貼らずに、/var/lib/mpd/music/以下に直接htmlを配置しても問題ありません。
    
    最後に、/home/pi/plugins/.plugin.jsonにプラグイン定義を追加します。
    ```json
    {
    "menu" :"UPDATE THIS FOLDER",
    "active" :"yes",
    "icon" :"heart",
    "form" :"/update_folder.html",
    "command":"mpc update",
    "output" :"",
    "success":"Library updating",
    "error" :"error!"
    } 
    

    ※直前のプラグイン定義とカンマ(,)で区切るのを忘れないでください。


    アイコン

    プラグイン定義の"icon"に指定するアイコン名です。

    4CA84F8E-9D7F-42C8-98BE-8FA17C926BA7.jpeg 2D49C394-630C-4D9F-B3B9-D2F77C40B275.jpeg 03653531-9E99-4820-9B54-4B5330051339.jpeg

  • mpd.logを見るためのプラグインをコチラで情報提供します。

    <<以下、16:09ころに削除しサブカテゴリ側に転記しています>>

    おまけ:プラグインで「フォームと処理結果をダイアログ上に一括表示する方法」についてご存じの方おられますでしょうか?もしご存知でしたら教えて下さい(できれば表示行数のフォームとログ出力を一括化したいので)

  • @sunatomo

    投稿ありがとうございます。
    サブカテゴリ「☕ sunatomo's CAFE」をオープンしました。
    sunatomoさんにサブカテゴリのモデレータ権限をつけましたので、ほとんどの作業ができると思います。
    御自由に活用なさってください。

    新カテゴリの方にスレッドをたて、ログ表示プラグインの解説を再度投稿していただければと思います。