Rhythmboxで1曲ループを実現する −1−

具体的に中身をいじって行こうと思います。

 

…...が。

その前にちょっとだけ、他にも自分で機能を実装したい! という方に向けて覚書みたいなものを書いておきます。そんな面倒なことしないよぅ、という方は読み飛ばしてくれて構いません 。

 

 ** ** ** ** **

 

今回、ループを司る関数を見つけるにあたってディレクトリ配下のファイル内に書かれた文字列を検索する(参考)といったことを行いました。

まあgrepですね。

 

具体的には、

$ find (探したいディレクトリ) | xargs grep "(検索文字列)" -I > (結果)

といったものです。-Iはバイナリファイルを検索に含めないようにするオプションです。

 

例えばホームディレクトリ直下のfooというディレクトリに含まれるファイル内からbarという文字列を探して、その結果をresult.txtに書き込む場合、

$ find ./foo | xargs grep "bar" -I > result.txt

という具合です。

 

これがかなり強力で、それっぽいワード(今回であればloopとか)で検索をかけるとそれらしき関数名や変数名が一気に引っかかります。しゅごい!

 

 

あともうひとつ。

これは裏技的なものなのですが、Rhythmboxには翻訳ファイルが存在しています。(ソースコード群からja.poというファイルを検索して見つけましょう)

開いてみると英語と日本語の対応が書かれていることがわかると思います。

 

で。

 

例えばこのファイル内から"プレイリスト"という文字列を検索してみると"Playlists"などと対訳されているはずです。さらによく見ると元のソースコード群のどこのファイルに"Playlists"という記述があるかがコメントとして書かれています。

 

この対訳はGUIとして表示されるような文字列(例えばボタンの文字)にしか関係しないので、簡単にボタンなどに関わる関数を見つけることが出来ます。ちょっとずるいですね。

 

 

その他、gdbによるデバッグも行いました。が、あまり使っていません。

Rhythmboxで1曲ループを実現する −0−

ふとUbuntuプリインストールの音楽プレイヤー【Rhythmbox】を使っていて思ったことがあります。それは……

 

1 曲 ル ー プ が 出 来 な い !

 

ということです。私のように気に入った1曲だけずっと聞いていたい粘着質な人間には大問題です。(実は1曲だけのプレイリストを作れば可能なのですが正直スマートではなくモヤモヤします)

 

ということで実装してみました!

 

f:id:kackoh:20161018143818p:plain

 

我ながら見栄えがいいです。すばらしい。

中身はかなり雑な実装をしていますがご愛嬌ということで。

 

それでは次回から実際にソースコードをいじっていきましょう。