File "VLC Rotate extension.bas"
Path: /VLC Rotate extension/VLC Rotate extension.bas
File size: 6.66 KB
MIME-type:
Charset: 8 bit
#COMPILE EXE
#DIM ALL
#INCLUDE ONCE "WIN32API.INC"
#INCLUDE ONCE "REGISTRY.INC"
#INCLUDE ONCE "RESOURCE.INC"
#INCLUDE ONCE "APPDATA.INC"
#RESOURCE "VRE.PBR"
'------------------------------------------------------------------------------
%IDC_IMAGE1 = 1001
%IDC_LABEL1 = 1002
%IDC_LABEL2 = 1003
%IDC_BUTTON1 = 1004
%IDC_IMAGE2 = 1005
'------------------------------------------------------------------------------
%READY_TO_INSTALL = 6
%MAGNIFYING_GLASS = 22
%HELP_ICO = 23
%WARNING_ICO = 53
%REPLACE_FILE = 132
%RETRY = 238
%ALL_GOOD = 41
'------------------------------------------------------------------------------
'------------------------------------------------------------------------------
FUNCTION PBMAIN () AS LONG
LOCAL hDlg AS DWORD
LOCAL lRes AS LONG
DIALOG NEW PIXELS, 0, "VLC Rotate", , , 360, 90, _
%DS_MODALFRAME OR %WS_CAPTION OR %WS_POPUP OR %WS_SYSMENU, TO hDlg
DIALOG SET ICON hDlg, "ICO1"
CONTROL ADD IMAGE, hDlg, %IDC_IMAGE1, "", 8, 4, 48, 48
CONTROL ADD LABEL, hDlg, %IDC_LABEL1, "", 70, 8, 250, 16
CONTROL ADD LABEL, hDlg, %IDC_LABEL2, "", 70, 32, 250, 16
CONTROL ADD BUTTON, hDlg, %IDC_BUTTON1, "INSTALL ROTATE EXTENSION", 8, 56, 320, 24
CONTROL ADD IMAGE, hDlg, %IDC_IMAGE2, "", 334, 60, 16, 16, %SS_NOTIFY
DIALOG SHOW MODAL hDlg, CALL MainProc TO lRes
END FUNCTION
'------------------------------------------------------------------------------
'------------------------------------------------------------------------------
SUB InstallExtensions()
LOCAL ff AS LONG
KILL RoamingAppData() + "\vlc\lua\extensions\Rotate+90.lua"
KILL RoamingAppData() + "\vlc\lua\extensions\Rotate-90.lua"
ff = FREEFILE
OPEN RoamingAppData() + "\vlc\lua\extensions\Rotate+90.lua" FOR BINARY AS #ff
PUT$ #ff, RCDATA$("RCW")
CLOSE #ff
ff = FREEFILE
OPEN RoamingAppData() + "\vlc\lua\extensions\Rotate-90.lua" FOR BINARY AS #ff
PUT$ #ff, RCDATA$("RCCW")
CLOSE #ff
END SUB
'------------------------------------------------------------------------------
'------------------------------------------------------------------------------
FUNCTION Exist(BYVAL fileOrFolder AS STRING) AS LONG
LOCAL Dummy&
Dummy& = GETATTR(fileOrFolder)
FUNCTION = (ERRCLEAR = 0)
END FUNCTION
'------------------------------------------------------------------------------
'------------------------------------------------------------------------------
SUB SetIco (BYVAL hDlg AS DWORD, BYVAL hCtl AS LONG, BYVAL ico AS LONG, BYVAL xy AS LONG)
LOCAL hLib AS DWORD
LOCAL hIcon AS DWORD
hLib = LoadLibrary("shell32.dll")
hIcon = LoadImage(hLib, BYVAL ico+1, %IMAGE_ICON, xy, xy, 0)
SendDlgItemMessage hDlg, hCtl, %STM_SETIMAGE, %IMAGE_ICON, hIcon
freelibrary hLib
END SUB
'------------------------------------------------------------------------------
'------------------------------------------------------------------------------
CALLBACK FUNCTION MainProc()
STATIC VLCPath AS STRING
STATIC ovw AS LONG
SELECT CASE AS LONG CB.MSG
CASE %WM_INITDIALOG
' Initialization handler
SetIco CB.HNDL, %IDC_IMAGE2, %HELP_ICO, 16
ovw = 0
' Get VLC path from registry
LET VlcPath = GETREGVALUE(%HKEY_LOCAL_MACHINE, "SOFTWARE\VideoLAN\VLC", "")
IF VlcPath = "" THEN
SetIco CB.HNDL, %IDC_IMAGE1, %MAGNIFYING_GLASS, 48
CONTROL SET TEXT CB.HNDL, %IDC_LABEL1, "VLC was not detected on your system."
CONTROL SET TEXT CB.HNDL, %IDC_LABEL2, "Install VLC then try again."
CONTROL DISABLE CB.HNDL, %IDC_BUTTON1
ELSE
SetIco CB.HNDL, %IDC_IMAGE1, %READY_TO_INSTALL, 48
CONTROL SET TEXT CB.HNDL, %IDC_LABEL1, "VLC was detected on your system."
CONTROL SET TEXT CB.HNDL, %IDC_LABEL2, "Ready to install the extension."
CONTROL ENABLE CB.HNDL, %IDC_BUTTON1
END IF
CASE %WM_COMMAND
SELECT CASE AS LONG CB.CTL
CASE %IDC_BUTTON1
IF CB.CTLMSG = %BN_CLICKED OR CB.CTLMSG = 1 THEN
IF ISFALSE ovw THEN
' Extension detected > already installed
IF Exist(RoamingAppData() + "\vlc\lua\extensions\Rotate+90.lua") _
OR Exist(RoamingAppData() + "\vlc\lua\extensions\Rotate-90.lua") THEN
ovw = -1
SetIco CB.HNDL, %IDC_IMAGE1, %REPLACE_FILE, 48
CONTROL SET TEXT CB.HNDL, %IDC_LABEL1, "Extension was already installed previously."
CONTROL SET TEXT CB.HNDL, %IDC_LABEL2, "Replace it ?"
CONTROL SET TEXT CB.HNDL, %IDC_BUTTON1, "FORCE-INSTALL EXTENSION (OVERWRITE)"
EXIT FUNCTION
END IF
END IF
' Extension not detected -or- user asks to overwrite > install it
InstallExtensions()
' Extension correctly installed
IF Exist(RoamingAppData() + "\vlc\lua\extensions\Rotate+90.lua") _
OR Exist(RoamingAppData() + "\vlc\lua\extensions\Rotate-90.lua") THEN
SetIco CB.HNDL, %IDC_IMAGE1, %ALL_GOOD, 48
CONTROL SET TEXT CB.HNDL, %IDC_LABEL1, "Extension correctly installed. Please restart VLC."
CONTROL SET TEXT CB.HNDL, %IDC_LABEL2, "You can now rotate videos via View > Rotate..."
CONTROL DISABLE CB.HNDL, %IDC_BUTTON1
' Problem during installation
ELSE
SetIco CB.HNDL, %IDC_IMAGE1, %WARNING_ICO, 48
CONTROL SET TEXT CB.HNDL, %IDC_LABEL1, "There was a problem installing the extension !"
CONTROL SET TEXT CB.HNDL, %IDC_LABEL2, "You can try again or contact the author."
END IF
END IF
CASE %IDC_IMAGE2
IF CB.CTLMSG = %BN_CLICKED OR CB.CTLMSG = 1 THEN
ShellExecute %NULL, "open", "http://mougino.free.fr/", "", "", %SW_SHOW
END IF
END SELECT
END SELECT
END FUNCTION
'------------------------------------------------------------------------------