Single Column Playlist 解説

これ何?

シングルカラム+ヘッダなプレイリストを表示可能にするcomponent。 注意:foobar2000 v1.0には対応していません(使用出来ません)。

foobar2000 old versionを使用すればSingle Column Playlistは使用可能になりますが、他のComponentsで使用が不可のものが多数になります。 foobar2000 old versionを使用すれば、foobar2000本体を更新した場合、そのままの状態を維持出来ません。また、New SDK foobar2000 1.0 Componentsは使用出来ません。

up297.png

導入方法

up295.png

操作方法

基本的な操作方法は Columns Playlist と同じです。ただし、トラックやグループのドラッグはAltを押しながら行います

設定

SCPのプレイリスト上で右クリックしSettings...を選択。

up294.png
up296.png

注意

Single Columns Playlist(以下SCP)では設定をエクスポートする機能がありません。 Columns UIのLayoutでSCPを消してしまった場合は設定もすべて消えてしまいます。定期的なバックアップを心がけてください。

関数

文字の配置

$align()

$align(H,V)

$alignabs()

$alignabs(X,Y,w,h,H,V)

$align()を高級にしたものです。まず文字を表示可能な長方形領域を作成し、その中で文字の表示位置を指定します。 ペイントで長方形を選択するのと似たような感覚です。複雑な表示を行いたい場合は長方形達が重ならないよう気をつけましょう。

使用例

up312.png

$alignset() & $alignrel()

$alignset()

これを使う直前までの文字表示位置の中で最も下にあるもののy座標*2を$alignrel()で文字を表示する領域の縦方向の始点Yにします。

$alignrel(H,V)

$alignset()で定めた始点(0,Y)から%_width%×(%_height%-Y)の長方形領域を作成し、その中で文字の表示位置を指定します。 例えば

$align(right,middle)$font(,,bold,)'$align(right,middle)'
$alignabs(75,10,250,125,right,top)$font(,,italic,)'$alignabs(75,10,250,125,right,top)'
$alignset()
$alignrel(left,middle)$font(,,,)'$alignrel(left,middle)'

という書式だと下図のようになります。

up313.png

フォント

$font()

$font(NAME,SIZE,OPTIONS,COLOR)

Hydrogenaudio Wikiのページにわかりやすい画像があります。

画像

$imageabs()

$imageabs(X,Y,image,options)

任意の位置(X,Y)に画像を表示させます。画像の場所はfoobar2000のプロフィールフォルダ*4からの相対パスです。絶対パスを使う場合は後述の$imageabs2()を使いましょう。

以下にいくつか例を挙げます。

$imageabs2()

$imageabs2(resizeW,resizeH,srcX,srcY,srcW,srcH,dstX,dstY,image,options)

$imageabs()を高級にしたものです。 画像をresizeW×resizeHにリサイズし、その中の長方形領域(srcX,srcY,srcW,srcH)を(dstX,dstY)に表示します。 拡大させたい場合はnokeepaspectをつけます。なお、アスペクト比を維持して拡大することはできません。 大雑把に言えば引数の上6つは画像の編集、下4つは$imageabs()の機能です。

以下にいくつか例を挙げます。

長方形を描く

$drawrect()

$drawrect(X,Y,W,H,brushColor-R-G-B penColor-R-G-B OPTIONS)

長方形を描きます。偶奇で背景色を分ける場合などに使いましょう。 色をSYSCOL-nで指定する事も可能です。brushColor-nullで枠だけ、penColor-nullで枠無しの長方形を描くことができます。

以下にいくつか例を挙げます。

寸法

%_width%

プレイリストの横幅を返します。

%_height%

Item Display内で使えばRow heightの値を、Group Display内で使えばRow height×Group rowsの値を返します。

寸法その2

$calcwidth()

$calcwidth(text)

textはなんでもかまいません。textの横幅を返します。$if()などと共に使いましょう。

$calcheight()

$calcheight(text)

textはなんでもかまいません。textの高さを返します。$if()などと共に使いましょう。

%_itemindex%

グループ内のアイテムのインデックスを返します

%_itemcount%

グループ内のアイテム数を返します

highlight系

%_selected%

選択されているときは1を返し、それ以外は何も返しません。

%_focused%

フォーカスされているときは1を返し、それ以外は何も返しません。

$padding()

$padding(x,y)

左右をx、上下をyだけ詰めます。$align(), $alignrel(), $drawrect()に影響します。例えば

$padding(a,b)
$align(left,top)

$alignabs(a,b,$sub(%_width%,2*a),$sub(%_height%,2*b),left,top)

と同値です。

$fileexists()

$fileexists(File path)

ファイルが存在すれば1を返し、存在しなければ何も返しません。画像Aがあるときはそれを、ない時は画像Bを表示させるには

$if($fileexists(images\aaa.jpg),$imageabs(0,0,images\aaa.jpg,),$imageabs(0,0,images\bbb.jpg,))

のようにします。

$textcolor()

$textcolor(n-n-n)

文字色を指定します。$rgb()や$hsl()と違い、SYSCOL-nを使用することができます。

$get_global()

Columns UIの$get_global()が使えます。エラーが出る場合はfoobar2000を再起動させてみましょう。

##

#lineheight,n#

文字列の高さを指定します。$align()などで表示位置を指定している場合はその後で使います。効果が今ひとつピンとこない場合は適当に広い場所で$crlf()や$char(10)を使い改行させてみましょう。

#shade#

文字列の背景色を濃くします。上と同様に$align()の後で使います。

Tips

外部リンク


*1 座標系はそこを原点として右方向にx、下方向にy。位置を指定する引数には負の値が使える。
*2 厳密にはその次の行左上隅のy座標
*3 msstyleの色をとってくる
*4 User Profile Supportが有効になっていればC:\Documents and Settings\ユーザー名\Application Data\foobar2000\, それ以外はfoobar2000本体のあるディレクトリ
*5 クロップする
*6 アスペクト比を維持したリサイズで効果を発揮します

Last-modified: 2016-02-03 (水) 23:00:00