<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>mp3term.sh</title>
<meta name="Generator" content="Vim/8.2">
<meta name="plugin-version" content="vim8.1_v2">
<meta name="syntax" content="bash">
<meta name="settings" content="use_css,pre_wrap,no_foldcolumn,expand_tabs,prevent_copy=,use_input_for_pc=fallback">
<meta name="colorscheme" content="default">
<style>
<!--
pre { white-space: pre-wrap; font-family: monospace; color: #ffffff; background-color: #000000; }
body { font-family: monospace; color: #ffffff; background-color: #000000; }
* { font-size: 1em; }
.PreProc { color: #ff40ff; }
.Comment { color: #8080ff; }
.Constant { color: #ff6060; }
.Special { color: #ff40ff; }
.Identifier { color: #00ffff; }
.Statement { color: #ffff00; }
-->
</style>
</head>
<body>
<pre id='vimCodeElement'>
<span class="Comment">#!/bin/bash</span>
<span class="Comment"># ---------------------------------------------------------------------------- #</span>
<span class="Comment">## \file mp3term.sh</span>
<span class="Comment">## \author Sebastien Beaugrand</span>
<span class="Comment">## \sa <a href="http://beaugrand.chez.com/">http://beaugrand.chez.com/</a></span>
<span class="Comment">## \copyright CeCILL 2.1 Free Software license</span>
<span class="Comment"># ---------------------------------------------------------------------------- #</span>
<span class="Identifier">log</span>=~/.mp3log

<span class="Statement">if </span><span class="Statement">[</span> <span class="Statement">&quot;</span><span class="PreProc">$1</span><span class="Statement">&quot;</span> <span class="Statement">=</span> <span class="Constant">&quot;-n&quot;</span> <span class="Statement">]</span><span class="Statement">;</span> <span class="Statement">then</span>
    <span class="Identifier">xterm</span>=n
<span class="Statement">else</span>
    <span class="Identifier">xterm</span>=o
<span class="Statement">fi</span>

<span class="Comment"># ---------------------------------------------------------------------------- #</span>
<span class="Comment"># installation de l'application pour LXDE</span>
<span class="Comment"># ---------------------------------------------------------------------------- #</span>
<span class="Statement">if </span><span class="Statement">[</span> <span class="Statement">&quot;</span><span class="PreProc">$1</span><span class="Statement">&quot;</span> <span class="Statement">=</span> <span class="Constant">&quot;-i&quot;</span> <span class="Statement">]</span><span class="Statement">;</span> <span class="Statement">then</span>
    <span class="Identifier">icon</span>=/usr/share/pixmaps/lxmusic.png

    <span class="Identifier">user</span>=<span class="Special">`whoami`</span>
    <span class="Statement">if </span><span class="Statement">[</span> <span class="PreProc">$user</span> <span class="Statement">!=</span> <span class="Statement">&quot;</span><span class="Constant">root</span><span class="Statement">&quot;</span> <span class="Statement">]</span><span class="Statement">;</span> <span class="Statement">then</span>
        su <span class="Statement">-c</span> <span class="Statement">&quot;</span><span class="PreProc">$0</span><span class="Constant"> </span><span class="PreProc">$*</span><span class="Statement">&quot;</span>
        <span class="Statement">exit</span> <span class="PreProc">$?</span>
    <span class="Statement">fi</span>

    cat <span class="Statement">&gt;</span> /usr/share/applications/mp3.desktop <span class="Statement">&lt;&lt; EOF</span>
<span class="Constant">[Desktop Entry]</span>
<span class="Constant">Name=MP3</span>
<span class="Constant">Comment=Multimedia Player</span>
<span class="Constant">Exec=mp3term.sh</span>
<span class="Constant">Icon=mp3</span>
<span class="Constant">Type=Application</span>
<span class="Constant">Terminal=false</span>
<span class="Constant">Categories=AudioVideo;Player;</span>
<span class="Statement">EOF</span>

    convert <span class="PreProc">$icon</span> <span class="Special">-font</span> DejaVu-Sans-Bold <span class="Special">-pointsize</span> <span class="Constant">53</span> \
        <span class="Special">-fill</span> white <span class="Special">-annotate</span> +<span class="Constant">4</span>+<span class="Constant">44</span> <span class="Statement">&quot;</span><span class="Constant">MP3</span><span class="Statement">&quot;</span> \
        <span class="Special">-fill</span> black <span class="Special">-annotate</span> +<span class="Constant">0</span>+<span class="Constant">40</span> <span class="Statement">&quot;</span><span class="Constant">MP3</span><span class="Statement">&quot;</span> /usr/share/icons/mp3.png
<span class="Statement">fi</span>

<span class="Comment"># ---------------------------------------------------------------------------- #</span>
<span class="Comment"># setInfo</span>
<span class="Comment"># ---------------------------------------------------------------------------- #</span>
<span class="Identifier">setInfo()</span>
<span class="Identifier">{</span>
    <span class="Identifier">info</span>=`mp3rand.sh <span class="Special">-i</span>`
    <span class="Identifier">max</span>=`cat /tmp/mp3rand-i.tmp <span class="Statement">|</span> wc <span class="Special">-l</span>`
    <span class="Statement">if </span><span class="Statement">[</span> <span class="Statement">-z</span> <span class="Statement">&quot;</span><span class="PreProc">$max</span><span class="Statement">&quot;</span> <span class="Statement">]</span> <span class="Statement">||</span> <span class="Special">((</span>max <span class="Statement">&lt;=</span> <span class="Constant">1</span><span class="Special">))</span><span class="Statement">;</span> <span class="Statement">then</span>
        <span class="Identifier">info</span>=<span class="PreProc">$info</span><span class="Special">`</span><span class="Statement">echo</span><span class="Constant"> -e </span><span class="Statement">&quot;</span><span class="Special">\n</span><span class="Constant">? (O/n) </span><span class="Statement">&quot;</span><span class="Special">`</span>
    <span class="Statement">else</span>
        <span class="Identifier">info</span>=<span class="PreProc">$info</span><span class="Special">`</span><span class="Statement">echo</span><span class="Constant"> -e </span><span class="Statement">&quot;</span><span class="Special">\n</span><span class="Constant">? (O/n/1-</span><span class="PreProc">$max</span><span class="Constant">) </span><span class="Statement">&quot;</span><span class="Special">`</span>
    <span class="Statement">fi</span>
<span class="Identifier">}</span>

<span class="Comment"># ---------------------------------------------------------------------------- #</span>
<span class="Comment"># dialog</span>
<span class="Comment"># ---------------------------------------------------------------------------- #</span>
<span class="Identifier">dialog()</span>
<span class="Identifier">{</span>
    setInfo
    <span class="Statement">if </span><span class="Statement">[</span> <span class="PreProc">$xterm</span> <span class="Statement">=</span> <span class="Constant">o</span> <span class="Statement">]</span><span class="Statement">;</span> <span class="Statement">then</span>
        <span class="Identifier">wd</span>=<span class="Special">`</span><span class="Statement">echo</span><span class="Constant"> -e </span><span class="Statement">&quot;</span><span class="PreProc">$info</span><span class="Statement">&quot;</span><span class="Constant"> </span><span class="Statement">|</span><span class="Special"> \</span>
<span class="Special">            awk </span><span class="Statement">'</span><span class="Constant">{ h++; if (w &lt; length($0)) w=length($0) } END { print w&quot; &quot;h }</span><span class="Statement">'</span><span class="Special">`</span>
        <span class="Identifier">ww</span>=<span class="Special">`</span><span class="Statement">echo</span><span class="Constant"> </span><span class="Statement">&quot;</span><span class="PreProc">$wd</span><span class="Statement">&quot;</span><span class="Constant"> </span><span class="Statement">|</span><span class="Special"> cut </span><span class="Special">-d</span><span class="Special"> </span><span class="Statement">&quot;</span><span class="Constant"> </span><span class="Statement">&quot;</span><span class="Special"> </span><span class="Special">-f</span><span class="Special"> </span><span class="Constant">1</span><span class="Special">`</span>
        <span class="Identifier">wh</span>=<span class="Special">`</span><span class="Statement">echo</span><span class="Constant"> </span><span class="Statement">&quot;</span><span class="PreProc">$wd</span><span class="Statement">&quot;</span><span class="Constant"> </span><span class="Statement">|</span><span class="Special"> cut </span><span class="Special">-d</span><span class="Special"> </span><span class="Statement">&quot;</span><span class="Constant"> </span><span class="Statement">&quot;</span><span class="Special"> </span><span class="Special">-f</span><span class="Special"> </span><span class="Constant">2</span><span class="Special">`</span>
        <span class="Identifier">sw</span>=<span class="Special">`xrdb </span><span class="Special">-symbols</span><span class="Special"> </span><span class="Statement">|</span><span class="Special"> </span><span class="Statement">grep</span><span class="Special"> DWIDTH  </span><span class="Statement">|</span><span class="Special"> cut </span><span class="Special">-d</span><span class="Special"> </span><span class="Statement">'</span><span class="Constant">=</span><span class="Statement">'</span><span class="Special"> </span><span class="Special">-f</span><span class="Special"> </span><span class="Constant">2</span><span class="Special">`</span>
        <span class="Identifier">sh</span>=<span class="Special">`xrdb </span><span class="Special">-symbols</span><span class="Special"> </span><span class="Statement">|</span><span class="Special"> </span><span class="Statement">grep</span><span class="Special"> DHEIGHT </span><span class="Statement">|</span><span class="Special"> cut </span><span class="Special">-d</span><span class="Special"> </span><span class="Statement">'</span><span class="Constant">=</span><span class="Statement">'</span><span class="Special"> </span><span class="Special">-f</span><span class="Special"> </span><span class="Constant">2</span><span class="Special">`</span>
        <span class="Identifier">fw</span>=<span class="Constant">6</span>
        <span class="Identifier">fh</span>=<span class="Constant">13</span>
        <span class="Special">((</span>xp <span class="Statement">=</span> (sw - ww * fw) / <span class="Constant">2</span><span class="Special">))</span>
        <span class="Special">((</span>yp <span class="Statement">=</span> (sh - wh * fh) / <span class="Constant">2</span><span class="Special">))</span>
        <span class="Statement">echo</span><span class="Constant"> </span><span class="Statement">&quot;</span><span class="Constant">o</span><span class="Statement">&quot;</span><span class="Constant"> </span><span class="Statement">&gt;</span>/tmp/mp3xterm.tmp
        xterm <span class="Special">+sb</span> <span class="Statement">-b</span> <span class="Constant">8</span> <span class="Special">-geometry</span> <span class="PreProc">${</span><span class="PreProc">ww</span><span class="PreProc">}</span>x<span class="PreProc">$wh</span>+<span class="PreProc">$xp</span>+<span class="PreProc">$yp</span> <span class="Special">-fn</span> <span class="PreProc">${</span><span class="PreProc">fw</span><span class="PreProc">}</span>x<span class="PreProc">$fh</span> \
            <span class="Special">-title</span> MP3 <span class="Special">-fg</span> white <span class="Special">-bg</span> black \
            <span class="Statement">-e</span> <span class="Statement">&quot;</span><span class="Constant">echo -n </span><span class="Special">\&quot;</span><span class="PreProc">$info</span><span class="Special">\&quot;</span><span class="Constant">; read ret; echo </span><span class="Special">\&quot;</span><span class="Special">\$</span><span class="Constant">ret</span><span class="Special">\&quot;</span><span class="Constant">&gt;/tmp/mp3xterm.tmp</span><span class="Statement">&quot;</span>
        <span class="Identifier">ret</span>=<span class="Special">`cat /tmp/mp3xterm.tmp`</span>
    <span class="Statement">else</span>
        <span class="Statement">clear</span>
        <span class="Statement">echo</span><span class="Constant"> -ne </span><span class="Statement">&quot;</span><span class="PreProc">$info</span><span class="Statement">&quot;</span>
        <span class="Statement">read</span> ret
    <span class="Statement">fi</span>
    <span class="Statement">if </span><span class="Statement">[</span> <span class="Statement">-z</span> <span class="Statement">&quot;</span><span class="PreProc">$ret</span><span class="Statement">&quot;</span> <span class="Statement">]</span><span class="Statement">;</span> <span class="Statement">then</span>
        <span class="Identifier">ret</span>=o
    <span class="Statement">fi</span>
<span class="Identifier">}</span>

<span class="Comment"># ---------------------------------------------------------------------------- #</span>
<span class="Comment"># main</span>
<span class="Comment"># ---------------------------------------------------------------------------- #</span>
<span class="Identifier">ret</span>=n
<span class="Statement">if </span><span class="Statement">[</span> <span class="Statement">-f</span> <span class="Statement">&quot;</span><span class="PreProc">$log</span><span class="Statement">&quot;</span> <span class="Statement">]</span><span class="Statement">;</span> <span class="Statement">then</span>
    dialog
<span class="Statement">fi</span>
<span class="Statement">while </span><span class="Statement">[</span> <span class="Statement">&quot;</span><span class="PreProc">$ret</span><span class="Statement">&quot;</span> <span class="Statement">=</span> <span class="Constant">n</span> <span class="Statement">]</span><span class="Statement">;</span><span class="Statement"> </span><span class="Statement">do</span>
    mp3rand.sh <span class="Statement">&gt;</span>/dev/null
    dialog
<span class="Statement">done</span>

<span class="Statement">if </span><span class="Statement">[</span> <span class="Statement">&quot;</span><span class="PreProc">$ret</span><span class="Statement">&quot;</span> <span class="Statement">=</span> <span class="Constant">o</span> <span class="Statement">]</span><span class="Statement">;</span> <span class="Statement">then</span>
    nyxmms2 play
<span class="Statement">else</span>
    <span class="Identifier">album</span>=<span class="Special">`head </span><span class="Special">-n</span><span class="Special"> </span><span class="PreProc">$ret</span><span class="Special"> /tmp/mp3rand-i.tmp </span><span class="Statement">|</span><span class="Special"> </span><span class="Statement">tail</span><span class="Special"> </span><span class="Special">-n</span><span class="Special"> </span><span class="Constant">1</span><span class="Special"> </span><span class="Statement">|</span><span class="Special"> cut </span><span class="Special">-c</span><span class="Special">12-`</span>
    mp3rand.sh <span class="Statement">&quot;</span><span class="PreProc">$album</span><span class="Constant">/00.m3u</span><span class="Statement">&quot;</span>
<span class="Statement">fi</span>
</pre>
</body>
</html>
<!-- vim: set foldmethod=manual : -->