#contents

*foo_etc [#nbd17090]

-このコンポーネントは、いろいろな種類の[[TitleFormatting]]の関数を追加したりすることができます。
-[[DLL配布元:http://foobar2000.xrea.jp/up/]]
--foo_etcは公式サイトが存在せず、アップローダでの配布となっています。

*関数の解説 [#f11b1048]

[[TitleFormatting]]の解説は、[[Reference:http://tnetsixenon.xrea.jp/title_formatting.html]] や [[Title Formatting Help]] などを参考にしてください。

**文字列 [#q29c45c9]

***$regexp/$regexpi [#df8003c0]

:概要|
正規表現で検索し、見つかったテキストを置換します。引数が2つの場合、置換せずにマッチしたかどうかを返します。regexpは大文字小文字を区別、regexpiは区別しません。
:書式(テスト)|
$regexp(source,pattern)
>
source
>>
文字列
>
pattern
>>
検索する文字列(正規表現)
<
:使用例|
曲名が英語かどうかの判定
 $if($regexp(%title%,'[a-zA-Z+]'),TRUE,FALSE)
:書式(置換)|
$regexp(source,pattern,replace)
>
source
>>
文字列
>
pattern
>>
検索する文字列(正規表現)
>
replace
>>
置換する文字列
<
:使用例|
ファイル名がALBUM-TRACK-TITLE.mp3の場合
 $regexp(%filename%,'^([^-]+)-([^-]+)-([^-]+)','$1') ⇒ ALBUM
 $regexp(%filename%,'^([^-]+)-([^-]+)-([^-]+)','$2') ⇒ TRACK
 $regexp(%filename%,'^([^-]+)-([^-]+)-([^-]+)','$3') ⇒ TITLE
※ pattern,replaceに括弧等を使う場合"'"で囲んでください。
:補足|
表現の構文 [[MSDN参照:http://msdn.microsoft.com/library/ja/script56/html/jsgrpRegExpSyntax.asp?frame=true]]

***$len932 [#b6d235c7]

:概要|
CodePege932(SJIS)でのバイト数を返す(len2相当)
:書式|
$len932(string)
>
string
>>
文字列
<
:例|
 $len932(%title%)

**計算 [#ha274a3c]

***$roundsize [#j9ecd48b]

:概要|
サイズに応じてG/M/K/Bに丸めます。
:書式|
$roundsize(size,precision)
>
size
>>
サイズ
>
precision
>>
小数点桁数
<
:使用例|
 $roundsize(%filesize%,2)

***$expr [#w44a01d5]

:概要|
計算する
:書式|
$expr(expr,precision)
>
expr
>>
計算式
-加(+)、減(-)、乗(*)、除(/)、余(\)
-括弧は"("、")"の代わりに"{"、"}"を使います。
<
>
precision
>>
小数点桁数 (省略時は0)
<
:使用例|
 $expr({%width1%-%width2%}/2)

**プレイリスト/キュー [#gcd7e4af]

***$groupby [#cb5e47d6]

:概要|
プレイリストのサマリーし該当したトラック数を得る
:書式|
$groupby(tf)
>
tf
>>
title formatting
<
:使用例|
 $groupby('%album%')

引数のtfはtitlefomattingの文字列そのものを渡さないといけない為、"'"で囲んでください。囲まないと再生中の曲の情報を渡すことになります。

***$groupby_item [#e8427656]

:概要|
$groupbyで取得したトラックの詳細を得る
:書式|
$groupby_item(index,tf)
>
index
>>
先頭が0、以降1,2...
>
tf
>>
title formatting
<
:使用例|
 $groupby_item(0,'%album%')

引数のtfはtitlefomattingの文字列そのものを渡さないといけない為、"'"で囲んでください。囲まないと再生中の曲の情報を渡すことになります。

***$queue [#mc6f909c]

:概要|
Queueにある曲の情報を取得します
:書式|
$queue(index,tf)
>
index
>>
先頭が0、以降1,2...
>
tf
>>
title formatting
<
:使用例|
ファイルサイズが 9851170バイトの場合
 $queue(0,'%album% - %title%') ⇒ 9.39MB

引数のtfはtitlefomattingの文字列そのものを渡さないといけない為、"'"で囲んでください。囲まないと再生中の曲の情報を渡すことになります。

***%queue_count% [#ka4b2b96]

:概要|
Queueにある曲の数を取得します
:書式|
%queue_count%

**グローバル変数 [#mc694af8]

***$register [#n7c0790e]
:概要|
変数の登録
:書式|
$register(name,value)
>
name
>>
新しい変数名
>
value
>>
変数にセットする値
<
:使用例|
 $register(spec,$roundsize(%_filesize%) %codec% $info(bitrate)kbps %samplerate%Hz %channels%)
 %spec% ⇒ 8.83MB MP3 255kbps 48000Hz stereo

***$unregister [#idd43659]

:概要|
変数の登録解除
:書式|
$unregister(name)
>
name
>>
変数名

***$set_aray [#nbc3445b]

:概要|
配列に値をセットする
:書式|
$set_aray(name,index,value)
>
name
>>
配列名
<
>
index
>>
インデックス
<
>
value
>>
配列にセットする値
<
:使用例|
 $set_array(%album%,%tracknumber%,%title%)

***$get_array [#r0b4d16e]

:概要|
配列から値を取得する
:書式|
$get_aray(name,index)
>
name
>>
配列名
<
>
index
>>
インデックス
<
:使用例|
 $get_array(%album%,01)

***$get_array_size [#s03f85a7]

:概要|
配列のサイズを取得する
:書式|
$get_aray_size(name)
>
name
>>
配列名
<
:使用例|
 $get_array_szie(%album%)

***$clear_array [#m5b096a3]

:概要|
配列をクリアする
:書式|
$clear_aray(name)
>
name
>>
配列名 省略時はすべての配列をクリアする

**その他 [#p24e1d9f]

***$extract_art [#ib3c12bb]

:概要|
埋め込みアートのファイル展開
:書式|
$extract_art(dest,default)
>
dest
>>
展開先のパス
>
default
>>
デフォルト画像のパス
<
:使用例|
 // ファイル名に使えない文字の置き換え
 $register(artfile,$regexp(%album%,'([\\/:*?"<>|])','_').image)
 // アルバムアートの展開&ファイル名の取得
 $register(albumart,$extract_art(albumarts/%artfile%,albumarts/default.jpg))
 // アルバムアートの表示
 $imageabs2(150,150,,,,,0,0,%albumart%,)