Hatena::ブログ(Diary)

<s>gnarl,</s>技術メモ”’<marquee><textarea>¥ このページをアンテナに追加 RSSフィード Twitter

2007-04-26

Winamp用Twitterプラグインを作ったよ

追記(2010-08-26)

ソース等完全に消滅したので再配布の可能性は非常に低いです!

私がやる気出すより他のを使うか開発おぼえがき情報を元に自作するほうが早いとおもいます。

他のWinamptwitterプラグイン:

詳しく調べてないのでOAuth対応してるかどうかとか不明です(してなさそう……)

元エントリ

探したけどいいのがなかったので自作しました。たまには実用ソフトも作るんですよ私は……!

同様のソフトとしてはNow Playingってのがあったんですが、ちょっと複雑に過ぎるきがしたので。


f:id:gnarl:20070426123037p:image

特に説明することがない超シンプル機能。


(ファイルサーバーが爆発したことを完全に忘れていました!現在ダウンロード不能です。ごめん)

あるいはMicrosoft Visual C++ 2005 再頒布可能パッケージインストール


追記

ほとんどの環境でプラグインが認識されないようです……!調査中。

調査終わり。DLL地獄となんらかの関係があるようだった。この問題はスタティックリンク版によって解決されたと信じています。

http://tinyurl.com/2dvqjh

Special thanx: @tigtigさん

Winamp plugin開発おぼえがき

必要なもの:Winamp SDK

公式なドキュメントがぜんぜんないみたいなのでサンプルとか参考にしつつ。Forumに結構な蓄積がされてるのではまったら検索するとなんかしら出てくる。

generalプラグインの雛形はこちら: Empty general purpose plug-in project. - Winamp & SHOUTcast Forums

現在再生中の曲名を取得する方法はConnect Errorのソースを参考にした。というかソースの一部をパクった。

プラグインMFCを使用することは可能だが、Winampから呼ばれる関数の頭に

AFX_MANAGE_STATE(AfxGetStaticModuleState());

をつけるのを忘れないように。

Twitterとの通信についてはno titleを参考にした。というかソースの一部を

Winampプラグインが認識されない場合に想像されること:

  • 関数エクスポートに失敗している(general purposeならwinampGetGeneralPurposePlugin)
  • 関数エクスポートできているが、呼び出し規約が違っている(extern "C"必須)
  • 必要なDLLが足りない
    • DLLエラーでプラグインがロードできない場合、*何のエラーメッセージも出さずにスルーされます*
    • 今回はこの仕様+MFCの非互換地獄ではまった。
    • 大人しくスタティックリンクしとけ!