精華區beta EZsoft 關於我們 聯絡資訊
※ [本文轉錄自 Wallpaper 看板] 作者: sjlxup6 (Hotel California) 看板: Wallpaper 標題: Re: [分享] foobar2000面板(修改來的免安裝版) 時間: Tue Aug 28 03:57:25 2007 這裡分享一些修改的心得 ========================= 首先是面板架構在 PanelsUI 上,某些按鈕功能由column UI和 CWB Hook提供 (音量.時間軸) (隨機播放.波形圖) *)可以在prefernces=>panels II中檢視程式碼,跟改程式的時候也可以直接操作foobar *)或是在面板任何位置按右鍵選第一個選項setting...這時候foobar程式會被鎖定 但是可以很方便的查看各框架的程式碼。 程式撰寫主要分成3層 1.主程式全域設定track globals和user globals 這裡設定最大優先級的函數設定,設定優先於於所有的面板設定 最重要的就是user globals中的 $puts(coverPath,$replace(%path%,%filename_ext%,*.jpg)) 很多面板抓下來無法顯示專輯圖片就是因為coverPath函數內容錯誤沒抓到 (少數面板會自行另外設定,大部分都直接引用coverPath) 其他字型設定等等不重要,因為面板通常都會重新指定,這裡的設定都會被忽略不使用 這裡的函數設定是儲存在foobar設定檔中,不是面板設定檔 所以通常都不會去更改他,直接用預設的,重要的函數設定則直接寫在面板檔中 2.右邊的edit layout按鈕可進入面板的程式撰寫(configuration) 一開始看到的是框架組合,這裡設定大部分的固定元件(播放按鈕,底色等) 下方的globals可開啟面板的全域函數視窗,大部分的設定值都會寫在這裡 我分享的面板中這裡有一行 $windowstyle(hidetitlebar) 用來隱藏視窗列,在該行前端加入 // 即成註解,可以顯示視窗列 globals的設定需要重開程式 3.相同視窗(configuration)右上通常有許多小項,為組成面板的各個組件 選擇組件之後按settings可以編輯該組件的程式碼(不能按代表無法自訂程式) 通常都會有playlist組件可以編輯 3.1] playlist組件的layout settings中分為4大項設定 1) row height: 播放清單中每行的高度 2) group rows: 群組標題要使用幾行清單項目做作為空間 3) group display:群組分類的"群組標題設定" 通常指定群組分類化後該群組標題的圖片、背景、字型色彩等    4) item display:播放清單的顯示設定 設定歌曲在播放清單與群組顯示中,顯示的字型、圖片、色彩等格式 3.2] 通常面板不只只有playlist組件可以設定程式 包含一些空白版面的控制等等(我分享的面板中的樂曲播放模式就是其一) ====================== 基本的修改, 大部分會修改的就是清單的顯示模式和色彩 文字的修改: 文字的標籤就是 $font(字型,大小,樣式,色彩) 樣式可留空,色彩格式為 R-G-B 0~255 ex $font(微軟正黑體,12,Bold glow-150-150-150 glowexpand-0,220-220-220) 字型正黑體、12點字、粗體+光暈色彩灰+光暈修飾、色彩白灰 其中可加入其他函數幫助判斷例如if $font(微軟正黑體,8,$if(%isplaying%,glow-200-200-200glowexpand-0) ,$if(%isplaying%,255-255-255,200-200-210))%title%,) 字型正黑體,8點大小,如果該曲目播放中顯示光暈樣式.無播放則空白 ,顯示tag中title標籤, 若播放中顏色255-255-255亮白.無則顏色200-200-210白灰色 字型通常搭配$alignabs對齊標籤使用,有時候單純調整字型,會發現字被切斷 $alignabs(24,0,0,73,left,middle) 位置座標24,0,位移座標0,73,靠左對齊,基線置中(預設top靠上對齊,上下的對齊設定) 色塊的修改: 色塊應用的範圍很廣,圖片壓底、部份背景色、線段、線框等 $drawrect(開始x,開始y,結束x,結束y,樣式) 樣式可設定線框pencolor、填色brushcolor、或兩者 色塊並沒有位置座標這個設定,但是他受到各個元件影響, 元件的範圍就是色塊的畫板,色塊無法畫出元件的範圍外(超出的部份會消失) 也就是說,在群組程式碼中撰寫的色塊,只能在群組標題的範圍中顯示出來 在播放清單程式中撰寫的色塊,只能在播放清單的每一行中出現 (有點難解釋...) $drawrect(0,0,0,0,brushcolor-0-200-255 alpha-180 pencolor-0-200-255) 畫出填色從0,0開始到0,0(結束的0與開始的0值相反,所以0,0畫到0,0就是填滿範圍) 樣式以0-200-255填滿,框線顯示出來顏色為0-200-255,色塊透明度80 同樣的也可以加入判斷 圖片的修改: 有兩種標籤類型 簡單的 $imageabs(位置x,位置y,路徑) 複雜的 $imageabs2(尺寸x,尺寸y,位移x,位移y,範圍x,範圍y,位置x,位置y,路徑) 圖片會受到範圍設定影響,超出範圍值的不會顯示,留空代表和尺寸相同 雖然比較複雜,但是因為不會常動到這裡的設定,所以還算好理解 ============== 其他的設定還有很多很多,我想光寫foobar的自訂介面就可以出書了~_~"" 我其實不是學程式的,所以很多標籤的用法和解釋可能有錯誤,大多是我的經驗 foobar的自訂介面程式其實只不過是一堆東西組合起來,嚴格說根本不算是程式 說起來反而比較接近html或XML等標籤語言,有心改的同學不要怕用力玩吧! 我甚至還不知道怎麼新增元件(譬如說加入歌詞顯示) 修改別人的東西只是個起步,想要讓foobar不一樣的同學一起努力吧 囧" ============= 推薦一些網站 1)各Components整理下載,包含用來幹什麼 http://wiki.hydrogenaudio.org/index.php?title=Foobar2000:Components_0.9 2)各種基本標籤的用法 http://wiki.hydrogenaudio.org/index.php?title=Foobar2000:Titleformat_Reference 3)Panels UI的用法與標籤範例 http://wiki.hydrogenaudio.org/index.php?title=Foobar2000:Components_0.9/Panels_UI_%28foo_ui_panels%29 我縮 http://tinyurl.com/2m8x5t 4)各種神人分享的面板討論區 http://www.hydrogenaudio.org/forums/index.php?showforum=42 專門討論pui面板(panels ui)的主題串 http://www.hydrogenaudio.org/forums/index.php?showtopic=52890 ==== 奇怪我寫網站就沒有那麼認真,做自己喜歡的東西果然比較有熱忱@@ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.162.167.213 ※ 編輯: sjlxup6 來自: 218.162.167.213 (08/28 04:14)
gyba:推一個~~這個研究起來真的不容易~~ 08/28 08:30
snowpig226:推一下~果然是神人級的大大 等下我也來試試看..... 08/28 10:00
ro1234:推一個~感謝大大的分享 08/28 14:39
godandass:果然是神人級大大 08/28 14:49
williamconan:我每次按edit layout, 08/29 00:00
williamconan:就會出現foobar2000 Application發生問題, 08/29 00:01
williamconan:然後程式只能強迫關閉... 08/29 00:01
williamconan:why? 08/29 00:01
ptyan:推一個 好厲害 有時間來改看看 08/29 01:22
sjlxup6:會當機試試看安裝微軟 .net framework 2.0看看 08/29 17:08
williamconan:有,我有安裝,以為重新安裝,並且更新後應該可解決 08/29 21:25
williamconan:但是情況一樣... 08/29 21:26
-- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.141.204.34 ※ 編輯: sjlxup6 來自: 220.141.204.34 (09/17 12:23)