昨天本来说凑合用,但是处女座就是追求完美,所以中午不甘心还是认真看了代码改好了:
------------------------------------------------------------------
昨天没改好之前:
bug1:编码信息总是显示“CBR”;
bug2:采样率不对;
bug3:声道总显示“单声道”;
bug4:文件大小只有个位数;
bug5:背景和字体颜色不对。
---------------------------------------
bug1是最头痛的,一开始根本看不懂这些代码,后来看自带的帮助才搞清楚。
bug1问题是使用了%__extrainfo%这个函数,这个函数可以在foobar 8.x版本中使用,但在foobar 9中是没有这个函数的,改为%codec_profile%就能正常显示了
$if($strcmp(1,$get(codec)),
$get(info)编码:$get(text) %__codec%)
$if($strcmp(1,$get(extra_info)),
$get(text)'['
%codec_profile%']')
$char(10)
-----------------------
bug2,好解决,在$puts(samplerate_short,1)中设置为$puts(samplerate_short,0),也就是不使用samplerate_short变量,下面具体代码没研究,反正上面有个$puts(samplerate,1)的变量已经能够提供采样了。
bug3,这个可以参考foobar状态栏是怎么显示“立体声”的。
bug4,原来的代码是:
$puts(ModSize,$muldiv($mod(%_filesize%,1048576),100,1048576))
$if($strcmp(1,$get(filesize)),$get(info)文件大小: $get(text)$div(%_filesize%,1048576).
$ifgreater($get(ModSize),99,99,$num($get(ModSize),2)) MB$char(10))
其实只要去掉$num()这个函数就ok了。估计是编写函数时忘了。
不过这个方法可以借鉴,用div取得整数部分,取两位小数,就用余数放大100倍再除。
最后可以改成这样:
$puts(ModSize,$muldiv($mod(%_filesize%,1048576),100,1048576))
$if($strcmp(1,$get(filesize)),$get(info)文件大小: $get(text)$div(%_filesize%,1048576).
$ifgreater($get(ModSize),99,99,$get(ModSize)) MB$char(10))
bug5,改改颜色代码就ok了
$puts(headline,00ffff)
$puts(info,ff8000)
//4C4C4C
$puts(text,00ff00)
$puts(grayed,FF8000)
$puts(playing_mode,00ffff)
$puts(add,888888)
// Colors for progressbar
$puts(progress_color1,8080ff)
$puts(progress_color2,ff8080))
改好之后就比较完美了...