Skip to content

Commit

Permalink
Initial commit (from r336 on sf.net)
Browse files Browse the repository at this point in the history
  • Loading branch information
genemars committed Feb 22, 2014
1 parent b285f5f commit 7b7ce10
Show file tree
Hide file tree
Showing 2,091 changed files with 542,424 additions and 0 deletions.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

Large diffs are not rendered by default.

Binary file not shown.
Binary file not shown.
Binary file added Drivers/USB_ActiveHome_Interface/7ZDP_LZMA.sfx
Binary file not shown.
6 changes: 6 additions & 0 deletions Drivers/USB_ActiveHome_Interface/7zDP_LZMA.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
;!@Install@!UTF-8!
RunProgram="dpscat.exe"
RunProgram="x86:dpinst32.exe"
RunProgram="x64:dpinst64.exe"
GUIMode="2"
;!@InstallEnd@!
Binary file not shown.
64 changes: 64 additions & 0 deletions Drivers/USB_ActiveHome_Interface/Instructions.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
/* Auto-generated By libusbK InfWizard
*
* DEVICE DRIVER CLIENT INSTALLER By Travis Lee Robinson ([email protected])
*
* Summary:
* - libusbK client installers combine proven LZMA sfx technology with a professional driver installation tool
* creating a tightly packed and feature rich solution for end-user driver installations.
*
* FACTS:
* - Packaged in a modified LZMA sfx module. See: http://7zsfx.info/en. This module is highly configurable
* with installer-like options.
* - Uses dpinst.exe, by Microsoft. Dpinst.exe is a robust multi-language driver installation utility. This
* utility has a set of configurable wizard screens to ease end-user installations. Features also include:
* - Install multiple .inf files at once, each can contain multiple devices with multiple hardware
* identifiers.
* - Uninstall via add/remove programs. (removes from driver-store)
* - Silent/wizardless operation modes.
* - Simplistic xml-based configuration. (dpinst.xml)
* - Customizable EULA.
* - For a complete list of dpinst.exe features see:
* http://msdn.microsoft.com/en-us/library/windows/hardware/ff553383%28v=vs.85%29.aspx
*
* ORDER OF OPERATIONS (InstallDriver.exe - default config):
* -# End-user launches InstallDriver.exe. If not already running with elevated permssions, the user will
* immediately be prompted with a UAC warning:
* http://msdn.microsoft.com/en-us/library/windows/desktop/aa511445.aspx If you do not sign
* InstallDriver.exe with a code signing certificate, the UAC prompt will display "Unknown Name" and
* "Unknown Publisher" in the message box. Purchasing a cheap code signing certificate will allow you to
* set these values.
* -# SFX module:Extracts driver setup files to a temporary folder.
* -# SFX module:Runs dpscat.exe. This utility creates self signed catalog files from .inf files and the
* binaries they reference. These signed catalog files prevent windows from prompting the user with an
* unverified publisher warning: http://www.codeproject.com/KB/system/wiisensor/wiisensor10.png
* -# SFX module:Runs dpinst.exe. Device drivers are pre-installed. If the device has not been connected it
* will be available for use upon first connection. All devices known to windows matching your hardware IDs
* will be flagged for re-install. If the device is currently connected, drivers are immediately installed,
* the device is retarted and available immediately.
* -# SFX module:On wizard exit, removes the temporary extraction folder.
*
* ORDER OF OPERATIONS (re-pack-files.cmd - default config):
* -# The following files are compressed into a normal LZMA .7z file.
* - All ".inf" files in the current folder
* - All files and folders starting with "dpinst" in the current folder.
* - All files matching "dpscat.*" in the current folder.
* - All files and folders in the x86, amd64, and data sub-folders. (recursive)
* -# The SFX module, SFX config file and .7z file are merged together using a binary copy.
* eg: COPY /B sfx_module+sfx_config+files.7z installer.exe
*
* \note Run the "re-pack-files.cmd" batch file after modifying any part of the package.
*
* CUSTOMIZATION:
* - Customizing the SFX Module:
* - SFX customization is done in the "7zDP_LZMA.cfg" file.
* - See http://7zsfx.info/en/
* - Customizing the driver installation:
* - dpinst.exe customization is done in the "dpinst.xml" file.
* - See http://msdn.microsoft.com/en-us/library/windows/hardware/ff553383%28v=vs.85%29.aspx
* - Other customization:
* - .inf file can be hand modified as needed.
* - Files can be added or removed as needed.
* - Icon and resource text can be changed with a standard resource editor such as ResourcHacker:
* http://www.angusj.com/resourcehacker/
*
*/
Binary file not shown.
Binary file added Drivers/USB_ActiveHome_Interface/_DriverFiles.7z
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
19 changes: 19 additions & 0 deletions Drivers/USB_ActiveHome_Interface/dpinst.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<!--
Summary of the DPInst XML Elements:
http://msdn.microsoft.com/en-us/library/windows/hardware/ff553383%28v=vs.85%29.aspx
Enabling Language Customization:
http://msdn.microsoft.com/en-us/library/windows/hardware/ff544886%28v=vs.85%29.aspx
Customizing the Items That Appear on the Wizard Pages:
http://msdn.microsoft.com/en-us/library/windows/hardware/ff540265%28v=vs.85%29.aspx
Dpinst.xml Example:
http://msdn.microsoft.com/en-us/library/windows/hardware/ff544778%28v=vs.85%29.aspx
-->

