シングルカラム+ヘッダなプレイリストを表示可能にするcomponent。 注意:foobar2000 v1.0には対応していません(使用出来ません)。
foobar2000 old versionを使用すればSingle Column Playlistは使用可能になりますが、他のComponentsで使用が不可のものが多数になります。 foobar2000 old versionを使用すれば、foobar2000本体を更新した場合、そのままの状態を維持出来ません。また、New SDK foobar2000 1.0 Componentsは使用出来ません。
基本的な操作方法は Columns Playlist と同じです。ただし、トラックやグループのドラッグはAltを押しながら行います。
SCPのプレイリスト上で右クリックしSettings...を選択。
CD1 | CD2 | |
ARTIST | ABC | ABC |
ALBUM | DEF | DEF |
DISCNUMBER | 1 | 2 |
CODEC | WAV | MP3 |
$if(%tracknumber%,%album%,!noheader!)のようにします。
$if($strstr(%cwb_activelist%,Single),!noheader!,%album%)のようにします。
Single Columns Playlist(以下SCP)では設定をエクスポートする機能がありません。 Columns UIのLayoutでSCPを消してしまった場合は設定もすべて消えてしまいます。定期的なバックアップを心がけてください。
$align(H,V)
$align(left,middle)%title%のようにします。
$alignabs(X,Y,w,h,H,V)
$align()を高級にしたものです。まず文字を表示可能な長方形領域を作成し、その中で文字の表示位置を指定します。 ペイントで長方形を選択するのと似たような感覚です。複雑な表示を行いたい場合は長方形達が重ならないよう気をつけましょう。
使用例
$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)'
という書式だと下図のようになります。
$font(NAME,SIZE,OPTIONS,COLOR)
0 | 3D オブジェクト | 11 | 非アクティブ ウィンドウの境界 | 22 | ButtonLight |
1 | デスクトップ | 12 | アプリケーション作業域 | 23 | InfoText |
2 | アクティブ タイトル バー 色1 | 13 | 選択項目 | 24 | InfoWindow |
3 | 非アクティブ タイトル バー 色1 | 14 | 選択項目のフォント | 25 | ButtonAlternateFace |
4 | メニュー | 15 | ButtonFace | 26 | HotTrackingColor |
5 | ウィンドウ | 16 | ButtonShadow | 27 | アクティブ タイトル バー 色2 |
6 | WindowFrame | 17 | GrayText | 28 | 非アクティブ タイトル バー 色2 |
7 | メニューのフォント | 18 | 3D オブジェクトのフォント | 29 | MenuHilight |
8 | ウィンドウのフォント | 19 | 非アクティブ タイトル バーのフォント | 30 | MenuBar |
9 | アクティブ タイトル バーのフォント | 20 | ButtonHilight | ||
10 | アクティブ ウィンドウの境界 | 21 | ButtonDkShadow |
Hydrogenaudio Wikiのページにわかりやすい画像があります。
$imageabs(X,Y,image,options)
回転 | 左右反転 | 反転なし |
90° | 7 | 1 |
180° | 6 | 2 |
270° | 5 | 3 |
0° | 4 | 0 |
回転は時計回りです。
任意の位置(X,Y)に画像を表示させます。画像の場所はfoobar2000のプロフィールフォルダ*4からの相対パスです。絶対パスを使う場合は後述の$imageabs2()を使いましょう。
以下にいくつか例を挙げます。
$imageabs(0,0,covers\%album%.png,)$imageabs(0,0,images\overlay.png,)
$if(%_isplaying%,$imageabs(0,0,images\a.jpg,),$imageabs(0,0,images\b.jpg,))
$alignabs(10,10,150,150,center,middle)$font(arial,14,bold,0-0-0)foobar2000 $imageabs(10,10,images\abc_150×150.jpg,alpha-150)
$imageabs2(resizeW,resizeH,srcX,srcY,srcW,srcH,dstX,dstY,image,options)
90° | 7 | 1 |
180° | 6 | 2 |
270° | 5 | 3 |
0° | 4 | 0 |
回転は時計回りです。共にリサイズ前の画像に適用されます。
$imageabs()を高級にしたものです。 画像をresizeW×resizeHにリサイズし、その中の長方形領域(srcX,srcY,srcW,srcH)を(dstX,dstY)に表示します。 拡大させたい場合はnokeepaspectをつけます。なお、アスペクト比を維持して拡大することはできません。 大雑把に言えば引数の上6つは画像の編集、下4つは$imageabs()の機能です。
以下にいくつか例を挙げます。
$imageabs2(x,y,0,0,x,y,10,20,C:\program files\foobar2000\images\abc.jpg,)
$imageabs2(300,300,225,0,75,75,5,5,D:\images\abc_500×500.jpg,)
$imageabs2(300,300,225,225,75,75,0,0,images\def_150×150.jpg,rotateflip-1 nokeepaspect)
$drawrect(X,Y,W,H,brushColor-R-G-B penColor-R-G-B OPTIONS)
長方形を描きます。偶奇で背景色を分ける場合などに使いましょう。 色をSYSCOL-nで指定する事も可能です。brushColor-nullで枠だけ、penColor-nullで枠無しの長方形を描くことができます。
以下にいくつか例を挙げます。
$drawrect(10,10,20,20,brushcolor-null pencolor-0-0-0)
$ifequal($mod(%list_index%,2),0,$drawrect(0,0,%_width%,%_height%,brushcolor-200-200-220 pencolor-null),$drawrect(0,0,%_width%,%_height%,pencolor-null brushcolor-220-200-200))
$if(%_selected%,$drawrect(,,,,brushcolor-25-25-25 pencolor-70-70-70),$ifequal($mod(%_itemindex%,2),1,$drawrect(,,,,brushcolor-8-8-8 pencolor-null),$drawrect(,,,,pencolor-null))) $puts(pb,$muldiv(%_time_elapsed_seconds%,%_width%,%_time_total_seconds%)) $ifgreater($get(pb),0,$if(%_selected%,$drawrect(,,$get(pb),,brushcolor-45-45-45 pencolor-null)$drawrect(,,,,pencolor-70-70-70 brushcolor-null),$drawrect(,,$get(pb),,brushcolor-30-30-30 pencolor-null)),)
%_width%
プレイリストの横幅を返します。
%_height%
Item Display内で使えばRow heightの値を、Group Display内で使えばRow height×Group rowsの値を返します。
$calcwidth(text)
textはなんでもかまいません。textの横幅を返します。$if()などと共に使いましょう。
$ifgreater($calcwidth($font(,15,,)%title%),%_width%,$font(,9,,),$font(,15,,))%title%
$calcheight(text)
textはなんでもかまいません。textの高さを返します。$if()などと共に使いましょう。
%_itemindex%
グループ内のアイテムのインデックスを返します
%_itemcount%
グループ内のアイテム数を返します
%_selected%
選択されているときは1を返し、それ以外は何も返しません。
%_focused%
フォーカスされているときは1を返し、それ以外は何も返しません。
$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(File path)
ファイルが存在すれば1を返し、存在しなければ何も返しません。画像Aがあるときはそれを、ない時は画像Bを表示させるには
$if($fileexists(images\aaa.jpg),$imageabs(0,0,images\aaa.jpg,),$imageabs(0,0,images\bbb.jpg,))
のようにします。
$textcolor(n-n-n)
文字色を指定します。$rgb()や$hsl()と違い、SYSCOL-nを使用することができます。
Columns UIの$get_global()が使えます。エラーが出る場合はfoobar2000を再起動させてみましょう。
#lineheight,n#
文字列の高さを指定します。$align()などで表示位置を指定している場合はその後で使います。効果が今ひとつピンとこない場合は適当に広い場所で$crlf()や$char(10)を使い改行させてみましょう。
#shade#
文字列の背景色を濃くします。上と同様に$align()の後で使います。
$imageabs2(S,T,,,,,X,Y,image.jpg,)
$imageabs2(S,T,,$sub($mul(%_height%,$add(%_itemindex%,A,-1)),Y),,,X,,image.jpg,)
$puts(H,$min($sub($mul(%_height%,%_itemcount%),$mul(2,Y)),M)) $imageabs2($get(H),$get(H),,$sub($mul(%_height%,$sub(%_itemindex%,1)),Y),,,X,,image.jpg,)