#contents

*コレ何? [#b45268f6]

外部データベースに情報を保存するcomponent。
タグに直接データを残したくない場合や、 CUEシートのRating付けなど、直接残せない場合に使いましょう。

''できること''
-コンテキストメニューから情報の保存
-外部データベースのフォーマット選択
//-出力ファイル名((converter, file operations))で定義fieldの使用

''できないこと''
-Propertiesや[[Tagging>Tagging]]からの編集((Guess value from other fieldでも使用できません))
-[[Replaygain>Replaygain つかいかた]]の保存

*導入方法 [#nceb2949]

[[こちら:http://foobar2000.xrea.jp/up/files/up539.zip]]からdllをダウンロードし、componentsディレクトリに入れます。
Preferences>Tools>Custom Info>Storage method selectionでnone以外を選択します。


*設定 [#na57d934]

**General [#f40f9f2e]

-''Active storage''
--''Clear contents''
---外部データベース内のデータを消去します。
--''Remove dead entries''
---デッドリンクを削除します。
-''Strage method selection'': none / Foobar2k config file / Text file / SQLite database
--''none''
---保存しません。この場合コンテキストメニューにもCustom Infoは出てきません。初回起動時はコレになっています。
--''Foobar2k config file''
---foobar2000.cfgに保存します。データベースのロード、読み書きが共に高速です。クラッシュなどでcfgファイルが壊れた場合データも失われます。
--''Text file''
---fb2k\custominfo.txtにUTF-8で保存します。読み書きは高速ですが、ロードに時間がかかります。txtはfb2k終了時に保存されるのでクラッシュした場合データは失われます。
--''SQLite database''
---fb2k\custominfo_sqlite.dbに保存します。読むのは高速ですがロード、書き込みは遅いです。しかし、データを.dbに即保存するので安全です。
-''Enable field...''
--Context menu commandsで定義したfieldを%field%で挿入できるようにします。チェックを外すことによりパフォーマンスの向上が望めます。
-''Enable function...''
--Custom Info独自の[[関数>#t3f247f5]]を使えるようにします。チェックを外すことによりパフォーマンスの向上が望めます。
-''Store information...''
--Media library内のファイルのみデータを保存します。Media libraryにないファイルのデータは次回ロード時に消去されます。

**Context menu commands [#sd7ec93d]
-''Add comtext menu items''
--コンテキストメニューに追加します。
-''Import''
--.qtgファイルをロードします。
-''Export''
--設定を.qtgファイルとして保存します。
-''Tag items''
--''Sort''
---ソートします。
--''New''
---新規にitemを作成します。
--''Remove''
---選択したitemを消去します。
--''Reset''
---初期状態に戻します。
-''Details''
--''Display name''
---コンテキストメニューで表示されるitem名です。'/'で階層を作れます。親を移動させるのはPreferences>Display>Context menuから。
また、同じ名前のitemを複数作っても最後に作ったものしか機能しません。
--''Field name''
---定義するfield名です。Title Formattingでは%field%で挿入します。
---'|'でfieldを区切ることにより、複数のfieldを同時に設定することが可能です。その場合、Valueにも対応する値を'|'で区切って入れておきます。
 RATING|SKIP
 1|1
---'#'をfieldの先頭につけることにより、そのfieldに新たに値を追加するようにできます。
 STYLE|#STYLE|#STYLE
 Post-Punk|Alternative Pop/ Rock|Alternative Metal
また、「%field% = [[$cinfo(field,0)>#ndcdb24e]]」なので、%field%だけでは追加した値を挿入できません。挿入するには[[$cinfo(field,n)>#ndcdb24e]]や[[$cinfo_sep()>#o351cffb]]を使ってください。
--''Value''
---上で定義したfieldの値いれます。値には
 %_system_year%, %_system_month%, %_system_day%, %_system_dayofweek%, %_system_hour%, %_system_minute%, %_system_second%, %_system_millisecond%
が使えます。通常のメタデータと違い、Preferences>Advanced>Multivalue FieldsにField nameで定義したfieldを書き足した上で、ここに値を';'で区切って入れても複数の値とはみなされません。fieldに複数の値を持たせたい場合は'#'を使って追加してください。 
-''Use value string...''
--Valueに関数やfield(%artist%や%rating%など)を使えるようにします。
-''Instead of writing...''
--Valueが空白の場合、そのfieldを消去します。

*関数 [#t3f247f5]

**$cinfo() [#ndcdb24e]

 $cinfo(X,n)
$meta(X,n)と似たような機能です。X という名前のCI field((Custom Info field))の n 番目の値を挿入します。

//**$cinfo_num()
// $cinfo_num(X)
//$meta_num(X)と似たような機能です。CI field X に存在する値の数を挿入します。

**$cinfo_sep() [#o351cffb]

 $cinfo_sep(X,Y,Z)
$meta_sep(X,Y,Z)と似たような機能です。X という名前のCI fieldの複数の値を任意のセパレーターで分割してから挿入します。
 1988Y1989Y1996Z2005

**$cinfo_list() [#yf2a5c7e]

 $cinfo_list(あ,ん)
外部データベースに保存されているすべてのfieldとvalueを「ん」でつなぎ、「あ」で分割してから挿入します。
 RATINGん3あGENREんROCKあSTYLEんPUNK

*その他 [#leab9a0a]

-Track Info Panel Modでボタンを作るには
 $button2(0,0,0,0,10,10,5,5,'Rate 5',)
のように、コンテキストメニューのitem名をコマンドに指定します

*外部リンク [#w37aed29]

-[[公式:http://users.tkk.fi/~tahlberg/foo/]]
-[[半公式wiki:http://wiki.hydrogenaudio.org/index.php?title=Foobar2000:Components_0.9/Custom_Info_(foo_custominfo)]]
-[[公式Forum:http://www.hydrogenaudio.org/forums/index.php?showtopic=45994]]