foobar2000 wsh-panel-mod 基礎

More than 3 years have passed since last update.


描画用関数

WSH Panel Modは描画開始の関数が固定されている。

この関数以外からでは、描画ができないので注意。


function.js

on_paint(gr){

//ここに記述
}

on_paintの引数はgrのみであることが望ましいらしい。

根拠はここのNotes and Hintsの4番目


Event


再生関係

function on_playback_seek() {}//seekした時

function on_playback_time() {}//再生中に定期的に呼び出される。
//呼び出される時間は大体0.8~1.1秒の間隔 
//しかし、曲再生時やpauseからの再開直後は乱れる。(0.25sや1.5sも観測)
function on_playback_new_track() {}//新しい曲が再生された時
function on_playback_pause() {}//pauseした時 と pauseから再開した時


マウス関係

function on_mouse_lbtn_down(x,y){}//左ボタンを押した時

function on_mouse_lbtn_up(){x,y}//左ボタンを上げた時
function on_mouse_move(x, y) {}//領域上にマウスが存在する時
function on_mouse_wheel(delta){}//wheelをした時
//wheeelを回した回数分呼ばれる 前方 1 ,後方 -1


foobarの変数・関数

正直使える変数は謎である。どうやらWSH Panel Mod はc++で書かれているらしいのだが、スクリプト記述はJScriptという謎なためfoobarの機能を操作するための変数・関数にはどんなものがあるのかが全くわからない。

よって、変数はここを参照するといい。

foobar特有の変数・関数一覧であるが、補足がないため名前からどんな機能か想像する必要がある。

内部でwindowsのDesktop App User Interfaceを呼び出して使っているるようです。(windows.から始まる関数)

それぞれの詳しい関数はソースコードのdocsにmicrosoftの関数詳細のページのURLが表記してありあます。

例:sampleにあるThemed Seek Barの1行目が

var g_theme = window.CreateThemeManager("PROGRESS");

とありますが、このPROGRESSの詳細はここにあります。

BUTTONLISTBOXなどが指定できます。


その他

gr.FillGradRect( 横左端の位置, 左縦の位置, 横右端の位置, 右縦の位置, 90(角度), 上部の色, 下部の色); 

//色二つがグラデーションになる。角度0なら横縦が逆

//RGB変換
function RGB(r,g,b){ return (0xff000000|(r<<16)|(g<<8)|(b)); }

※ちなみに console.log等console系統は一切使えないです。


debug

fb.trace()を使う事により、foobar本体のconsoleに出力ができる。


余談

grという変数がありますが一体何者なのでしょうか?

だれか教えてほしいものです。

fb.trace(typeof gr) //Object

for (var i in gr){
fb.trace(gr[i]); //なにも出力されない
}


参考

foobar2000のwsh panel modのサンプルコードその5

本家

※本家のzipの中のsamplesフォルダにsampleがあるので一読するとよい。