foobar2000コンポーネント作成計画

11/12に使い始めて、バグ取りを2回、機能追加を1回行った自作コンポーネント。現状は以下のことができる。

・SQLiteデータベースに再生履歴とレートを記録し、表示する
・自宅サーバに再生履歴を送信する
・iPodコンポーネント(foo_dop)と連携し、iPodの再生履歴を記録する
・コンテクストメニューからレートを設定する(あとから追加した機能)

早急に追加実装したい機能は、現状、foobar2000を終了してRubyスクリプトを実行することで行なっている、Media Libraryの変更(iTunesで行なっている)をSQLiteデータベースに反映することである。インタフェースは調べ終わっているので実装するだけであるが、今の作りはいつでもiTunesへSQLiteデータベースの情報を戻せるように、レコードのキーにiTunesのトラックのPersistent IDを使っているので、COMを使わなければいけないので時間がかかりそうである。.NET CLI以外でCOMを使ったことはない。

もう一つやりたいのが、RockboxをインストールしたiPodでの再生履歴を取得し、SQLiteデータベースに反映、サーバへ送信することである。

これは、RockboxがLast.fm用にテキストファイルに履歴を残すことはわかっているので、そのファイルを読み込んで、処理をして、削除する(最後に消さないと次に同じ処理をしてしまう)だけである。

ただ、iPodをRockboxで起動し、再生した場合は、iTunesが再生履歴を取れなかったことを思い出すとfoo_dopも履歴を取れないと思われるので、自宅サーバはもちろん、Last.fmへの送信も考えなければいけない。

Last.fmのコミュニティを見るとそれなりのことを次期バージョン以降で作者も考えているようではあるが、自分が考えているものとは違うようである。

この、Rockbox部分は独立したコンポーネントとして作成して、今までのコンポーネントとは分けて、単独で動作するように作りたいと考えている。配布できるように。foo_rockbox(仮称)みたいな名前で、Last.fmへの送信処理とfoo_dopライクなSDKを提供するコンポーネントを作れたらいいな、と考えている。送信すらオプションに選択できて、SDKコールのみでの使用もできるようにしたほうがいいのかもしれない。

まぁ、最初は自分だけが使えるように、今使っているもののように、設定画面もなく、アカウントやなにやらをすべてソースに書いた状態から作り始めるのだろうが。

ちなみに、Last.fmの開発者登録は済ませてあり、APIキーは取得済みなので、いつでも作れるのである。ドキュメントも読んだが、テストコードすら書いていないので動くものを作れる自信は全くない。

コメント