; ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
; Option.hsp
;
; 設定ウィンドウ作成・処理、LyricsMaster検索中の詳細表示窓 作成
;_______________________________________
;// 設定ウィンドウ作成 /////////////////////////////////////////////////////////
inipass = dir_exe+"\\setting.ini" ;設定ファイルパス
;設定読み込み
gosub *iniLoad
gi_sel = ginfo_sel ;あとで描画IDを戻す
//設定ウィンドウ作成
screen WindowID_Setting, 350,235,8+2
title "設定"
syscolor 15 :boxf
color
sysfont 17
objsize 100,22, 24
pos 10,12
mes "ファイル保存先:"
pos , ginfo_cy+5
mes "LyricsMasterフォルダ:"
pos , ginfo_cy+5
mes "曲除外フィルタ:"
pos , ginfo_cy+10
g_cy=ginfo_cy
mes "チェック基準:"
pos 180,g_cy
mes "タイトル重み:"
mes "アーティスト重み:"
mes "アルバム重み:"
mes "再生時間重み:"
pos 130,8
g_cx=ginfo_cx
g_cy=ginfo_cy
objsize 170,22, 24
input FileSavePos ,,,0 :ID_FileSavePos=stat :tipset stat,"デフォルト:曲と同じフォルダに保存\nフォルダ名:曲の下層フォルダを作って保存\n絶対パス:指定フォルダに保存"
pos g_cx+175,g_cy
objsize 35,22, 24
input FileSaveExt ,,,0 :ID_FileSaveExt=stat :tipset stat,"拡張子"
pos g_cx, ginfo_cy+5
g_cy=ginfo_cy
objsize 170,22, 24
input LyricsMasterPass ,,,0 :ID_LyricsMasterPass=stat :tipset stat,"LyricsMasterが置いてあるフォルダのパス"
pos g_cx+175,g_cy
objsize 35,22, 24
button gosub "参照", *Label_LyricsMasterFolder :tipset stat,"フォルダ参照"
pos g_cx, ginfo_cy+5
g_cy=ginfo_cy
objsize 170,22, 24
input FileNameFilter ,,,0 :ID_FileNameFilter=stat :tipset stat,"曲登録時に指定文字列が含まれた場合除外する\n|で区切ることで複数指定できる"
pos g_cx+175,g_cy
objsize 35,22, 24
chkbox "正", FIleNameFilterRegExpCheck
:ID_FIleNameFilterRegExpCheck=stat :tipset stat,"フィルタに正規表現を使えるようにする"
pos g_cx, ginfo_cy+10
g_cy=ginfo_cy
objsize 50,22, 24
pos 90,
input Option_CheckerPoint ,,,0 :ID_Option_CheckerPoint=stat :tipset stat,"リストにファイルを登録したとき点数がこの数値以上ならチェック\n既にタイムタグ付き歌詞が保存されていればチェックしない"
pos 285,g_cy
input Option_WeightTitle ,,,0 :ID_Option_WeightTitle=stat :tipset stat,"総合点数を算出する際のタイトルの比率"
input Option_WeightArtsit ,,,0 :ID_Option_WeightArtsit=stat :tipset stat,"総合点数を算出する際のアーティストの比率"
input Option_WeightAlbum ,,,0 :ID_Option_WeightAlbum=stat :tipset stat,"総合点数を算出する際のアルバムの比率"
input Option_WeightTime ,,,0 :ID_Option_WeightTime=stat :tipset stat,"総合点数を算出する際の再生時間の比率"
//OKボタン、キャンセルボタンを配置
objsize 90, 22
pos 70, ginfo_sy-30
button gosub "OK", *OptionOK
pos 180, ginfo_sy-30
button gosub "キャンセル", *OptionCansel
gsel gi_sel ;描画IDを戻す
// 設定系処理スクリプトの末尾までジャンプ //////////////////////////////////////
goto *@forward
// /////////////////////////////////////////////////////////////////////////////
*Label_LyricsMasterFolder
;LyricsMasterパス取得「参照」
foldlg "",LyricsMasterPass,0 ;フォルダ選択ダイアログ
if stat=0 : LyricsMasterPass=refstr
//設定ウィンドウがメインウィンドウに隠れてしまうのでアクティブにする
gi_sel=ginfo_sel
gsel WindowID_Setting,1
objprm ID_LyricsMasterPass, LyricsMasterPass
gsel gi_sel
return
*OptionOK
;設定を保存
gosub *iniSave
gi_sel = ginfo_sel
;設定LyricsMasterフォルダ末尾に\がついてたら排除
if strmid(LyricsMasterPass,-1,1)="\\" {
LyricsMasterPass = strmid(LyricsMasterPass,0,strlen(LyricsMasterPass)-1)
gsel WindowID_Setting
objprm ID_LyricsMasterPass, LyricsMasterPass
}
gsel WindowID_Setting, -1 ;ウィンドウを隠す
gsel gi_sel
;データベースの点数付けの重み割り振り設定
PointInMusicList_option_set Option_WeightTitle, Option_WeightArtsit, Option_WeightAlbum, Option_WeightTime
return
*OptionCansel
;設定を読み込み
gosub *iniLoad
gi_sel = ginfo_sel
;オブジェクトに反映
gsel WindowID_Setting
objprm ID_FileSavePos, FileSavePos
objprm ID_FileSaveExt, FileSaveExt
objprm ID_LyricsMasterPass, LyricsMasterPass
objprm ID_FileNameFilter, FileNameFilter
objprm ID_FIleNameFilterRegExpCheck, FIleNameFilterRegExpCheck
objprm ID_Option_CheckerPoint, Option_CheckerPoint
objprm ID_Option_WeightTitle, Option_WeightTitle
objprm ID_Option_WeightArtsit, Option_WeightArtsit
objprm ID_Option_WeightAlbum, Option_WeightAlbum
objprm ID_Option_WeightTime, Option_WeightTime
gsel WindowID_Setting, -1 ;ウィンドウを隠す
gsel gi_sel
return
; ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
; ini関係 関数化
;_______________________________________
#module
#defcfunc _GetPrivateProfileInt str p1, str p2, int p3, str p4
GetPrivateProfileInt p1,p2,p3,p4
return stat
#defcfunc _GetPrivateProfileString str p1, str p2, str p3, str p4
sdim data, 1024
GetPrivateProfileString p1,p2,p3,varptr(data),1024,p4
return data
#global
; ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
; 設定を読み込み
;_______________________________________
*iniLoad
exist inipass ;ファイル存在確認
if strsize=-1 {
;ない場合はiniファイルを作る(初回起動時)
gosub *iniSave
return
}
//iniファイルから設定を読み込み
FileSavePos = _GetPrivateProfileString("data", "FileSavePos", "", inipass)
FileSaveExt = _GetPrivateProfileString("data", "FileSaveExt", "", inipass)
LyricsMasterPass = _GetPrivateProfileString("data", "LyricsMasterPass", "", inipass)
FileNameFilter = _GetPrivateProfileString("data", "FileNameFilter", "", inipass)
FIleNameFilterRegExpCheck = _GetPrivateProfileInt("data", "FIleNameFilterRegExpCheck", 0, inipass)
Option_CheckerPoint = _GetPrivateProfileInt("data", "CheckerPoint", 0, inipass)
Option_WeightTitle = _GetPrivateProfileInt("data", "WeightTitle", 0, inipass)
Option_WeightArtsit = _GetPrivateProfileInt("data", "WeightArtsit", 0, inipass)
Option_WeightAlbum = _GetPrivateProfileInt("data", "WeightAlbum", 0, inipass)
Option_WeightTime = _GetPrivateProfileInt("data", "WeightTime", 0, inipass)
return
; ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
; 設定を保存
;_______________________________________
*iniSave
//iniファイルへデータを保存
;設定を保存
WritePrivateProfileString "data", "FileSavePos", FileSavePos, inipass
WritePrivateProfileString "data", "FileSaveExt", FileSaveExt, inipass
WritePrivateProfileString "data", "LyricsMasterPass", LyricsMasterPass, inipass
WritePrivateProfileString "data", "FileNameFilter", FileNameFilter, inipass
WritePrivateProfileString "data", "FIleNameFilterRegExpCheck", str(FIleNameFilterRegExpCheck), inipass
WritePrivateProfileString "data", "CheckerPoint", str(Option_CheckerPoint), inipass
WritePrivateProfileString "data", "WeightTitle", str(Option_WeightTitle), inipass
WritePrivateProfileString "data", "WeightArtsit", str(Option_WeightArtsit), inipass
WritePrivateProfileString "data", "WeightAlbum", str(Option_WeightAlbum), inipass
WritePrivateProfileString "data", "WeightTime", str(Option_WeightTime), inipass
return
// /////////////////////////////////////////////////////////////////////////////
*@
;// LyricsMaster検索中、詳細を表示する窓 作成 //////////////////////////////////
gi_sel = ginfo_sel ;あとで描画IDを戻す
;//LyricsMasterで検索中、どのサイトから歌詞を拾えば良いかを表示する窓を作成
bgscr WindowID_ShowSite, ginfo_dispx,50, 2, 0,0
color 0,0,0 :boxf :color 255,255,255
// 拡張ウィンドウスタイルに WS_EX_LAYERED | WS_EX_TRANSPARENT を追加適用
GetWindowLong hwnd, GWL_EXSTYLE
SetWindowLong hwnd, GWL_EXSTYLE, stat | $80000/*WS_EX_LAYERED*/ | WS_EX_TRANSPARENT
// 第3パラに透明度 (アルファ値の範囲 0〜255)
bAlpha = 255 * 75 / 100 ;透明度75%
SetLayeredWindowAttributes hwnd, 0, bAlpha, 2/*ULW_ALPHA*/
; ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
; LyricsMaster検索中、詳細表示窓に書き込むマクロ
;_______________________________________
#define global mes_ShowSiteWindow(%1) gi_sel = ginfo_sel :gsel WindowID_ShowSite :color :boxf :color 255,255,255 :pos 5,5 :mes %1 :gsel gi_sel
gsel gi_sel ;描画IDを戻す