; ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
;	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を戻す



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-09-09 (木) 05:41:04