現在?人閲覧中
目次
cwbowron's hooks
このコンポーネントは、いろいろな種類のTitle Formattingの関数を追加したりすることができます。
DLL配布元
設定
Preferences>Tools>CWB Hooks から設定できます。
※ この画像はv1.1.1のものです。
- User defined next strings
%cwb_next_user1%,%cwb_next_user2%で参照するフィールドを設定できます。
設定が反映されない場合は、foobar2000を再起動してみてください。
- Notify other components…
他のコンポネートが設定を変更したとき、通知します。
- Perform Action on Skipped Files
Playback>Nextが実行されたときに選択したアクションを実行します。
- 使用例 - 曲のスキップ回数を記録する
- Tagging>Manage Scriptsから
Action: "Format Values From Other Fields" Destination Field: SKIP_COUNT Formatting pattern: $if(%skip_count%,$add(%skip_count%,1),1)
とし、適当な名前で保存します。 - Perform Action…で
Tagging/Scripts/(保存した名前)
を選択します。 - Nextで次の曲に移動する度に、その曲の%skip_count%の値が1増えるようになります。
- Tagging>Manage Scriptsから
関数の解説
Title Formattingの解説は、Reference や Title Formatting などを参考にしてください。
文字列の変換、比較
$cwb_urldecode(x)
xの文字をURLデコードします。%などを含んでいるとそのままではうまく変換されないので、
$cwb_urldecode('%E3%81%82')
のように、'を入れて使用してください。ちなみに、上の例ではあと表示されます。
$cwb_removethe(x)
xの単語の頭にあるaまたはtheを消します。anは消えません。
$cwb_ltrim(x,L1,L2,...)
xの単語の頭に文字Lnがあれば除去します。
$cwb_datediff(d1,d2)
yyyy-mm-ddまたはyyyy-mm-dd hh:mm:ssで表される二つの日付の日数を比較します。
24時間で一日とカウントされます。
なお、yyyy-mm-ddはyyyy-mm-dd 00:00:00とみなされます。
- 例
$cwb_datediff(2006-12-30 01:00:00,2007-01-01 00:00:00)
この場合、差は一日と23時間なので1と表示されます。
$cwb_hms(n)
秒数nをhh:mm:ssの形に変換します。小数点以下は切り捨てられます。
nの値が2^31-1(2147483647、596523:14:07)を超える場合、正常に認識されません。
- 例
$cwb_hms(90.81)
01:30が返されます。
$cwb_wdhms(n)
秒数nを?wk ?d hh:mm:ssの形に変換します。
$cwb_splitnum(n,x)
数字nを三桁ずつ区切り、文字xを挿入します。
$cwb_splitnum(n)はスペースを挿入します。
- 例
$cwb_splitnum(1000000,',')
1,000,000が返されます。
プレイリストの情報
%cwb_activelist%
アクティブなプレイリストの名前を返します。
%cwb_activelist_count%
アクティブなプレイリストの総曲数を返します。
%cwb_activelist_duration%
アクティブなプレイリストの総演奏時間を、秒数で小数点二桁まで返します。
- 設定例
$cwb_hms(%cwb_activelist_duration%)
これにより、hh:mm:ssの形になります。
%cwb_playinglist%
再生中のプレイリストの名前を返します。
%cwb_playinglist_count%
再生中のプレイリストの総曲数を返します。
%cwb_playinglist_duration%
再生中のプレイリストの総演奏時間を、秒数で小数点二桁まで返します。
- 設定例
$cwb_hms(%cwb_playinglist_duration%)
これにより、hh:mm:ssの形になります。
%cwb_playing_index%
再生中のトラックが、プレイリストの何番目にあるかを返します。
%cwb_selection_count%
選択されたトラックの総曲数を返します。
%cwb_selection_duration%
選択されたトラックの総演奏時間を、秒数で小数点二桁まで返します。
キューの情報
%cwb_queueindex%
選択されたトラックが、何番目のキューに入っているかを返します。複数回入っていても一番若い数のみを返します。
%cwb_queueindexes%
選択されたトラックが、何番目のキューに入っているかを返します。複数回入っていた場合、' , 'で区切って返します。
%cwb_queuelength%
現在キューされている曲数を返します。
%cwb_queue_end_playlist%
最後にキューしたトラックのプレイリスト名を返します。
next_*
%cwb_next_title%
次のファイルの%title%の値を返します。
%cwb_next_artist%
次のファイルの%artist%の値を返します。
%cwb_next_user1%,%cwb_next_user2%
次のファイルの、任意に設定したフィールドの値を返します。
設定方法
使うには、%cwb_next_user1% とそのまま記入してください。
foobar2000 の情報
%cwb_stopaftercurrent%
Playback>Stop after current が有効ならば1、無効ならば何も返しません。$ifなどと共に使います。
%cwb_followcursor%
Playback>Playback follows Cursor が有効ならば1、無効ならば何も返しません。$ifなどと共に使います。
Playback>Cursor follows Playback と間違えないように。
%cwb_playback_order%
Playback>Order>... の値を返します。
%cwb_volume%
ボリュームの値を返します。
- 設定例
$if(%cwb_volume% , $ifequal($strchr(%cwb_volume%,'.'),2,' ',$ifequal($strchr(%cwb_volume%,'.'),3,' ',)) $ifequal($strchr(%cwb_volume%,'.'),5,-100.0 dB,%cwb_volume% dB) , Volume)
少し見やすいように改造(等幅フォントで効果を発揮します)。
%cwb_playback_state%
stop, play, pauseを返します。
- 設定例
$replace(%cwb_playback_state%,play,Playing,pause,Paused,stop,Stopped)
再生中にPlaying、ポーズしたときにPaused、停止したときにStoppedを返すようにします。
- %_isplaying%,%_ispaused% との違い
- %cwb_playback_state% は "foobar2000が曲を再生、一時停止しているかどうか" を判断しますが、
%_isplaying%,%_ispaused% は "その曲一曲が再生、一時停止されているかどうか" を判断します。
この違いは、 Columns Playlist や Single Column Playlist 、 Track info panel mod の Follow Cursorモードなどで重要になります。
その他
$cwb_fileexists(f)
パス名を含んだファイルの有無を調べます。$ifなどと共に使います。
絶対、相対パスの両方が使えます。
- 設定例
$if($cwb_fileexists($replace(%_path%,%_filename_ext%,)foobar.jpg),blah,zzz)
再生中のファイルがあるフォルダに、foobar.jpgという名のファイルがあればblahを、なければzzzを返します。
%cwb_systemdate%
Windowsのシステムの日付をyyyy-mm-ddの形で返します。
- 設定例
$replace(%cwb_systemdate%,'-','/')
日付をyyyy/mm/ddの形で返します。
$substr(%cwb_systemdate%,6,7)
今月は何月かを返します。
%cwb_systemdatetime%
Windowsのシステムの日付、時刻をyyyy-mm-dd hh:mm:ssの形で返します。
- 設定例
$replace(%cwb_systemdatetime%,%cwb_systemdate%' ',)
時刻のみをhh:mm:ssの形で返します。
$cwb_rand()
0 2^15-1(32767)までの間で乱数を返します。
- 設定例
$mod($cwb_rand(),10)
0 9 の間で乱数を取得します。
%cwb_created%
ファイルの作成日時をyyyy-mm-dd hh:mm:ssの形で返します。
*1
New File Tagger
Preferences→Tools→New File Tagger から設定できます。
- Process files added to the library
チェックを入れることにより、Media libraryに新規追加されたファイルに対して選択したコマンドを自動的に実行できるようになります。
Preferences>Media library>Add/Scan/Scan Allでも、すでにMedia libraryに指定してあるフォルダ以下からのD&Dでも機能します。
Replaygainの分析や、Tagging scriptsやfoo_custominfoを使ってdatabase=1のような事ができます。
Masstagger に追加される Action
Stamp Current Date and Time
指定したfieldに、Windowsの時刻を 2007-01-10 16:45:22 のように入力します。
Stamp File Creation Time
指定したfieldに、ファイル作成日時を 2007-01-10 16:45:22 のように入力します。
Tagger Window
※ 画像はv1.2.beta0のものです。
再生中の曲のタグをチェックボックスによって編集できます。
設定は右クリック→Options から。
- Options
- Metadata Field:
チェックボックスで編集するフィールド名を設定。 - Tags:
Tagger Window に表示するタグを設定。
複数入力する場合は間に ; (半角セミコロン)を。 - Show Rating Buttons
右端に表示されるレーティングボタンの表示/非表示。
- Metadata Field:
実装予定のない機能
作者によると、foobar2000の機能上、実装不可能なものがあるようです。これらの機能は期待しないほうがいいでしょう。
http://wiki.bowron.us/index.php/Foobar2000:Hooksより。(07/02/10 現在)
- %cwb_next_*%
次のトラックの情報を参照する機能に関することは、これ以上はほぼ不可能。
- %_replaygain_mode%
- %_database% (databaseにファイルがあるかどうかを調べる関数)