2012年11月28日 星期三

foobar2000 foo_httpcontrol 新增資訊

因為 foo_httpcontrol 會輸出一些基本的資訊
大部分的播放資訊都可以拿來用了
原本想說就直接用就好了 但是資訊並不包含完整的檔名
這樣對於比對點播資訊的一致性會有些問題


不管一致性的問題
我就先用它輸出的 helper1 來用
helper1 就是如果 foobar 有找到 Track Title 的 id3 資訊就填它
如果沒有這個資訊就輸出檔名

然後我會利用使用者點播的時候用 getID3 這個 function 來檢查
有 Track Title 就拿出來當 hashcode 沒有就拿出檔名作 hashcode
以利後面的查證

但是發現 getID3 在一些字碼的支援上有些問題,例如"?"會變亂碼
但是 foo_httpcontrol 不會

沒辦法了只好兩邊(foo_httpcontrol 及 點播時候取檔名)都讓我有辦法掌握
就認真 trace 一下 foo_httpcontrol

結論
在 state.cpp 中的 381 行加上一行 把 helper1 的結果蓋掉
+          pb_helper1 = pfc::string_filename(pb_item_ptr->get_path());
            pb_helper1x = xml_friendly_string(pb_helper1);


如果不想蓋掉
那就要自己新增一個資訊 那就蠻多地方要改了
(應該就把相關有用到pb_helper1 的地方都多加一個變數 例如 pb_helper4 就可以了)

希望別再遇到問題了 字碼真的很麻煩

ps. pfc::io::path::getFileName(); 這個好像也可以 不確定

沒有留言:

張貼留言

開放匿名留言 請大家注意網路禮儀