#NoTrayIcon
#region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Version=beta
#AutoIt3Wrapper_icon=WMCMLogo.ico
#AutoIt3Wrapper_outfile=WMCM v1.0.exe
#AutoIt3Wrapper_UseUpx=n
#AutoIt3Wrapper_Res_Comment=WMCM
#AutoIt3Wrapper_Res_Description=WMCM
#AutoIt3Wrapper_Res_Fileversion=1.0.0.0
#AutoIt3Wrapper_Res_ProductVersion=1.0.0.0
#AutoIt3Wrapper_Res_LegalCopyright=Copyright © 2009 - © 2012 Spayrosam (Samir.L)
#AutoIt3Wrapper_Res_Field=CompanyName|Spayrosam
#AutoIt3Wrapper_Res_Field=ProductName|WMCM
#AutoIt3Wrapper_Res_Field=ProductVersion|1.0.0.0
#AutoIt3Wrapper_Res_Field=WMCM|1.0.0.0
#AutoIt3Wrapper_Run_AU3Check=n
#endregion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Array.au3>
#include <GuiListView.au3>
#include <GuiEdit.au3>
#include <GuiComboBoxEx.au3>
#include <StaticConstants.au3>
#include <Constants.au3>
Global $CategoriesName[21][3], $MoviesName[1][3]
Local $LicalCategories = ""
Local $var = FileOpenDialog("Navigate to 'categories.ini' file", @ScriptDir & "\", "categories.ini (categories.ini)", 1, "categories.ini")
If Not @error Then
FileDelete(@ScriptDir & "\Local_categories.ini")
Local $Localfile = FileOpen($var, 0)
FileWrite(@ScriptDir & "\Local_categories.ini", FileRead($Localfile))
FileClose($Localfile)
Local $LicalCategories = @ScriptDir & "\Local_categories.ini"
Else
MsgBox(4096, "", "Error occurred, probably no INI file." & @CRLF & "Can you please navigate to 'categories.ini' file!" & @CRLF & @CRLF & "Exit...")
Exit
EndIf
If $LicalCategories = "" Then Exit
Local $varCatg = IniReadSection($LicalCategories, "GENERAL")
Local $iExWindowStyle = BitOR($WS_EX_DLGMODALFRAME, $WS_EX_CLIENTEDGE, $LVS_SINGLESEL, $LVS_REPORT, $LVS_SHOWSELALWAYS)
Local $iExListViewStyle = BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_GRIDLINES, $LVS_EX_BORDERSELECT, $LVS_EX_DOUBLEBUFFER)
;Get Total
$TotalCatg = Number(IniRead($LicalCategories, "GENERAL", "numcategories", "-1"))
If @error Then
MsgBox(4096, "", "Error occurred, probably no INI file.")
Else
;Get all Cat
If $TotalCatg > 0 Then
$WMCM = GUICreate("WiiFlow Movies categories Manager", 600, 600, -1, -1)
GUISetBkColor(0xC7F4ED, $WMCM)
$categoriesBTN = GUICtrlCreateButton("Categories.ini", 10, 10, 100, 25)
$categoriesInput = GUICtrlCreateInput("", 110, 10, 480, 25, BitOR($ES_READONLY, $ES_AUTOHSCROLL))
GUICtrlSetData($categoriesInput, $LicalCategories)
$MplayerBTN = GUICtrlCreateButton("Mplayerce.ini", 10, 40, 100, 25)
$MplayerInput = GUICtrlCreateInput("", 110, 40, 480, 25, BitOR($ES_READONLY, $ES_AUTOHSCROLL))
$LoadrBTN = GUICtrlCreateButton("Load Movies", 10, 70, 100, 25)
GUICtrlSetColor(-1, 0xFF0000)
GUICtrlSetFont(-1, 10, 600)
GUICtrlSetState($LoadrBTN, $GUI_DISABLE)
GUICtrlCreateLabel("HDD", 120, 70, 30, 25, BitOR($SS_CENTER, $SS_CENTERIMAGE))
$HDDBTN = GUICtrlCreateCombo("", 150, 72, 40, 20, BitOR($CBS_DROPDOWNLIST, $CBS_AUTOHSCROLL))
$VarHDDBackUp = _RefrechHDDDrive()
Local $HDDDriveValue = ""
For $i = 1 To $VarHDDBackUp[0]
$HDDDriveValue &= StringUpper($VarHDDBackUp[$i]) & "|"
Next
GUICtrlSetData($HDDBTN, $HDDDriveValue, $VarHDDBackUp[1])
GUICtrlCreateLabel("Covers", 200, 70, 40, 25, BitOR($SS_CENTER, $SS_CENTERIMAGE))
$CoversBTN = GUICtrlCreateCombo("", 240, 72, 40, 20, BitOR($CBS_DROPDOWNLIST, $CBS_AUTOHSCROLL))
GUICtrlSetData($CoversBTN, $HDDDriveValue, $VarHDDBackUp[1])
$MovienameBTN = GUICtrlCreateLabel("", 280, 70, 210, 25, BitOR($SS_CENTER, $SS_CENTERIMAGE))
$MovienameLabel = GUICtrlCreateLabel("", 280, 70, 210, 25, BitOR($SS_CENTER, $SS_CENTERIMAGE))
GUICtrlSetState(-1, $GUI_HIDE)
$SaveBTN = GUICtrlCreateButton("Save", 490, 70, 100, 25)
GUICtrlSetFont(-1, 10, 600)
GUICtrlSetColor(-1, 0x2A8305)
Local $Startvariable = 1
For $i = 1 To $varCatg[0][0]
If StringRegExp($varCatg[$i][0], "cat\d{2}|cat\d", 0) = 1 Then
;If Number(StringReplace($varCatg[$i][0], "cat", "")) < $TotalCatg Then
;ReDim $CategoriesName[UBound($CategoriesName) + 1][3]
$CategoriesName[$Startvariable][0] = $Startvariable
$CategoriesName[$Startvariable][1] = Number(StringTrimLeft($varCatg[$i][0], 3));$varCatg[$i][0]
$CategoriesName[$Startvariable][2] = $varCatg[$i][1]
If $i = 20 Then ExitLoop
$Startvariable += 1
;EndIf
EndIf
Next
;Sort all Cat
_ArrayDisplay($CategoriesName)
_ArraySort($CategoriesName, 0, 0, 0, 1)
_ArrayDisplay($CategoriesName)
;create all cat
Local $StartY = 100, $StartW = 100, $StartH = 18
For $i = 1 To 20;UBound($CategoriesName) - 1
DllCall('uxtheme.dll', 'none', 'SetThemeAppProperties', 'int', 0)
$CategoriesName[$i][0] = GUICtrlCreateCheckbox($CategoriesName[$i][2], 490, $StartY, $StartW, $StartH)
GUICtrlSetBkColor(-1, 0x3CF9F5); 0x60FC43
GUICtrlSetColor(-1, 0x000000)
DllCall('uxtheme.dll', 'none', 'SetThemeAppProperties', 'int', 7)
If $i >= $TotalCatg Then GUICtrlSetState($CategoriesName[$i][0], $GUI_HIDE)
$StartY += 25
Next
$MoviesListView = GUICtrlCreateListView("", 10, 100, 470, 495, $iExWindowStyle)
_GUICtrlListView_SetExtendedListViewStyle($MoviesListView, $iExListViewStyle)
$MoviesListViewHandle = GUICtrlGetHandle($MoviesListView)
_GUICtrlListView_AddColumn($MoviesListView, "N'", 40)
_GUICtrlListView_AddColumn($MoviesListView, "Name", 310)
_GUICtrlListView_AddColumn($MoviesListView, "Format", 50)
_GUICtrlListView_AddColumn($MoviesListView, "Cover", 65)
_GUICtrlListView_AddColumn($MoviesListView, "", 0)
_GUICtrlListView_AddColumn($MoviesListView, "", 0)
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $categoriesBTN
Local $var = FileOpenDialog("Navigate to 'categories.ini' file", @ScriptDir & "\", "categories.ini (categories.ini)", 1, "categories.ini", $WMCM)
If Not @error Then
Local $Localfile = FileOpen($var, 0)
FileDelete(@ScriptDir & "\Local_categories.ini")
FileWrite(@ScriptDir & "\Local_categories.ini", FileRead($Localfile))
FileClose($Localfile)
GUICtrlSetData($categoriesInput, @ScriptDir & "\Local_categories.ini")
GUICtrlSetState($LoadrBTN, $GUI_ENABLE)
Else
GUICtrlSetState($LoadrBTN, $GUI_DISABLE)
EndIf
Case $MplayerBTN
Local $var = FileOpenDialog("Navigate to 'Mplayerce.ini' file", @ScriptDir & "\", "Mplayerce.ini (mplayerce.ini)", 1, "mplayerce.ini", $WMCM)
If Not @error Then
GUICtrlSetData($MplayerInput, $var)
If FileExists(GUICtrlRead($categoriesInput)) = 1 Then
GUICtrlSetState($LoadrBTN, $GUI_ENABLE)
EndIf
Else
GUICtrlSetState($LoadrBTN, $GUI_DISABLE)
EndIf
Case $LoadrBTN
If FileExists(GUICtrlRead($categoriesInput)) = 1 And FileExists(GUICtrlRead($MplayerInput)) = 1 Then
Local $StartcountMovies = 0
Local $varAllMoviesCatg = IniReadSection(GUICtrlRead($categoriesInput), "CATEGORIES")
Local $varMoviesFolder = IniRead(GUICtrlRead($MplayerInput), "PLUGIN", "romDir", "")
Local $varCoversFolder = IniRead(GUICtrlRead($MplayerInput), "PLUGIN", "coverFolder", "")
If MsgBox(68, "Settings", "Movies Folder: " & GUICtrlRead($HDDBTN) & "\" & $varMoviesFolder & @CRLF & _
"Covers Folder: " & GUICtrlRead($CoversBTN) & "\Wiiflow\Boxcovers\" & $varCoversFolder & @CRLF & @CRLF _
"Make sure that your settings are correct!" & _
, Default, $WMCM) = 6 Then
Local $varMoviesfileTypes = IniRead(GUICtrlRead($MplayerInput), "PLUGIN", "fileTypes", "")
$SplitvarMoviesfileTypes = StringSplit($varMoviesfileTypes, "|", 1)
;_ArrayDisplay($SplitvarMoviesfileTypes)
ReDim $MoviesName[1][4]
For $i = 1 To $varAllMoviesCatg[0][0]
If StringLeft($varAllMoviesCatg[$i][0], StringLen($varMoviesFolder)) = $varMoviesFolder Then
For $S = 1 To $SplitvarMoviesfileTypes[0]
If FileExists(GUICtrlRead($HDDBTN) & "\" & StringReplace($varAllMoviesCatg[$i][0], "/", "\") & $SplitvarMoviesfileTypes[$S]) = 1 Then
ReDim $MoviesName[UBound($MoviesName) + 1][4]
$StartcountMovies += 1
$MoviesName[$StartcountMovies][0] = StringRegExpReplace(StringReplace($varAllMoviesCatg[$i][0], "/", "\"), "^.*\\(.*)$", "$1")
$MoviesName[$StartcountMovies][1] = $SplitvarMoviesfileTypes[$S]
$MoviesName[$StartcountMovies][2] = GUICtrlRead($HDDBTN) & "\" & StringReplace($varAllMoviesCatg[$i][0], "/", "\") & $SplitvarMoviesfileTypes[$S]
$MoviesName[$StartcountMovies][3] = $varAllMoviesCatg[$i][0]
ExitLoop
EndIf
Next
EndIf
Next
_GUICtrlListView_DeleteAllItems(GUICtrlGetHandle($MoviesListView))
For $t = 1 To UBound($MoviesName) - 1
$item_count = _GUICtrlListView_GetItemCount($MoviesListView)
_GUICtrlListView_AddItem($MoviesListView, $t, $item_count)
_GUICtrlListView_AddSubItem($MoviesListView, $item_count, $MoviesName[$t][0], 1, 1)
_GUICtrlListView_AddSubItem($MoviesListView, $item_count, $MoviesName[$t][1], 2, 1)
If FileExists(GUICtrlRead($CoversBTN) & "\Wiiflow\Boxcovers\" & $varCoversFolder & "\" & $MoviesName[$t][0] & $MoviesName[$t][1] & ".png") = 1 Then
_GUICtrlListView_AddSubItem($MoviesListView, $item_count, "OK", 3, 1)
Else
_GUICtrlListView_AddSubItem($MoviesListView, $item_count, "*****", 3, 1)
EndIf
_GUICtrlListView_AddSubItem($MoviesListView, $item_count, $MoviesName[$t][2], 4, 1)
_GUICtrlListView_AddSubItem($MoviesListView, $item_count, $MoviesName[$t][3], 5, 1)
Next
;_ArrayDisplay($MoviesName)
EndIf
EndIf
Case $CategoriesName[1][0]
_setColorCat(1)
Case $CategoriesName[2][0]
_setColorCat(2)
Case $CategoriesName[3][0]
_setColorCat(3)
Case $CategoriesName[4][0]
_setColorCat(4)
Case $CategoriesName[5][0]
_setColorCat(5)
Case $CategoriesName[6][0]
_setColorCat(6)
Case $CategoriesName[7][0]
_setColorCat(7)
Case $CategoriesName[8][0]
_setColorCat(8)
Case $CategoriesName[9][0]
_setColorCat(9)
Case $CategoriesName[10][0]
_setColorCat(10)
Case $CategoriesName[11][0]
_setColorCat(11)
Case $CategoriesName[12][0]
_setColorCat(12)
Case $CategoriesName[13][0]
_setColorCat(13)
Case $CategoriesName[14][0]
_setColorCat(14)
Case $CategoriesName[15][0]
_setColorCat(15)
Case $CategoriesName[16][0]
_setColorCat(16)
Case $CategoriesName[17][0]
_setColorCat(17)
Case $CategoriesName[18][0]
_setColorCat(18)
Case $CategoriesName[19][0]
_setColorCat(19)
Case $CategoriesName[20][0]
_setColorCat(20)
Case $SaveBTN
If _GUICtrlListView_GetItemCount($MoviesListView) > 0 Then
$NewCatCode = ""
For $Z = 1 To UBound($CategoriesName) - 1
If BitAND(GUICtrlRead($CategoriesName[$Z][0]), $GUI_CHECKED) = $GUI_CHECKED Then
$NewCatCode &= "1"
Else
$NewCatCode &= "0"
EndIf
Next
If StringLen($NewCatCode) < 20 Then
$NewCatCode = StringLeft($NewCatCode & "00000000000000000000", 20)
EndIf
$NewCatCode = "0" & $NewCatCode
If MsgBox(68, GUICtrlRead($MovienameBTN), "Change " & GUICtrlRead($MovienameBTN) & " Categorie." & @CRLF & _
"Old : " & IniRead($LicalCategories, "CATEGORIES", GUICtrlRead($MovienameLabel), "") & @CRLF & _
"New : " & $NewCatCode & @CRLF & @CRLF & _
"Are you SURE you want to do this? ", Default, $WMCM) = 6 Then
IniWrite($LicalCategories, "CATEGORIES", GUICtrlRead($MovienameLabel), $NewCatCode)
Else
_GetCategories(GUICtrlRead($MovienameLabel))
EndIf
EndIf
EndSwitch
WEnd
EndIf
EndIf
Func _RefrechHDDDrive()
$DriveLetterVar = DriveGetDrive("ALL")
Local $DriveCount = 0
Global $ValDrive[1]
If Not @error Then
For $i = 1 To $DriveLetterVar[0]
Local $DriveGetFileSystemHDD = DriveGetFileSystem($DriveLetterVar[$i])
If $DriveGetFileSystemHDD = "FAT32" Or $DriveGetFileSystemHDD = "FAT" Or $DriveGetFileSystemHDD = "NTFS" Then
$DriveCount += 1
ReDim $ValDrive[$DriveCount + 1]
$ValDrive[0] = $DriveCount
$ValDrive[$DriveCount] = $DriveLetterVar[$i]
EndIf
Next
EndIf
Return $ValDrive
EndFunc ;==>_RefrechHDDDrive
Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
#forceref $hWnd, $iMsg, $iwParam
Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView, $tInfo
$hWndListView = $MoviesListView
If Not IsHWnd($MoviesListView) Then $hWndListView = GUICtrlGetHandle($MoviesListView)
$tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
$hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
$iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
$iCode = DllStructGetData($tNMHDR, "Code")
$tInfo = DllStructCreate('hwnd hWndFrom;int_ptr IDFrom;int Code;int_ptr VKey;int Flags', $ilParam)
Switch $hWndFrom
Case $hWndListView
Switch $iCode
Case $NM_CLICK
If _GUICtrlListView_GetItemCount($MoviesListView) > 0 Then
$Select = _GUICtrlListView_GetSelectedIndices($MoviesListView, True)
If $Select[0] > 0 Then
If _GUICtrlListView_GetItemText($MoviesListView, $Select[1], 0) <> "" Then
$iRet = _GetCategories(_GUICtrlListView_GetItemText($MoviesListView, $Select[1], 5))
GUICtrlSetData($MovienameBTN, _GUICtrlListView_GetItemText($MoviesListView, $Select[1], 1))
GUICtrlSetData($MovienameLabel, _GUICtrlListView_GetItemText($MoviesListView, $Select[1], 5))
EndIf
EndIf
EndIf
Case $NM_DBLCLK
Case $LVN_KEYDOWN
Switch BitAND(DllStructGetData($tInfo, "VKey"), 0xFFFF)
Case $VK_UP
If _GUICtrlListView_GetItemCount($MoviesListView) > 0 Then
$SelectIT = _GUICtrlListView_GetNextItem($MoviesListView) - 1
If $SelectIT < 0 Then $SelectIT = 0
$iRet = _GetCategories(_GUICtrlListView_GetItemText($MoviesListView, $SelectIT, 5))
GUICtrlSetData($MovienameBTN, _GUICtrlListView_GetItemText($MoviesListView, $SelectIT, 1))
GUICtrlSetData($MovienameLabel, _GUICtrlListView_GetItemText($MoviesListView, $SelectIT, 5))
EndIf
Case $VK_DOWN
If _GUICtrlListView_GetItemCount($MoviesListView) > 0 Then
$SelectIT = _GUICtrlListView_GetNextItem($MoviesListView) + 1
If $SelectIT = _GUICtrlListView_GetItemCount($MoviesListView) Then $SelectIT = _GUICtrlListView_GetItemCount($MoviesListView) - 1
$iRet = _GetCategories(_GUICtrlListView_GetItemText($MoviesListView, $SelectIT, 5))
GUICtrlSetData($MovienameBTN, _GUICtrlListView_GetItemText($MoviesListView, $SelectIT, 1))
GUICtrlSetData($MovienameLabel, _GUICtrlListView_GetItemText($MoviesListView, $SelectIT, 5))
EndIf
EndSwitch
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_NOTIFY
Func _GetCategories($IDcat)
Local $LocalvarGetCate = IniRead($LicalCategories, "CATEGORIES", $IDcat, "")
$LocalCatCode = StringTrimLeft($LocalvarGetCate, 1)
Local $TempLocalCatCode = $LocalCatCode
For $Z = 1 To UBound($CategoriesName) - 1
GUICtrlSetState($CategoriesName[$Z][0], $GUI_UNCHECKED)
GUICtrlSetBkColor($CategoriesName[$Z][0], 0x3CF9F5); 0x60FC43
Next
For $Z = 1 To StringLen($LocalCatCode)
If StringLeft($TempLocalCatCode, 1) = "1" Then
GUICtrlSetState($CategoriesName[$Z][0], $GUI_CHECKED)
GUICtrlSetBkColor($CategoriesName[$Z][0], 0x60FC43)
EndIf
$TempLocalCatCode = StringTrimLeft($TempLocalCatCode, 1)
If $Z = UBound($CategoriesName) - 1 Then ExitLoop
Next
Return $LocalvarGetCate
EndFunc ;==>_GetCategories
Func _setColorCat($IDColor)
If _GUICtrlListView_GetItemCount($MoviesListView) > 0 Then
If BitAND(GUICtrlRead($CategoriesName[$IDColor][0]), $GUI_CHECKED) = $GUI_CHECKED Then
GUICtrlSetBkColor($CategoriesName[$IDColor][0], 0x60FC43)
Else
GUICtrlSetBkColor($CategoriesName[$IDColor][0], 0x3CF9F5)
EndIf
EndIf
EndFunc ;==>_setColorCat