<?xml version="1.0"?>
<dpinst>
<forceIfDriverIsNotBetter>1</forceIfDriverIsNotBetter>
<installAllOrNone>1</installAllOrNone>
</dpinst>
Binary file added Drivers/USB_ActiveHome_Interface/dpinst32.exe
Binary file not shown.
Binary file added Drivers/USB_ActiveHome_Interface/dpinst64.exe
Binary file not shown.
Binary file added Drivers/USB_ActiveHome_Interface/dpscat.exe
Binary file not shown.
67 changes: 67 additions & 0 deletions Drivers/USB_ActiveHome_Interface/re-pack-files.cmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
@ECHO OFF
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION

SET FILES_TO_PACK=*.inf dpinst* dpscat.* .\data* .\x86* .\amd64*
SET SFX_MODULE=7zDP_LZMA.sfx
SET SFX_MODULE_CFG=7zDP_LZMA.cfg
SET INSTALL_DRIVER_EXE=InstallDriver.exe
SET DRIVER_FILES_7Z=_DriverFiles.7z
SET 7Z_SWITCHES=-air0 -mx

SET CMD_EXIT_CODE=0

IF EXIST "!7ZA_EXE!" (SET 7Z_RUN="!7ZA_EXE!") ELSE CALL :Find7Zip 7z.exe 7za.exe 7zan.exe
IF !7Z_RUN! EQU "" (
ECHO 7Zip is required to re-pack this installer.
ECHO 1] Download and install 7Zip. http://www.7-zip.org/
ECHO 2] Add the bin folder to the PATH environment variable.
ECHO "Control Panel->System->Advanced->Environment Variables..."
SET CMD_EXIT_CODE=1
GOTO Error
)

IF EXIST "!INSTALL_DRIVER_EXE!" DEL /Q "!INSTALL_DRIVER_EXE!"
IF NOT "!ERRORLEVEL!" EQU "0" (
ECHO Access denied or file in-use "!INSTALL_DRIVER_EXE!"
SET CMD_EXIT_CODE=2
GOTO Error
)

IF EXIST "!DRIVER_FILES_7Z!" DEL /Q "!DRIVER_FILES_7Z!"
IF NOT "!ERRORLEVEL!" EQU "0" (
ECHO Access denied or file in-use "!DRIVER_FILES_7Z!"
SET CMD_EXIT_CODE=3
GOTO Error
)

!7Z_RUN! a "!DRIVER_FILES_7Z!" !FILES_TO_PACK! !7Z_SWITCHES!
IF NOT "!ERRORLEVEL!" EQU "0" (
ECHO Failed re-packing. Check your 7Zip installation at
ECHO !7Z_RUN!
SET CMD_EXIT_CODE=4
GOTO Error
)

COPY /B "!SFX_MODULE!"+"!SFX_MODULE_CFG!"+"!DRIVER_FILES_7Z!" "!INSTALL_DRIVER_EXE!"

ECHO.
ECHO Done.
ECHO "!INSTALL_DRIVER_EXE!" re-packed!
GOTO :EOF

:Find7Zip
SET 7Z_RUN="%~$PATH:1"
IF NOT !7Z_RUN! EQU "" (
ECHO 7Zip found at: !7Z_RUN!
SET 7Z_RUN="%~1"
GOTO :EOF
)
SHIFT /1
IF "%~1" EQU "" GOTO :EOF
GOTO Find7Zip
GOTO :EOF

