LoginSignup
2
3

More than 5 years have passed since last update.

foobar2000 wsh-panel-mod 基礎

Last updated at Posted at 2016-01-26

描画用関数

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があるので一読するとよい。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3