:Error
IF NOT DEFINED NO_REPACK_ERROR_WAIT PAUSE
EXIT %CMD_EXIT_CODE%
GOTO :EOF
Binary file added Drivers/USB_ActiveHome_Interface/x86/libusb0.sys
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added HomeGenie.vsd
Binary file not shown.
37 changes: 37 additions & 0 deletions HomeGenie/Automation/ComparisonOperator.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
/*
This file is part of HomeGenie Project source code.
HomeGenie is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
HomeGenie is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with HomeGenie. If not, see <http://www.gnu.org/licenses/>.
*/

/*
* Author: Generoso Martello <[email protected]>
* Project Homepage: http://homegenie.it
*/

using System;
using System.Collections.Generic;

namespace HomeGenie.Automation
{
[Serializable()]
public enum ComparisonOperator
{
LessThan = -1,
Equals = 0,
GreaterThan = 1
}

}

148 changes: 148 additions & 0 deletions HomeGenie/Automation/MacroRecorder.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,148 @@
/*
This file is part of HomeGenie Project source code.
HomeGenie is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
HomeGenie is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with HomeGenie. If not, see <http://www.gnu.org/licenses/>.
*/

/*
* Author: Generoso Martello <[email protected]>
* Project Homepage: http://homegenie.it
*/

using MIG;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace HomeGenie.Automation
{
public enum MacroDelayType
{
None = -1,
Fixed,
Mimic
}

public class MacroRecorder
{
// vars for macro record fn
private bool _ismacrorecordingenabled = false;
private List<MIGInterfaceCommand> _macrocommands = new List<MIGInterfaceCommand>();
private DateTime _macrorecordcurrentts = DateTime.Now;
private double _macrorecorddelayseconds = 1;
private MacroDelayType _macrorecorddelaytype = MacroDelayType.Fixed;
private DateTime _macrorecordstartts = DateTime.Now;

private ProgramEngine _mastercontrolprogram;

public MacroRecorder(ProgramEngine mcp)
{
_mastercontrolprogram = mcp;
}

public void RecordingDisable()
{
// stop recording
_ismacrorecordingenabled = false;
}

public void RecordingEnable()
{
// start recording
_macrocommands.Clear();
_macrorecordstartts = _macrorecordcurrentts = DateTime.Now;
_ismacrorecordingenabled = true;
}

public ProgramBlock SaveMacro(string options)
{
RecordingDisable();
//
ProgramBlock pb = new ProgramBlock();
pb.Name = "New Macro";
pb.Address = _mastercontrolprogram.GeneratePid();
pb.Type = "Wizard";
foreach (MIGInterfaceCommand mc in _macrocommands)
{
ProgramCommand pc = new ProgramCommand();
pc.Domain = mc.domain;
pc.Target = mc.nodeid;
pc.CommandString = mc.command;
pc.CommandArguments = "";
if (!string.IsNullOrEmpty(mc.GetOption(0)) && mc.GetOption(0) != "null")
{
//TODO: should we pass entire command option string? migCmd.OptionsString
pc.CommandArguments = mc.GetOption(0) + (options != "" && options != "null" ? "/" + options : "");
}
pb.Commands.Add(pc);
}
_mastercontrolprogram.ProgramAdd(pb);
//
return pb;
}

public void AddCommand(MIGInterfaceCommand cmd)
{
double delaypause = 0;
switch (_macrorecorddelaytype)
{
case MacroDelayType.Mimic:
// calculate pause between current and previous command
delaypause = new TimeSpan(DateTime.Now.Ticks - _macrorecordcurrentts.Ticks).TotalSeconds;
break;

case MacroDelayType.Fixed:
// put a fixed pause
delaypause = _macrorecorddelayseconds;
break;
}
//
try
{
if (delaypause > 0 && _macrocommands.Count > 0)
{
// add a pause command to the macro
_macrocommands.Add(new MIGInterfaceCommand("HomeAutomation.HomeGenie/Automation/Program.Pause/" + delaypause.ToString(System.Globalization.CultureInfo.InvariantCulture)));
}
_macrocommands.Add(cmd);
}
catch (Exception ex)
{
//HomeGenieService.LogEvent(Domains.HomeAutomation_HomeGenie, "migservice_ServiceRequestPostProcess(...)", ex.Message, "Exception.StackTrace", ex.StackTrace);
}
//
_macrorecordcurrentts = DateTime.Now;

}

public bool IsRecordingEnabled
{
get { return _ismacrorecordingenabled; }
}

public MacroDelayType DelayType
{
get { return _macrorecorddelaytype; }
set { _macrorecorddelaytype = value; }
}

public double DelaySeconds
{
get { return _macrorecorddelayseconds; }
set { _macrorecorddelayseconds = value; }
}

}
}
Loading

0 comments on commit 7b7ce10

Please sign in to comment.