From: <ant...@us...> - 2009-01-05 20:25:26
|
Revision: 2491 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=2491&view=rev Author: anthrax-leprosy Date: 2009-01-05 20:25:20 +0000 (Mon, 05 Jan 2009) Log Message: ----------- Initial Upload - MySleepTimer Added Paths: ----------- trunk/plugins/MySleepTimer/MpiRelease/ trunk/plugins/MySleepTimer/MpiRelease/MySleepTimer.xml trunk/plugins/MySleepTimer/MpiRelease/MySleepTimer.xmp trunk/plugins/MySleepTimer/MySleepTimer/ trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimer.cs trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimer.csproj trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimerConfig.Designer.cs trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimerConfig.cs trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimerConfig.resx trunk/plugins/MySleepTimer/MySleepTimer/Properties/ trunk/plugins/MySleepTimer/MySleepTimer/Properties/AssemblyInfo.cs trunk/plugins/MySleepTimer/MySleepTimer.sln Property Changed: ---------------- trunk/plugins/MySleepTimer/ Property changes on: trunk/plugins/MySleepTimer ___________________________________________________________________ Added: svn:ignore + *.suo *.Load Added: trunk/plugins/MySleepTimer/MpiRelease/MySleepTimer.xml =================================================================== --- trunk/plugins/MySleepTimer/MpiRelease/MySleepTimer.xml (rev 0) +++ trunk/plugins/MySleepTimer/MpiRelease/MySleepTimer.xml 2009-01-05 20:25:20 UTC (rev 2491) @@ -0,0 +1,42 @@ +<MPinstalerS> + <ver>1.00.000</ver> + <ExtensionList> + <Extension> + <FileName>MySleepTimer.mpi</FileName> + <Name>MySleepTimer</Name> + <URL>http://www.team-mediaportal.com</URL> + <Version>1.0.1.0</Version> + <Author>Anthrax</Author> + <Description>Anybody around here using MediaPortal as his/her over-the-counter (but highly addictive) sleeping agent? + +Well, I sure as heck do + +Ever since I started using MediaPortal some two years ago, I was missing the essential funtionality every cheap old TV has - a simple push-button sleep timer... +So spending one sleepless night I finally managed to program one myself. + +MySleepTimer - MediaPortal Process Plugin +========================================= + +- settings should be pretty much self explanatory (ACTION_REMOTE_YELLOW_BUTTON works perfectly on my behalf) +- inside MediaPortal perform the selected action repeatedly to increment the sleep time according to the configured steps +- going beyond the maximum sleep time stops the timer until being reset the next time 'action' occurs + +regards, +Anthrax</Description> + <Group>Automation</Group> + <Logo>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</Logo> + <Properties> + <MPMaxVersion /> + <MPMinVersion /> + <MinExtensionVersion /> + <MaxExtensionVersion /> + <ForumURL>http://forum.team-mediaportal.com/plugins-47/new-plugin-mysleeptimer-47353/</ForumURL> + <WebURL /> + <CreationDate>26-10-08</CreationDate> + <SingleGroupSelect>False</SingleGroupSelect> + </Properties> + <Uninstall /> + </Extension> + </ExtensionList> + <Option /> +</MPinstalerS> \ No newline at end of file Added: trunk/plugins/MySleepTimer/MpiRelease/MySleepTimer.xmp =================================================================== --- trunk/plugins/MySleepTimer/MpiRelease/MySleepTimer.xmp (rev 0) +++ trunk/plugins/MySleepTimer/MpiRelease/MySleepTimer.xmp 2009-01-05 20:25:20 UTC (rev 2491) @@ -0,0 +1,55 @@ +<MPinstaler> + <ver>1.00.000</ver> + <FileList> + <File> + <FileName>MySleepTimer.dll</FileName> + <Type>Plugin</Type> + <SubType>Window</SubType> + <Source>MySleepTimer.dll</Source> + <Id>01010</Id> + <Option /> + <Guid>091dabbb-9a12-4627-8e08-ebd81816d065</Guid> + </File> + </FileList> + <StringList /> + <Actions /> + <SetupGroups /> + <SetupGroupMappings /> + <Option> + <BuildFileName>MySleepTimer.mpi</BuildFileName> + <ProiectFileName>MySleepTimer.xmp</ProiectFileName> + <ProiectName>MySleepTimer</ProiectName> + <Author>Anthrax</Author> + <UpdateURL>http://www.team-mediaportal.com</UpdateURL> + <Version>1.0.1.1</Version> + <Description>Anybody around here using MediaPortal as his/her over-the-counter (but highly addictive) sleeping agent? + +Well, I sure as heck do + +Ever since I started using MediaPortal some two years ago, I was missing the essential funtionality every cheap old TV has - a simple push-button sleep timer... +So spending one sleepless night I finally managed to program one myself. + +MySleepTimer - MediaPortal Process Plugin +========================================= + +- settings should be pretty much self explanatory (ACTION_REMOTE_YELLOW_BUTTON works perfectly on my behalf) +- inside MediaPortal perform the selected action repeatedly to increment the sleep time according to the configured steps +- going beyond the maximum sleep time stops the timer until being reset the next time 'action' occurs + +regards, +Anthrax</Description> + <Group>Automation</Group> + <Release>Stable </Release> + <Logo>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</Logo> + </Option> + <Properties> + <MPMaxVersion /> + <MPMinVersion /> + <MinExtensionVersion /> + <MaxExtensionVersion /> + <ForumURL>http://forum.team-mediaportal.com/plugins-47/new-plugin-mysleeptimer-47353/</ForumURL> + <WebURL /> + <CreationDate>26-10-08</CreationDate> + <SingleGroupSelect>False</SingleGroupSelect> + </Properties> +</MPinstaler> \ No newline at end of file Property changes on: trunk/plugins/MySleepTimer/MySleepTimer ___________________________________________________________________ Added: svn:ignore + *.user obj bin Added: trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimer.cs =================================================================== --- trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimer.cs (rev 0) +++ trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimer.cs 2009-01-05 20:25:20 UTC (rev 2491) @@ -0,0 +1,209 @@ +#region Copyright (C) 2005-2008 Team MediaPortal + +/* + * Copyright (C) 2005-2008 Team MediaPortal + * http://www.team-mediaportal.com + * + * This Program 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 2, or (at your option) + * any later version. + * + * This Program 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 GNU Make; see the file COPYING. If not, write to + * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + * http://www.gnu.org/copyleft/gpl.html + * + */ + +#endregion + +using System; +using System.Collections.Generic; +using System.Text; +using System; +using System.Windows.Forms; +using MediaPortal.GUI.Library; +using MediaPortal.UserInterface.Controls; +using MediaPortal.GUI; +using MediaPortal.Util; +using MediaPortal.Dialogs; +using MediaPortal.Configuration; + +namespace MySleepTimer { + public class MySleepTimer : GUIWindow, ISetupForm { + + private int sleepTimeCurrent = -1; + private int sleepTimeLeft = 0; + private GUIDialogNotify dialogSleepTimerNotify; + private Action.ActionType actionType; + private RestartOptions restartOption; + private bool shutdownForce = false; + private int sleepTimeMaxium = 120; + private int sleepTimeStep = 10; + private int notifyInterval = 5; + private Timer timerNotify; + private Timer timerShutDown; + + + public MySleepTimer() { + using (MediaPortal.Profile.Settings xmlReader = new MediaPortal.Profile.Settings(Config.GetFile(Config.Dir.Config, "MediaPortal.xml"))) { + actionType = (Action.ActionType)xmlReader.GetValueAsInt("MySleepTimer", "#MySleepTimer.ActionType", (int)(Action.ActionType.ACTION_REMOTE_YELLOW_BUTTON)); + restartOption = (RestartOptions)xmlReader.GetValueAsInt("MySleepTimer", "#MySleepTimer.ShutdownType", (int)RestartOptions.ShutDown); + shutdownForce = xmlReader.GetValueAsBool("MySleepTimer", "#MySleepTimer.ShutdownForce", false); + sleepTimeMaxium = xmlReader.GetValueAsInt("MySleepTimer", "#MySleepTimer.Maximum", 120); + sleepTimeStep = xmlReader.GetValueAsInt("MySleepTimer", "#MySleepTimer.Step", 10); + notifyInterval = xmlReader.GetValueAsInt("MySleepTimer", "#MySleepTimer.NotifyInterval", 5); + } + timerNotify = new Timer(); + timerNotify.Interval = notifyInterval * 60 * 1000; + timerNotify.Tick += new EventHandler(timerNotify_Tick); + timerShutDown = new Timer(); + timerShutDown.Tick += new EventHandler(timerShutDown_Tick); + GUIWindowManager.OnNewAction += new OnActionHandler(GUIWindowManager_OnNewAction); + + } + + void GUIWindowManager_OnNewAction(Action action) { + if (action.wID == actionType) { + if (sleepTimeCurrent == -1) { + sleepTimeCurrent = 0; + try { + string[] shortCurrentRemaining = GUIPropertyManager.GetProperty("#shortcurrentremaining").Split(new char[] { ':' }); + TimeSpan currentRemaining = new TimeSpan(Convert.ToInt16(shortCurrentRemaining[0]), Convert.ToInt16(shortCurrentRemaining[1]), 0); + if ((int)currentRemaining.TotalMinutes != 0) { + SetSleepTime((int)currentRemaining.TotalMinutes + 1, "Sleep in: " + ((int)currentRemaining.TotalMinutes +1) + " min (remaining playtime)"); + base.OnAction(action); + return; + } + } + catch { } + } + sleepTimeCurrent += sleepTimeStep; + if (sleepTimeCurrent > sleepTimeMaxium) { + sleepTimeCurrent = -1; + timerShutDown.Stop(); + timerNotify.Stop(); + ShowNotifyDialog("Sleep Timer stopped!"); + } + else { + SetSleepTime(sleepTimeCurrent); + } + base.OnAction(action); + } + } + + void timerShutDown_Tick(object sender, EventArgs e) { + timerNotify.Stop(); + ShowNotifyDialog("Time's up - Have a good night!"); + WindowsController.ExitWindows(restartOption, shutdownForce, null); + } + + void timerNotify_Tick(object sender, EventArgs e) { + if (timerShutDown.Enabled) { + sleepTimeLeft -= notifyInterval; + if (sleepTimeLeft > 0) { + ShowNotifyDialog("Minutes remaining: " + sleepTimeLeft); + } + } + } + + private void SetSleepTime(int when) { + SetSleepTime(when, null); + } + private void SetSleepTime(int when, string message) { + sleepTimeLeft = when; + timerShutDown.Interval = (int)new TimeSpan(0, when, 0).TotalMilliseconds; + timerShutDown.Start(); + timerNotify.Start(); + if (message == null) { + ShowNotifyDialog("Sleep in: " + sleepTimeCurrent.ToString() + " min"); + } + else { + ShowNotifyDialog(message); + } + } + + private void ShowNotifyDialog(string notifyMessage) { + dialogSleepTimerNotify = (GUIDialogNotify)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_NOTIFY); + dialogSleepTimerNotify.TimeOut = 3; + dialogSleepTimerNotify.SetHeading("MySleepTimer"); + dialogSleepTimerNotify.SetImage(GUIGraphicsContext.Skin + @"\Media\button_shutdown_focus.png"); + dialogSleepTimerNotify.SetText(notifyMessage); + dialogSleepTimerNotify.DoModal(GUIWindowManager.ActiveWindow); + } + + #region ISetupForm Members + + // Returns the name of the plugin which is shown in the plugin menu + public string PluginName() { + return "MySleepTimer"; + } + + // Returns the description of the plugin is shown in the plugin menu + public string Description() { + return "Want MediaPortal to be your sleeping agent of choice? Well, here you go! (but be warned - might be highly addictive!)"; + } + + // Returns the author of the plugin which is shown in the plugin menu + public string Author() { + return "Anthrax"; + } + + // show the setup dialog + public void ShowPlugin() { + new MySleepTimerConfig().ShowDialog(); + } + + // Indicates whether plugin can be enabled/disabled + public bool CanEnable() { + return true; + } + + // Get Windows-ID + public int GetWindowId() { + // WindowID of windowplugin belonging to this setup + // enter your own unique code + return 9876; + } + + // Indicates if plugin is enabled by default; + public bool DefaultEnabled() { + return true; + } + + // indicates if a plugin has it's own setup screen + public bool HasSetup() { + return true; + } + + /// <summary> + /// If the plugin should have it's own button on the main menu of Mediaportal then it + /// should return true to this method, otherwise if it should not be on home + /// it should return false + /// </summary> + /// <param name="strButtonText">text the button should have</param> + /// <param name="strButtonImage">image for the button, or empty for default</param> + /// <param name="strButtonImageFocus">image for the button, or empty for default</param> + /// <param name="strPictureImage">subpicture for the button or empty for none</param> + /// <returns>true : plugin needs it's own button on home + /// false : plugin does not need it's own button on home</returns> + + public bool GetHome(out string strButtonText, out string strButtonImage, + out string strButtonImageFocus, out string strPictureImage) { + strButtonText = PluginName(); + strButtonImage = String.Empty; + strButtonImageFocus = String.Empty; + strPictureImage = String.Empty; + return false; + } + + + #endregion + } +} \ No newline at end of file Added: trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimer.csproj =================================================================== --- trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimer.csproj (rev 0) +++ trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimer.csproj 2009-01-05 20:25:20 UTC (rev 2491) @@ -0,0 +1,81 @@ +<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ProductVersion>8.0.50727</ProductVersion> + <SchemaVersion>2.0</SchemaVersion> + <ProjectGuid>{03856C9E-0926-41DB-A13A-AE3D08285428}</ProjectGuid> + <OutputType>Library</OutputType> + <AppDesignerFolder>Properties</AppDesignerFolder> + <RootNamespace>MySleepTimer</RootNamespace> + <AssemblyName>MySleepTimer</AssemblyName> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <DebugSymbols>false</DebugSymbols> + <DebugType>full</DebugType> + <Optimize>false</Optimize> + <OutputPath>bin\Debug\</OutputPath> + <DefineConstants>DEBUG;TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <DebugType>none</DebugType> + <Optimize>true</Optimize> + <OutputPath>.\</OutputPath> + <DefineConstants>TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <ItemGroup> + <Reference Include="Core, Version=0.9.3.890, Culture=neutral, processorArchitecture=x86"> + <SpecificVersion>False</SpecificVersion> + <HintPath>C:\Programme\Team MediaPortal\MediaPortal\Core.dll</HintPath> + </Reference> + <Reference Include="Dialogs, Version=0.9.3.896, Culture=neutral, processorArchitecture=x86"> + <SpecificVersion>False</SpecificVersion> + <HintPath>C:\Programme\Team MediaPortal\MediaPortal\plugins\Windows\Dialogs.dll</HintPath> + </Reference> + <Reference Include="RemotePlugins, Version=0.9.3.900, Culture=neutral, processorArchitecture=x86"> + <SpecificVersion>False</SpecificVersion> + <HintPath>C:\Programme\Team MediaPortal\MediaPortal\RemotePlugins.dll</HintPath> + </Reference> + <Reference Include="System" /> + <Reference Include="System.Data" /> + <Reference Include="System.Drawing" /> + <Reference Include="System.Windows.Forms" /> + <Reference Include="System.Xml" /> + <Reference Include="Utils, Version=2.2.6.879, Culture=neutral, processorArchitecture=x86"> + <SpecificVersion>False</SpecificVersion> + <HintPath>C:\Programme\Team MediaPortal\MediaPortal\Utils.dll</HintPath> + </Reference> + </ItemGroup> + <ItemGroup> + <Compile Include="MySleepTimer.cs"> + </Compile> + <Compile Include="MySleepTimerConfig.cs"> + <SubType>Form</SubType> + </Compile> + <Compile Include="MySleepTimerConfig.Designer.cs"> + <DependentUpon>MySleepTimerConfig.cs</DependentUpon> + </Compile> + <Compile Include="Properties\AssemblyInfo.cs" /> + </ItemGroup> + <ItemGroup> + <EmbeddedResource Include="MySleepTimerConfig.resx"> + <SubType>Designer</SubType> + <DependentUpon>MySleepTimerConfig.cs</DependentUpon> + </EmbeddedResource> + </ItemGroup> + <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> + <!-- To modify your build process, add your task inside one of the targets below and uncomment it. + Other similar extension points exist, see Microsoft.Common.targets. + <Target Name="BeforeBuild"> + </Target> + <Target Name="AfterBuild"> + </Target> + --> + <PropertyGroup> + <PostBuildEvent>xcopy "$(TargetPath)" "..\..\MySleepTimer\MpiRelease" /Y</PostBuildEvent> + </PropertyGroup> +</Project> \ No newline at end of file Added: trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimerConfig.Designer.cs =================================================================== --- trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimerConfig.Designer.cs (rev 0) +++ trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimerConfig.Designer.cs 2009-01-05 20:25:20 UTC (rev 2491) @@ -0,0 +1,239 @@ +namespace MySleepTimer { + partial class MySleepTimerConfig { + /// <summary> + /// Required designer variable. + /// </summary> + private System.ComponentModel.IContainer components = null; + + /// <summary> + /// Clean up any resources being used. + /// </summary> + /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// <summary> + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// </summary> + private void InitializeComponent() { + this.comboBoxActionType = new System.Windows.Forms.ComboBox(); + this.label1 = new System.Windows.Forms.Label(); + this.numericUpDownSleepTimeMax = new System.Windows.Forms.NumericUpDown(); + this.numericUpDownSleepTimeStep = new System.Windows.Forms.NumericUpDown(); + this.numericUpDownNotifyInterval = new System.Windows.Forms.NumericUpDown(); + this.label32 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.label5 = new System.Windows.Forms.Label(); + this.button1 = new System.Windows.Forms.Button(); + this.label2 = new System.Windows.Forms.Label(); + this.comboBoxShutDownType = new System.Windows.Forms.ComboBox(); + this.checkBoxShutDownForce = new System.Windows.Forms.CheckBox(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDownSleepTimeMax)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDownSleepTimeStep)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDownNotifyInterval)).BeginInit(); + this.SuspendLayout(); + // + // comboBoxActionType + // + this.comboBoxActionType.DropDownWidth = 250; + this.comboBoxActionType.FormattingEnabled = true; + this.comboBoxActionType.Location = new System.Drawing.Point(172, 12); + this.comboBoxActionType.Name = "comboBoxActionType"; + this.comboBoxActionType.Size = new System.Drawing.Size(168, 21); + this.comboBoxActionType.TabIndex = 0; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(12, 15); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(143, 13); + this.label1.TabIndex = 1; + this.label1.Text = "ActionType to set sleep timer"; + // + // numericUpDownSleepTimeMax + // + this.numericUpDownSleepTimeMax.Increment = new decimal(new int[] { + 10, + 0, + 0, + 0}); + this.numericUpDownSleepTimeMax.Location = new System.Drawing.Point(172, 66); + this.numericUpDownSleepTimeMax.Maximum = new decimal(new int[] { + 500, + 0, + 0, + 0}); + this.numericUpDownSleepTimeMax.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.numericUpDownSleepTimeMax.Name = "numericUpDownSleepTimeMax"; + this.numericUpDownSleepTimeMax.Size = new System.Drawing.Size(71, 20); + this.numericUpDownSleepTimeMax.TabIndex = 2; + this.numericUpDownSleepTimeMax.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // numericUpDownSleepTimeStep + // + this.numericUpDownSleepTimeStep.Increment = new decimal(new int[] { + 10, + 0, + 0, + 0}); + this.numericUpDownSleepTimeStep.Location = new System.Drawing.Point(172, 92); + this.numericUpDownSleepTimeStep.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.numericUpDownSleepTimeStep.Name = "numericUpDownSleepTimeStep"; + this.numericUpDownSleepTimeStep.Size = new System.Drawing.Size(71, 20); + this.numericUpDownSleepTimeStep.TabIndex = 3; + this.numericUpDownSleepTimeStep.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // numericUpDownNotifyInterval + // + this.numericUpDownNotifyInterval.Increment = new decimal(new int[] { + 5, + 0, + 0, + 0}); + this.numericUpDownNotifyInterval.Location = new System.Drawing.Point(172, 118); + this.numericUpDownNotifyInterval.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.numericUpDownNotifyInterval.Name = "numericUpDownNotifyInterval"; + this.numericUpDownNotifyInterval.Size = new System.Drawing.Size(71, 20); + this.numericUpDownNotifyInterval.TabIndex = 4; + this.numericUpDownNotifyInterval.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // label32 + // + this.label32.AutoSize = true; + this.label32.Location = new System.Drawing.Point(23, 68); + this.label32.Name = "label32"; + this.label32.Size = new System.Drawing.Size(132, 13); + this.label32.TabIndex = 5; + this.label32.Text = "Sleep time maximum (mins)"; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(41, 94); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(114, 13); + this.label3.TabIndex = 6; + this.label3.Text = "Sleep time steps (mins)"; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point(27, 120); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(128, 13); + this.label5.TabIndex = 8; + this.label5.Text = "Notification Interval (mins)"; + // + // button1 + // + this.button1.Location = new System.Drawing.Point(293, 115); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(47, 23); + this.button1.TabIndex = 9; + this.button1.Text = "OK"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(77, 42); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(78, 13); + this.label2.TabIndex = 11; + this.label2.Text = "Shutdown type"; + // + // comboBoxShutDownType + // + this.comboBoxShutDownType.FormattingEnabled = true; + this.comboBoxShutDownType.Location = new System.Drawing.Point(172, 39); + this.comboBoxShutDownType.Name = "comboBoxShutDownType"; + this.comboBoxShutDownType.Size = new System.Drawing.Size(115, 21); + this.comboBoxShutDownType.TabIndex = 10; + // + // checkBoxShutDownForce + // + this.checkBoxShutDownForce.AutoSize = true; + this.checkBoxShutDownForce.Location = new System.Drawing.Point(293, 41); + this.checkBoxShutDownForce.Name = "checkBoxShutDownForce"; + this.checkBoxShutDownForce.Size = new System.Drawing.Size(50, 17); + this.checkBoxShutDownForce.TabIndex = 12; + this.checkBoxShutDownForce.Text = "force"; + this.checkBoxShutDownForce.UseVisualStyleBackColor = true; + // + // MySleepTimerConfig + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(352, 150); + this.Controls.Add(this.checkBoxShutDownForce); + this.Controls.Add(this.label2); + this.Controls.Add(this.comboBoxShutDownType); + this.Controls.Add(this.button1); + this.Controls.Add(this.label5); + this.Controls.Add(this.label3); + this.Controls.Add(this.label32); + this.Controls.Add(this.numericUpDownNotifyInterval); + this.Controls.Add(this.numericUpDownSleepTimeStep); + this.Controls.Add(this.numericUpDownSleepTimeMax); + this.Controls.Add(this.label1); + this.Controls.Add(this.comboBoxActionType); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.Name = "MySleepTimerConfig"; + this.Text = "MySleepTimer - Configuration"; + ((System.ComponentModel.ISupportInitialize)(this.numericUpDownSleepTimeMax)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDownSleepTimeStep)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDownNotifyInterval)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.ComboBox comboBoxActionType; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.NumericUpDown numericUpDownSleepTimeMax; + private System.Windows.Forms.NumericUpDown numericUpDownSleepTimeStep; + private System.Windows.Forms.NumericUpDown numericUpDownNotifyInterval; + private System.Windows.Forms.Label label32; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.ComboBox comboBoxShutDownType; + private System.Windows.Forms.CheckBox checkBoxShutDownForce; + } +} \ No newline at end of file Added: trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimerConfig.cs =================================================================== --- trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimerConfig.cs (rev 0) +++ trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimerConfig.cs 2009-01-05 20:25:20 UTC (rev 2491) @@ -0,0 +1,146 @@ +#region Copyright (C) 2005-2008 Team MediaPortal + +/* + * Copyright (C) 2005-2008 Team MediaPortal + * http://www.team-mediaportal.com + * + * This Program 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 2, or (at your option) + * any later version. + * + * This Program 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 GNU Make; see the file COPYING. If not, write to + * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + * http://www.gnu.org/copyleft/gpl.html + * + */ +#endregion + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; +using System.Collections; +using MediaPortal.GUI.Library; +using MediaPortal.Configuration; +using MediaPortal.UserInterface.Controls; +using MediaPortal.Util; + + +namespace MySleepTimer { + public partial class MySleepTimerConfig : MPConfigForm { + public MySleepTimerConfig() { + InitializeComponent(); + Load += new EventHandler(MySleepTimerConfig_Load); + + } + + void MySleepTimerConfig_Load(object sender, EventArgs e) { + comboBoxActionType.DataSource = GenerateActionList(); + comboBoxActionType.DisplayMember = "ActionName"; + comboBoxActionType.ValueMember = "ActionID"; + comboBoxShutDownType.DataSource = GenerateShutdownList(); + comboBoxShutDownType.DisplayMember = "ShutdownName"; + comboBoxShutDownType.ValueMember = "ShutdownID"; + + using (MediaPortal.Profile.Settings xmlReader = new MediaPortal.Profile.Settings(Config.GetFile(Config.Dir.Config, "MediaPortal.xml"))) { + comboBoxActionType.SelectedValue = xmlReader.GetValueAsInt("MySleepTimer", "#MySleepTimer.ActionType", (int)(Action.ActionType.ACTION_REMOTE_YELLOW_BUTTON)); + comboBoxShutDownType.SelectedValue = xmlReader.GetValueAsInt("MySleepTimer", "#MySleepTimer.ShutdownType", (int)RestartOptions.ShutDown); + checkBoxShutDownForce.Checked = xmlReader.GetValueAsBool("MySleepTimer", "#MySleepTimer.ShutdownForce", false); + numericUpDownSleepTimeMax.Value = xmlReader.GetValueAsInt("MySleepTimer", "#MySleepTimer.Maximum", 120); + numericUpDownSleepTimeStep.Value = xmlReader.GetValueAsInt("MySleepTimer", "#MySleepTimer.Step", 10); + numericUpDownNotifyInterval.Value = xmlReader.GetValueAsInt("MySleepTimer", "#MySleepTimer.NotifyInterval", 5); + } + } + + private ArrayList GenerateActionList() { + ArrayList ret = new ArrayList(); + string[] names = Enum.GetNames(typeof(Action.ActionType)); + int[] values = (int[])Enum.GetValues(typeof(Action.ActionType)); + for (int i = 0; i < names.Length; i++) { + ret.Add(new ActionEntry(names[i], values[i])); + //MessageBox.Show(String.Format("{0} : {1}",names[i],values[i])); + } + return ret; + } + + private ArrayList GenerateShutdownList() { + ArrayList ret = new ArrayList(); + string[] names = Enum.GetNames(typeof(RestartOptions)); + int[] values = (int[])Enum.GetValues(typeof(RestartOptions)); + for (int i = 0; i < names.Length; i++) { + ret.Add(new ShutdownEntry(names[i], values[i])); + //MessageBox.Show(String.Format("{0} : {1}",names[i],values[i])); + } + return ret; + } + + + private void button1_Click(object sender, EventArgs e) { + // Read configuration settings + using (MediaPortal.Profile.Settings xmlWriter = new MediaPortal.Profile.Settings(Config.GetFile(Config.Dir.Config, "MediaPortal.xml"))) { + xmlWriter.SetValue("MySleepTimer", "#MySleepTimer.ActionType", comboBoxActionType.SelectedValue); + xmlWriter.SetValue("MySleepTimer", "#MySleepTimer.ShutdownType", comboBoxShutDownType.SelectedValue); + xmlWriter.SetValueAsBool("MySleepTimer", "#MySleepTimer.ShutdownForce", checkBoxShutDownForce.Checked); + xmlWriter.SetValue("MySleepTimer", "#MySleepTimer.Maximum", numericUpDownSleepTimeMax.Value.ToString()); + xmlWriter.SetValue("MySleepTimer", "#MySleepTimer.Step", numericUpDownSleepTimeStep.Value.ToString()); + xmlWriter.SetValue("MySleepTimer", "#MySleepTimer.NotifyInterval", numericUpDownNotifyInterval.Value.ToString()); + } + this.Close(); + } + } + + class ActionEntry { + private string actionName; + private int actionID; + + public string ActionName { + get { + return actionName; + } + } + + public int ActionID { + get { + return actionID; + } + } + + public ActionEntry(string Name, int ID) { + + this.actionName = Name; + this.actionID = ID; + } + } + class ShutdownEntry { + private string shutdownName; + private int shutdownID; + + public string ShutdownName { + get { + return shutdownName; + } + } + + public int ShutdownID { + get { + return shutdownID; + } + } + + public ShutdownEntry(string Name, int ID) { + + this.shutdownName = Name; + this.shutdownID = ID; + } + } +} \ No newline at end of file Added: trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimerConfig.resx =================================================================== --- trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimerConfig.resx (rev 0) +++ trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimerConfig.resx 2009-01-05 20:25:20 UTC (rev 2491) @@ -0,0 +1,120 @@ +<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> +</root> \ No newline at end of file Added: trunk/plugins/MySleepTimer/MySleepTimer/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/MySleepTimer/MySleepTimer/Properties/AssemblyInfo.cs (rev 0) +++ trunk/plugins/MySleepTimer/MySleepTimer/Properties/AssemblyInfo.cs 2009-01-05 20:25:20 UTC (rev 2491) @@ -0,0 +1,35 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("MySleepTimer")] +[assembly: AssemblyDescription("MediaPortal Plugin - Sleep Timer")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("private")] +[assembly: AssemblyProduct("MySleepTimer")] +[assembly: AssemblyCopyright("Copyright © 2008")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("216cf21b-9128-47a1-bd0f-33baa87b887... [truncated message content] |
From: <ant...@us...> - 2009-01-05 20:35:19
|
Revision: 2493 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=2493&view=rev Author: anthrax-leprosy Date: 2009-01-05 20:35:11 +0000 (Mon, 05 Jan 2009) Log Message: ----------- Added Paths: ----------- trunk/plugins/MySleepTimer/MpiRelease/MySleepTimer_1.0.1.1.mpi Property Changed: ---------------- trunk/plugins/MySleepTimer/ Property changes on: trunk/plugins/MySleepTimer ___________________________________________________________________ Modified: svn:ignore - *.suo *.Load + *.suo *.Load MySleepTimer_01.png MySleepTimer_02.png MySleepTimer_03.png MySleepTimer_04.png Added: trunk/plugins/MySleepTimer/MpiRelease/MySleepTimer_1.0.1.1.mpi =================================================================== (Binary files differ) Property changes on: trunk/plugins/MySleepTimer/MpiRelease/MySleepTimer_1.0.1.1.mpi ___________________________________________________________________ Added: svn:mime-type + application/octet-stream This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ant...@us...> - 2009-01-07 23:33:46
|
Revision: 2495 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=2495&view=rev Author: anthrax-leprosy Date: 2009-01-07 23:33:39 +0000 (Wed, 07 Jan 2009) Log Message: ----------- Modified Paths: -------------- trunk/plugins/MySleepTimer/MpiRelease/MySleepTimer.xml trunk/plugins/MySleepTimer/MpiRelease/MySleepTimer.xmp trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimer.cs trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimer.csproj trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimerConfig.Designer.cs trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimerConfig.cs Added Paths: ----------- trunk/plugins/MySleepTimer/MpiRelease/MySleepTimer_1.0.2.0.mpi trunk/plugins/MySleepTimer/MpiRelease/MySleepTimer_logo.png trunk/plugins/MySleepTimer/MySleepTimer/img/ trunk/plugins/MySleepTimer/MySleepTimer/img/MySleepTimer_disabled.png trunk/plugins/MySleepTimer/MySleepTimer/img/MySleepTimer_enabled.png Modified: trunk/plugins/MySleepTimer/MpiRelease/MySleepTimer.xml =================================================================== --- trunk/plugins/MySleepTimer/MpiRelease/MySleepTimer.xml 2009-01-07 19:22:45 UTC (rev 2494) +++ trunk/plugins/MySleepTimer/MpiRelease/MySleepTimer.xml 2009-01-07 23:33:39 UTC (rev 2495) @@ -1,11 +1,11 @@ -<MPinstalerS> +<MPinstalerS> <ver>1.00.000</ver> <ExtensionList> <Extension> <FileName>MySleepTimer.mpi</FileName> <Name>MySleepTimer</Name> <URL>http://www.team-mediaportal.com</URL> - <Version>1.0.1.0</Version> + <Version>1.0.2.0</Version> <Author>Anthrax</Author> <Description>Anybody around here using MediaPortal as his/her over-the-counter (but highly addictive) sleeping agent? Modified: trunk/plugins/MySleepTimer/MpiRelease/MySleepTimer.xmp =================================================================== --- trunk/plugins/MySleepTimer/MpiRelease/MySleepTimer.xmp 2009-01-07 19:22:45 UTC (rev 2494) +++ trunk/plugins/MySleepTimer/MpiRelease/MySleepTimer.xmp 2009-01-07 23:33:39 UTC (rev 2495) @@ -8,11 +8,40 @@ <Source>MySleepTimer.dll</Source> <Id>01010</Id> <Option /> - <Guid>091dabbb-9a12-4627-8e08-ebd81816d065</Guid> + <Guid>23cb63ed-b8d8-43c5-8598-84e9c1d88c51</Guid> </File> + <File> + <FileName>MySleepTimer_logo.png</FileName> + <Type>Media</Type> + <SubType>Blue3</SubType> + <Source>MySleepTimer_logo.png</Source> + <Id>02020</Id> + <Option /> + <Guid>58bf71cd-5fe8-46bf-99fe-bd1ac3eca05b</Guid> + </File> + <File> + <FileName>MySleepTimer_logo.png</FileName> + <Type>Media</Type> + <SubType>BlueTwo</SubType> + <Source>MySleepTimer_logo.png</Source> + <Id>02020</Id> + <Option>OutputFileName=MySleepTimer_1.0.2.0|DefaultFile=False|</Option> + <Guid>76bca0d6-143a-417f-ac3f-8284ed3dfdde</Guid> + </File> + <File> + <FileName>MySleepTimer_logo.png</FileName> + <Type>Media</Type> + <SubType>BlueTwo wide</SubType> + <Source>MySleepTimer_logo.png</Source> + <Id>02020</Id> + <Option /> + <Guid>f3505656-f9aa-4bfc-ad4f-deaa363d762f</Guid> + </File> </FileList> <StringList /> - <Actions /> + <Actions> + <Action Place="POSTSETUP" Id="1" Command="MySleepTimer.dll" /> + </Actions> <SetupGroups /> <SetupGroupMappings /> <Option> @@ -21,7 +50,7 @@ <ProiectName>MySleepTimer</ProiectName> <Author>Anthrax</Author> <UpdateURL>http://www.team-mediaportal.com</UpdateURL> - <Version>1.0.1.1</Version> + <Version>1.0.2.0</Version> <Description>Anybody around here using MediaPortal as his/her over-the-counter (but highly addictive) sleeping agent? Well, I sure as heck do @@ -40,7 +69,7 @@ Anthrax</Description> <Group>Automation</Group> <Release>Stable </Release> - <Logo>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</Logo> + <Logo>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... [truncated message content] |
From: <ant...@us...> - 2009-01-08 10:48:04
|
Revision: 2496 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=2496&view=rev Author: anthrax-leprosy Date: 2009-01-08 10:47:59 +0000 (Thu, 08 Jan 2009) Log Message: ----------- Modified Paths: -------------- trunk/plugins/MySleepTimer/MpiRelease/MySleepTimer.xmp trunk/plugins/MySleepTimer/MpiRelease/MySleepTimer_1.0.2.0.mpi trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimer.cs Modified: trunk/plugins/MySleepTimer/MpiRelease/MySleepTimer.xmp =================================================================== --- trunk/plugins/MySleepTimer/MpiRelease/MySleepTimer.xmp 2009-01-07 23:33:39 UTC (rev 2495) +++ trunk/plugins/MySleepTimer/MpiRelease/MySleepTimer.xmp 2009-01-08 10:47:59 UTC (rev 2496) @@ -8,7 +8,7 @@ <Source>MySleepTimer.dll</Source> <Id>01010</Id> <Option /> - <Guid>23cb63ed-b8d8-43c5-8598-84e9c1d88c51</Guid> + <Guid>c15a31e5-e651-4fb8-a866-a36add95f5f2</Guid> </File> <File> <FileName>MySleepTimer_logo.png</FileName> @@ -16,27 +16,9 @@ <SubType>Blue3</SubType> <Source>MySleepTimer_logo.png</Source> <Id>02020</Id> - <Option /> - <Guid>58bf71cd-5fe8-46bf-99fe-bd1ac3eca05b</Guid> + <Option>OutputFileName=|DefaultFile=True|</Option> + <Guid>9eb5ae95-a00d-461e-9cc1-45d3cda5b257</Guid> </File> - <File> - <FileName>MySleepTimer_logo.png</FileName> - <Type>Media</Type> - <SubType>BlueTwo</SubType> - <Source>MySleepTimer_logo.png</Source> - <Id>02020</Id> - <Option>OutputFileName=MySleepTimer_1.0.2.0|DefaultFile=False|</Option> - <Guid>76bca0d6-143a-417f-ac3f-8284ed3dfdde</Guid> - </File> - <File> - <FileName>MySleepTimer_logo.png</FileName> - <Type>Media</Type> - <SubType>BlueTwo wide</SubType> - <Source>MySleepTimer_logo.png</Source> - <Id>02020</Id> - <Option /> - <Guid>f3505656-f9aa-4bfc-ad4f-deaa363d762f</Guid> - </File> </FileList> <StringList /> <Actions> Modified: trunk/plugins/MySleepTimer/MpiRelease/MySleepTimer_1.0.2.0.mpi =================================================================== (Binary files differ) Modified: trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimer.cs =================================================================== --- trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimer.cs 2009-01-07 23:33:39 UTC (rev 2495) +++ trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimer.cs 2009-01-08 10:47:59 UTC (rev 2496) @@ -145,7 +145,7 @@ private void SetTimers(int when, string message) { StopTimers(); notifyCounter = 0; - sleepTimeCurrent += sleepTimeStep; + sleepTimeCurrent += sleepTimeStep; if (when == 0) { try { string[] shortCurrentRemaining = GUIPropertyManager.GetProperty("#shortcurrentremaining").Split(new char[] { ':' }); @@ -157,10 +157,10 @@ return; } } - catch { - SetTimers(sleepTimeCurrent); - return; + catch { } + SetTimers(sleepTimeCurrent); + return; } timerShutDown.Interval = when * 60000; try { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ant...@us...> - 2009-03-17 19:01:55
|
Revision: 2727 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=2727&view=rev Author: anthrax-leprosy Date: 2009-03-17 19:01:23 +0000 (Tue, 17 Mar 2009) Log Message: ----------- Release 1.0.3.0 Modified Paths: -------------- trunk/plugins/MySleepTimer/MpiRelease/MySleepTimer.xmp trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimer.cs trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimer.csproj trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimerConfig.Designer.cs trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimerConfig.cs trunk/plugins/MySleepTimer/MySleepTimer/Properties/AssemblyInfo.cs Added Paths: ----------- trunk/plugins/MySleepTimer/MpiRelease/MySleepTimer_1.0.3.0.mpi Modified: trunk/plugins/MySleepTimer/MpiRelease/MySleepTimer.xmp =================================================================== --- trunk/plugins/MySleepTimer/MpiRelease/MySleepTimer.xmp 2009-03-17 18:47:54 UTC (rev 2726) +++ trunk/plugins/MySleepTimer/MpiRelease/MySleepTimer.xmp 2009-03-17 19:01:23 UTC (rev 2727) @@ -1,4 +1,4 @@ -<MPinstaler> +<MPinstaler> <ver>1.00.000</ver> <FileList> <File> @@ -8,7 +8,7 @@ <Source>MySleepTimer.dll</Source> <Id>01010</Id> <Option /> - <Guid>c15a31e5-e651-4fb8-a866-a36add95f5f2</Guid> + <Guid>5bcd0785-7f02-4c03-a46e-e9b73f8675d0</Guid> </File> <File> <FileName>MySleepTimer_logo.png</FileName> @@ -17,7 +17,7 @@ <Source>MySleepTimer_logo.png</Source> <Id>02020</Id> <Option>OutputFileName=|DefaultFile=True|</Option> - <Guid>9eb5ae95-a00d-461e-9cc1-45d3cda5b257</Guid> + <Guid>dce7d4f2-44a1-4673-9c70-5c4da5a022bf</Guid> </File> </FileList> <StringList /> @@ -28,11 +28,11 @@ <SetupGroupMappings /> <Option> <BuildFileName>MySleepTimer.mpi</BuildFileName> - <ProiectFileName>MySleepTimer.xmp</ProiectFileName> + <ProiectFileName>D:\!Prasse\MySleepTimer\MpiRelease\MySleepTimer.xmp</ProiectFileName> <ProiectName>MySleepTimer</ProiectName> <Author>Anthrax</Author> <UpdateURL>http://www.team-mediaportal.com</UpdateURL> - <Version>1.0.2.0</Version> + <Version>1.0.3.0</Version> <Description>Anybody around here using MediaPortal as his/her over-the-counter (but highly addictive) sleeping agent? Well, I sure as heck do Added: trunk/plugins/MySleepTimer/MpiRelease/MySleepTimer_1.0.3.0.mpi =================================================================== (Binary files differ) Property changes on: trunk/plugins/MySleepTimer/MpiRelease/MySleepTimer_1.0.3.0.mpi ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Modified: trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimer.cs =================================================================== --- trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimer.cs 2009-03-17 18:47:54 UTC (rev 2726) +++ trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimer.cs 2009-03-17 19:01:23 UTC (rev 2727) @@ -26,171 +26,248 @@ using System; using System.Collections.Generic; using System.Text; -using System; using System.Windows.Forms; -using MediaPortal.GUI.Library; using MediaPortal.UserInterface.Controls; using MediaPortal.GUI; +using MediaPortal.GUI.Library; using MediaPortal.Util; using MediaPortal.Dialogs; using MediaPortal.Configuration; + namespace MySleepTimer { - - [PluginIcons("MySleepTimer.img.MySleepTimer_enabled.png", "MySleepTimer.img.MySleepTimer_disabled.png")] public class MySleepTimer : GUIWindow, ISetupForm { + const int SHUTDOWN_CYCLE_MS = 60 * 1000; + const int SHUTDOWN_ANNOUNCE_MS = 3 * 1000; + //timers + private System.Timers.Timer timerShutDown; + private System.Timers.Timer timerAction; + private System.Timers.Timer timerNotify; + //MP + private GUIDialogNotify dialogSleepTimerNotify; + + //globals private int sleepTimeCurrent = 0; - private GUIDialogNotify dialogSleepTimerNotify; - private Action.ActionType actionType; - private RestartOptions restartOption; + private bool timedOut = true; + private bool setByPlay = false; + private bool shutdowning = false; + //settings + private Action.ActionType actionType = Action.ActionType.ACTION_REMOTE_YELLOW_BUTTON; private string sleepBehavior = "Shutdown"; + private RestartOptions restartOption = RestartOptions.ShutDown; private bool shutdownForce = false; - private int sleepTimeMaxium = 120; - private int sleepTimeStep = 10; - private int notifyInterval = 5; - private int notifyBeforeSleep = 3; - private Timer timerNotify; - private Timer timerShutDown; - private System.Timers.Timer timerActionTimeOut; - private bool timedOut = false; - private int notifyCounter = 0; + private int sleepTimeMaxium = 120; //(1..n) + private int sleepTimeStep = 10; //(1..n) + private int actionTimeOutMs = 2 * 1000; //(1..n * 1000) + private int notifyBeforeSleep = 3; //(0..n) + private int notifyInterval = 1; //(1..notifyBeforeSleep) + private int notifyTimeOutMs = 3 * 1000; //(1..65 * 1000) public MySleepTimer() { - timerNotify = new Timer(); - timerNotify.Tick += new EventHandler(timerNotify_Tick); - timerShutDown = new Timer(); - timerShutDown.Tick += new EventHandler(timerShutDown_Tick); - timerActionTimeOut = new System.Timers.Timer(); - timerActionTimeOut.AutoReset = false; - timerActionTimeOut.Elapsed += new System.Timers.ElapsedEventHandler(timerActionTimeOut_Tick); - using (MediaPortal.Profile.Settings xmlReader = new MediaPortal.Profile.Settings(Config.GetFile(Config.Dir.Config, "MediaPortal.xml"))) { - timerActionTimeOut.Interval = xmlReader.GetValueAsInt("MySleepTimer", "#MySleepTimer.ActionTimeOut", 1) * 1000; - actionType = (Action.ActionType)xmlReader.GetValueAsInt("MySleepTimer", "#MySleepTimer.ActionType", (int)(Action.ActionType.ACTION_REMOTE_YELLOW_BUTTON)); - restartOption = (RestartOptions)xmlReader.GetValueAsInt("MySleepTimer", "#MySleepTimer.ShutdownType", (int)RestartOptions.ShutDown); - sleepBehavior = xmlReader.GetValueAsString("MySleepTimer", "#MySleepTimer.SleepBehavior", "Shutdown"); - shutdownForce = xmlReader.GetValueAsBool("MySleepTimer", "#MySleepTimer.ShutdownForce", false); - sleepTimeMaxium = xmlReader.GetValueAsInt("MySleepTimer", "#MySleepTimer.Maximum", 120); - sleepTimeStep = xmlReader.GetValueAsInt("MySleepTimer", "#MySleepTimer.Step", 10); - notifyInterval = xmlReader.GetValueAsInt("MySleepTimer", "#MySleepTimer.NotifyInterval", 1); - notifyBeforeSleep = xmlReader.GetValueAsInt("MySleepTimer", "#MySleepTimer.NotifyBeforeSleep", 3); + try { + timerShutDown = new System.Timers.Timer(); + timerAction = new System.Timers.Timer(); + timerNotify = new System.Timers.Timer(); + //read settings from config + using (MediaPortal.Profile.Settings xmlReader = new MediaPortal.Profile.Settings(Config.GetFile(Config.Dir.Config, "MediaPortal.xml"))) { + actionType = (Action.ActionType)xmlReader.GetValueAsInt("MySleepTimer", "#MySleepTimer.ActionType", (int)(Action.ActionType.ACTION_REMOTE_YELLOW_BUTTON)); + sleepBehavior = xmlReader.GetValueAsString("MySleepTimer", "#MySleepTimer.SleepBehavior", "Shutdown"); + restartOption = (RestartOptions)xmlReader.GetValueAsInt("MySleepTimer", "#MySleepTimer.ShutdownType", (int)RestartOptions.ShutDown); + shutdownForce = xmlReader.GetValueAsBool("MySleepTimer", "#MySleepTimer.ShutdownForce", false); + sleepTimeMaxium = xmlReader.GetValueAsInt("MySleepTimer", "#MySleepTimer.Maximum", 120); + sleepTimeStep = xmlReader.GetValueAsInt("MySleepTimer", "#MySleepTimer.Step", 10); + actionTimeOutMs = xmlReader.GetValueAsInt("MySleepTimer", "#MySleepTimer.ActionTimeOut", 2) * 1000; + notifyBeforeSleep = xmlReader.GetValueAsInt("MySleepTimer", "#MySleepTimer.NotifyBeforeSleep", 3); + notifyInterval = xmlReader.GetValueAsInt("MySleepTimer", "#MySleepTimer.NotifyInterval", 1); + notifyTimeOutMs = xmlReader.GetValueAsInt("MySleepTimer", "#MySleepTimer.NotifyTimeOut", 3) * 1000; + } + //inits + timerShutDown.Interval = SHUTDOWN_CYCLE_MS; + timerShutDown.Elapsed += new System.Timers.ElapsedEventHandler(timerShutDown_Tick); + timerAction.Interval = actionTimeOutMs; + timerAction.AutoReset = false; + timerAction.Elapsed += new System.Timers.ElapsedEventHandler(timerAction_Tick); + timerNotify.Interval = notifyTimeOutMs; + timerNotify.AutoReset = false; + timerNotify.Elapsed += new System.Timers.ElapsedEventHandler(timerNotify_Tick); + GUIWindowManager.OnNewAction += new OnActionHandler(GUIWindowManager_OnNewAction); } - GUIWindowManager.OnNewAction += new OnActionHandler(GUIWindowManager_OnNewAction); + catch (Exception ex) { + //log errors here + } } void GUIWindowManager_OnNewAction(Action action) { - if (action.wID == actionType) { - timerActionTimeOut.Stop(); - if (timerShutDown.Enabled && (timedOut || sleepTimeCurrent >= sleepTimeMaxium)) { - StopTimers(); - sleepTimeCurrent = 0; - ShowNotifyDialog("Sleep Timer stopped!"); + try { + if ((action.wID == actionType) && (!shutdowning)) //action and no shutdown in progress + { + timerAction.Stop(); + timerNotify.Stop(); + if (timedOut && timerShutDown.Enabled) //1st press + { + timedOut = false; + //action + timerAction.Start(); + ShowNotifyDialog(actionTimeOutMs, string.Format("Time left: {0} min", sleepTimeCurrent)); + } + else //additional presses + { + timerShutDown.Stop(); + SetTime(); + if (sleepTimeCurrent > 0) + timerShutDown.Start(); + if ((sleepTimeCurrent > 0) && (sleepTimeCurrent <= notifyBeforeSleep) && ((notifyBeforeSleep - sleepTimeCurrent) % notifyInterval == 0)) //notify + { + timerNotify.Start(); + ShowNotifyDialog(notifyTimeOutMs, null); + } + else //action + { + timerAction.Start(); + ShowNotifyDialog(actionTimeOutMs, null); + } + } + base.OnAction(action); } - else { - SetTimers(sleepTimeCurrent); - timerActionTimeOut.Start(); - } - timedOut = false; - base.OnAction(action); } + catch (Exception ex) { + //log errors here + } } - void timerActionTimeOut_Tick(object sender, EventArgs e) { - timedOut = true; - } - - void timerShutDown_Tick(object sender, EventArgs e) { - StopTimers(); - sleepTimeCurrent = 0; - ShowNotifyDialog("Time's up - Have a good night!"); - switch (sleepBehavior) { - case "Shutdown": - WindowsController.ExitWindows(restartOption, shutdownForce, null); - break; - case "Exit MediaPortal": - Application.Exit(); - break; - case "Show Basic Home": - GUIWindowManager.ActivateWindow((int)Window.WINDOW_HOME, true); - break; - default: - WindowsController.ExitWindows(restartOption, shutdownForce, null); - break; + void timerAction_Tick(object sender, EventArgs e) { + try { + timedOut = true; + setByPlay = false; //reset play flag + //will stop after tick (AutoReset = false) } + catch (Exception ex) { + //log errors here + } } void timerNotify_Tick(object sender, EventArgs e) { - if (timerNotify.Interval != notifyInterval * 60000) { - notifyCounter = timerNotify.Interval; - timerNotify.Stop(); - timerNotify.Interval = notifyInterval * 60000; - timerNotify.Start(); + try { + timedOut = true; + //will stop after tick (AutoReset = false) } - else { - notifyCounter += notifyInterval; - ShowNotifyDialog("Minutes remaining: " + ((timerShutDown.Interval / 60000) - notifyCounter)); + catch (Exception ex) { + //log errors here } } - private void StopTimers() { - timerNotify.Stop(); - timerShutDown.Stop(); + void timerShutDown_Tick(object sender, EventArgs e) { + try { + if (sleepTimeCurrent > 0) { + sleepTimeCurrent -= 1; + if (sleepTimeCurrent == 0) //shutdown + { + shutdowning = true; //to block action + timerShutDown.Stop(); + timerAction.Stop(); + timerNotify.Stop(); + ShowNotifyDialog(SHUTDOWN_ANNOUNCE_MS, "Time's up - Have a good night !"); + //reset globals + sleepTimeCurrent = 0; + timedOut = true; + setByPlay = false; + shutdowning = false; + switch (sleepBehavior) { + case "Shutdown": + WindowsController.ExitWindows(restartOption, shutdownForce, null); + break; + case "Exit MediaPortal": + Application.Exit(); + break; + case "Show Basic Home": + GUIWindowManager.ActivateWindow((int)Window.WINDOW_HOME, true); + break; + default: + WindowsController.ExitWindows(restartOption, shutdownForce, null); + break; + } + } + else if ((sleepTimeCurrent <= notifyBeforeSleep) && ((notifyBeforeSleep - sleepTimeCurrent) % notifyInterval == 0)) //notify + { + timerAction.Stop(); + timerNotify.Stop(); + timedOut = false; //simulate 1st press - with reset by notify timer + timerNotify.Start(); + ShowNotifyDialog(notifyTimeOutMs, null); + } + } + } + catch (Exception ex) { + //log errors here + } } - private void SetTimers(int when) { - SetTimers(when, null); - } - - private void SetTimers(int when, string message) { - StopTimers(); - notifyCounter = 0; - sleepTimeCurrent += sleepTimeStep; - if (when == 0) { + private void SetTime() { + try { + //get remaining playtime (if any) + int totalMinutes = 0; try { + //TO DO - add additional test here - to detect if some video play is realy in progress string[] shortCurrentRemaining = GUIPropertyManager.GetProperty("#shortcurrentremaining").Split(new char[] { ':' }); - TimeSpan currentRemaining = new TimeSpan(Convert.ToInt16(shortCurrentRemaining[0]), Convert.ToInt16(shortCurrentRemaining[1]), 0); - if ((int)currentRemaining.TotalMinutes != 0) { - when = (int)currentRemaining.TotalMinutes + 1; - message = "Sleep in: " + ((int)currentRemaining.TotalMinutes + 1) + " min (remaining playtime)"; - SetTimers(when, message); - return; - } + totalMinutes = (int.Parse(shortCurrentRemaining[0]) * 60) + int.Parse(shortCurrentRemaining[1]); } - catch { + catch { } + + if ((totalMinutes != 0) && (sleepTimeCurrent == 0)) { + //play and additional press from "stopped" + sleepTimeCurrent = totalMinutes + 1; + setByPlay = true; //set play flag } - SetTimers(sleepTimeCurrent); - return; + else { + //other additional presses + if ((totalMinutes != 0) && (setByPlay)) { + //play and 2nd additional press + sleepTimeCurrent = 0; //prepare for standard increment + } + setByPlay = false; //reset play flag + //standard increment + sleepTimeCurrent += sleepTimeStep; + sleepTimeCurrent = (sleepTimeCurrent / sleepTimeStep) * sleepTimeStep; //normalize + if (sleepTimeCurrent > sleepTimeMaxium) + sleepTimeCurrent = 0; //overflowed; let timer be stopped + } } - timerShutDown.Interval = when * 60000; + catch (Exception ex) { + //log errors here + } + } + + private void ShowNotifyDialog(int timeOut, string notifyMessage) { try { - timerNotify.Interval = timerShutDown.Interval - (notifyBeforeSleep * 60000); + timeOut /= 1000; //to seconds + //construct message if empty + if (notifyMessage == null) { + if (sleepTimeCurrent > 0) //running + { + if (setByPlay) //play + notifyMessage = string.Format("Sleep in: {0} min (remaining playtime)", sleepTimeCurrent); + else //standard + notifyMessage = string.Format("Sleep in: {0} min", sleepTimeCurrent); + } + else //stopped + notifyMessage = "Sleep Timer stopped !"; + } + + //show + dialogSleepTimerNotify = (GUIDialogNotify)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_NOTIFY); + dialogSleepTimerNotify.TimeOut = timeOut; + dialogSleepTimerNotify.SetImage(GUIGraphicsContext.Skin + @"\Media\MySleepTimer_logo.png"); + dialogSleepTimerNotify.SetHeading("MySleepTimer"); + dialogSleepTimerNotify.SetText(notifyMessage); + dialogSleepTimerNotify.DoModal(GUIWindowManager.ActiveWindow); } - catch { - timerNotify.Interval = notifyInterval * 60000; + catch (Exception ex) { + //log errors here } - timerNotify.Start(); - timerShutDown.Start(); - if (message == null) { - ShowNotifyDialog("Sleep in: " + when + " min"); - } - else { - ShowNotifyDialog(message); - } - message = null; - - } - private void ShowNotifyDialog(string notifyMessage) { - dialogSleepTimerNotify = (GUIDialogNotify)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_NOTIFY); - dialogSleepTimerNotify.TimeOut = 2; - dialogSleepTimerNotify.SetImage(GUIGraphicsContext.Skin + @"\Media\MySleepTimer_logo.png"); - dialogSleepTimerNotify.SetHeading("MySleepTimer"); - dialogSleepTimerNotify.SetText(notifyMessage); - dialogSleepTimerNotify.DoModal(GUIWindowManager.ActiveWindow); - } - #region ISetupForm Members // Returns the name of the plugin which is shown in the plugin menu Modified: trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimer.csproj =================================================================== --- trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimer.csproj 2009-03-17 18:47:54 UTC (rev 2726) +++ trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimer.csproj 2009-03-17 19:01:23 UTC (rev 2727) @@ -1,4 +1,4 @@ -<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> +<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5"> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> @@ -9,6 +9,26 @@ <AppDesignerFolder>Properties</AppDesignerFolder> <RootNamespace>MySleepTimer</RootNamespace> <AssemblyName>MySleepTimer</AssemblyName> + <FileUpgradeFlags> + </FileUpgradeFlags> + <OldToolsVersion>2.0</OldToolsVersion> + <UpgradeBackupLocation> + </UpgradeBackupLocation> + <PublishUrl>publish\</PublishUrl> + <Install>true</Install> + <InstallFrom>Disk</InstallFrom> + <UpdateEnabled>false</UpdateEnabled> + <UpdateMode>Foreground</UpdateMode> + <UpdateInterval>7</UpdateInterval> + <UpdateIntervalUnits>Days</UpdateIntervalUnits> + <UpdatePeriodically>false</UpdatePeriodically> + <UpdateRequired>false</UpdateRequired> + <MapFileExtensions>true</MapFileExtensions> + <ApplicationRevision>0</ApplicationRevision> + <ApplicationVersion>1.0.0.%2a</ApplicationVersion> + <IsWebBootstrapper>false</IsWebBootstrapper> + <UseApplicationTrust>false</UseApplicationTrust> + <BootstrapperEnabled>true</BootstrapperEnabled> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <DebugSymbols>false</DebugSymbols> @@ -18,6 +38,7 @@ <DefineConstants>DEBUG;TRACE</DefineConstants> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> + <UseVSHostingProcess>false</UseVSHostingProcess> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <DebugType>none</DebugType> @@ -26,26 +47,23 @@ <DefineConstants>TRACE</DefineConstants> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> + <UseVSHostingProcess>false</UseVSHostingProcess> </PropertyGroup> <ItemGroup> - <Reference Include="Core, Version=0.9.3.890, Culture=neutral, processorArchitecture=x86"> + <Reference Include="Core, Version=1.0.0.29788, Culture=neutral, processorArchitecture=x86"> <SpecificVersion>False</SpecificVersion> <HintPath>C:\Programme\Team MediaPortal\MediaPortal\Core.dll</HintPath> </Reference> - <Reference Include="Dialogs, Version=0.9.3.896, Culture=neutral, processorArchitecture=x86"> + <Reference Include="Dialogs, Version=1.0.0.29798, Culture=neutral, processorArchitecture=x86"> <SpecificVersion>False</SpecificVersion> <HintPath>C:\Programme\Team MediaPortal\MediaPortal\plugins\Windows\Dialogs.dll</HintPath> </Reference> - <Reference Include="RemotePlugins, Version=0.9.3.900, Culture=neutral, processorArchitecture=x86"> - <SpecificVersion>False</SpecificVersion> - <HintPath>C:\Programme\Team MediaPortal\MediaPortal\RemotePlugins.dll</HintPath> - </Reference> <Reference Include="System" /> <Reference Include="System.Data" /> <Reference Include="System.Drawing" /> <Reference Include="System.Windows.Forms" /> <Reference Include="System.Xml" /> - <Reference Include="Utils, Version=2.2.6.879, Culture=neutral, processorArchitecture=x86"> + <Reference Include="Utils, Version=2.2.6.29782, Culture=neutral, processorArchitecture=x86"> <SpecificVersion>False</SpecificVersion> <HintPath>C:\Programme\Team MediaPortal\MediaPortal\Utils.dll</HintPath> </Reference> @@ -71,6 +89,23 @@ <EmbeddedResource Include="img\MySleepTimer_disabled.png" /> <EmbeddedResource Include="img\MySleepTimer_enabled.png" /> </ItemGroup> + <ItemGroup> + <BootstrapperPackage Include="Microsoft.Net.Framework.2.0"> + <Visible>False</Visible> + <ProductName>.NET Framework 2.0 %28x86%29</ProductName> + <Install>true</Install> + </BootstrapperPackage> + <BootstrapperPackage Include="Microsoft.Net.Framework.3.0"> + <Visible>False</Visible> + <ProductName>.NET Framework 3.0 %28x86%29</ProductName> + <Install>false</Install> + </BootstrapperPackage> + <BootstrapperPackage Include="Microsoft.Net.Framework.3.5"> + <Visible>False</Visible> + <ProductName>.NET Framework 3.5</ProductName> + <Install>false</Install> + </BootstrapperPackage> + </ItemGroup> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. Other similar extension points exist, see Microsoft.Common.targets. @@ -80,7 +115,7 @@ </Target> --> <PropertyGroup> - <PostBuildEvent>xcopy "$(TargetPath)" "..\..\..\MpiRelease" /Y -xcopy "$(TargetPath)" "C:\Programme\Team MediaPortal\MediaPortal\plugins\Windows" /Y</PostBuildEvent> + <PostBuildEvent>REM xcopy "$(TargetPath)" "..\..\..\MpiRelease" /Y +REM xcopy "$(TargetPath)" "C:\Programme\Team MediaPortal\MediaPortal\plugins\Windows" /Y</PostBuildEvent> </PropertyGroup> </Project> \ No newline at end of file Modified: trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimerConfig.Designer.cs =================================================================== --- trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimerConfig.Designer.cs 2009-03-17 18:47:54 UTC (rev 2726) +++ trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimerConfig.Designer.cs 2009-03-17 19:01:23 UTC (rev 2727) @@ -28,24 +28,27 @@ this.numericUpDownSleepTimeMax = new System.Windows.Forms.NumericUpDown(); this.numericUpDownSleepTimeStep = new System.Windows.Forms.NumericUpDown(); this.numericUpDownNotifyInterval = new System.Windows.Forms.NumericUpDown(); - this.label32 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.label5 = new System.Windows.Forms.Label(); + this.label8 = new System.Windows.Forms.Label(); + this.buttonOK = new System.Windows.Forms.Button(); this.label3 = new System.Windows.Forms.Label(); - this.label5 = new System.Windows.Forms.Label(); - this.button1 = new System.Windows.Forms.Button(); - this.label2 = new System.Windows.Forms.Label(); this.comboBoxShutDownType = new System.Windows.Forms.ComboBox(); this.checkBoxShutDownForce = new System.Windows.Forms.CheckBox(); - this.label4 = new System.Windows.Forms.Label(); + this.label7 = new System.Windows.Forms.Label(); this.numericUpDownNotifyBeforeSleep = new System.Windows.Forms.NumericUpDown(); + this.label2 = new System.Windows.Forms.Label(); + this.comboBoxSleepBehavior = new System.Windows.Forms.ComboBox(); this.label6 = new System.Windows.Forms.Label(); - this.comboBoxSleepBehavior = new System.Windows.Forms.ComboBox(); - this.label7 = new System.Windows.Forms.Label(); - this.numericUpDownTimeOut = new System.Windows.Forms.NumericUpDown(); + this.numericUpDownTimeOutB = new System.Windows.Forms.NumericUpDown(); + this.label9 = new System.Windows.Forms.Label(); + this.numericUpDownTimeOutN = new System.Windows.Forms.NumericUpDown(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDownSleepTimeMax)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDownSleepTimeStep)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDownNotifyInterval)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDownNotifyBeforeSleep)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDownTimeOut)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDownTimeOutB)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDownTimeOutN)).BeginInit(); this.SuspendLayout(); // // comboBoxActionType @@ -55,7 +58,7 @@ this.comboBoxActionType.Location = new System.Drawing.Point(169, 6); this.comboBoxActionType.Name = "comboBoxActionType"; this.comboBoxActionType.Size = new System.Drawing.Size(168, 21); - this.comboBoxActionType.TabIndex = 0; + this.comboBoxActionType.TabIndex = 5; // // label1 // @@ -63,7 +66,7 @@ this.label1.Location = new System.Drawing.Point(12, 9); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(146, 13); - this.label1.TabIndex = 1; + this.label1.TabIndex = 0; this.label1.Text = "ActionType to set sleep timer:"; // // numericUpDownSleepTimeMax @@ -75,7 +78,7 @@ 0}); this.numericUpDownSleepTimeMax.Location = new System.Drawing.Point(169, 87); this.numericUpDownSleepTimeMax.Maximum = new decimal(new int[] { - 500, + 1440, 0, 0, 0}); @@ -86,7 +89,7 @@ 0}); this.numericUpDownSleepTimeMax.Name = "numericUpDownSleepTimeMax"; this.numericUpDownSleepTimeMax.Size = new System.Drawing.Size(71, 20); - this.numericUpDownSleepTimeMax.TabIndex = 2; + this.numericUpDownSleepTimeMax.TabIndex = 25; this.numericUpDownSleepTimeMax.Value = new decimal(new int[] { 1, 0, @@ -95,11 +98,6 @@ // // numericUpDownSleepTimeStep // - this.numericUpDownSleepTimeStep.Increment = new decimal(new int[] { - 10, - 0, - 0, - 0}); this.numericUpDownSleepTimeStep.Location = new System.Drawing.Point(169, 113); this.numericUpDownSleepTimeStep.Minimum = new decimal(new int[] { 1, @@ -108,7 +106,7 @@ 0}); this.numericUpDownSleepTimeStep.Name = "numericUpDownSleepTimeStep"; this.numericUpDownSleepTimeStep.Size = new System.Drawing.Size(71, 20); - this.numericUpDownSleepTimeStep.TabIndex = 3; + this.numericUpDownSleepTimeStep.TabIndex = 30; this.numericUpDownSleepTimeStep.Value = new decimal(new int[] { 1, 0, @@ -117,7 +115,7 @@ // // numericUpDownNotifyInterval // - this.numericUpDownNotifyInterval.Location = new System.Drawing.Point(169, 165); + this.numericUpDownNotifyInterval.Location = new System.Drawing.Point(169, 191); this.numericUpDownNotifyInterval.Minimum = new decimal(new int[] { 1, 0, @@ -125,66 +123,67 @@ 0}); this.numericUpDownNotifyInterval.Name = "numericUpDownNotifyInterval"; this.numericUpDownNotifyInterval.Size = new System.Drawing.Size(71, 20); - this.numericUpDownNotifyInterval.TabIndex = 4; + this.numericUpDownNotifyInterval.TabIndex = 45; this.numericUpDownNotifyInterval.Value = new decimal(new int[] { 1, 0, 0, 0}); + this.numericUpDownNotifyInterval.ValueChanged += new System.EventHandler(this.numericUpDownNotifyInterval_ValueChanged); // - // label32 + // label4 // - this.label32.AutoSize = true; - this.label32.Location = new System.Drawing.Point(53, 89); - this.label32.Name = "label32"; - this.label32.Size = new System.Drawing.Size(105, 13); - this.label32.TabIndex = 5; - this.label32.Text = "Sleep time maximum:"; + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(53, 89); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(105, 13); + this.label4.TabIndex = 0; + this.label4.Text = "Sleep time maximum:"; // - // label3 - // - this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point(71, 115); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(87, 13); - this.label3.TabIndex = 6; - this.label3.Text = "Sleep time steps:"; - // // label5 // this.label5.AutoSize = true; - this.label5.Location = new System.Drawing.Point(57, 167); + this.label5.Location = new System.Drawing.Point(71, 115); this.label5.Name = "label5"; - this.label5.Size = new System.Drawing.Size(101, 13); - this.label5.TabIndex = 8; - this.label5.Text = "Notification Interval:"; + this.label5.Size = new System.Drawing.Size(87, 13); + this.label5.TabIndex = 0; + this.label5.Text = "Sleep time steps:"; // - // button1 + // label8 // - this.button1.Location = new System.Drawing.Point(290, 188); - this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(47, 23); - this.button1.TabIndex = 9; - this.button1.Text = "OK"; - this.button1.UseVisualStyleBackColor = true; - this.button1.Click += new System.EventHandler(this.button1_Click); + this.label8.AutoSize = true; + this.label8.Location = new System.Drawing.Point(57, 193); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(101, 13); + this.label8.TabIndex = 0; + this.label8.Text = "Notification Interval:"; // - // label2 + // buttonOK // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(77, 63); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(81, 13); - this.label2.TabIndex = 11; - this.label2.Text = "Shutdown type:"; + this.buttonOK.Location = new System.Drawing.Point(290, 214); + this.buttonOK.Name = "buttonOK"; + this.buttonOK.Size = new System.Drawing.Size(47, 23); + this.buttonOK.TabIndex = 55; + this.buttonOK.Text = "OK"; + this.buttonOK.UseVisualStyleBackColor = true; + this.buttonOK.Click += new System.EventHandler(this.button1_Click); // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(77, 63); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(81, 13); + this.label3.TabIndex = 0; + this.label3.Text = "Shutdown type:"; + // // comboBoxShutDownType // this.comboBoxShutDownType.FormattingEnabled = true; this.comboBoxShutDownType.Location = new System.Drawing.Point(169, 60); this.comboBoxShutDownType.Name = "comboBoxShutDownType"; this.comboBoxShutDownType.Size = new System.Drawing.Size(115, 21); - this.comboBoxShutDownType.TabIndex = 10; + this.comboBoxShutDownType.TabIndex = 15; // // checkBoxShutDownForce // @@ -192,44 +191,35 @@ this.checkBoxShutDownForce.Location = new System.Drawing.Point(290, 62); this.checkBoxShutDownForce.Name = "checkBoxShutDownForce"; this.checkBoxShutDownForce.Size = new System.Drawing.Size(50, 17); - this.checkBoxShutDownForce.TabIndex = 12; + this.checkBoxShutDownForce.TabIndex = 20; this.checkBoxShutDownForce.Text = "force"; this.checkBoxShutDownForce.UseVisualStyleBackColor = true; // - // label4 + // label7 // - this.label4.AutoSize = true; - this.label4.Location = new System.Drawing.Point(9, 141); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(149, 13); - this.label4.TabIndex = 14; - this.label4.Text = "Start notification prior to sleep:"; + this.label7.AutoSize = true; + this.label7.Location = new System.Drawing.Point(9, 167); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(149, 13); + this.label7.TabIndex = 0; + this.label7.Text = "Start notification prior to sleep:"; // // numericUpDownNotifyBeforeSleep // - this.numericUpDownNotifyBeforeSleep.Location = new System.Drawing.Point(169, 139); - this.numericUpDownNotifyBeforeSleep.Minimum = new decimal(new int[] { - 1, - 0, - 0, - 0}); + this.numericUpDownNotifyBeforeSleep.Location = new System.Drawing.Point(169, 165); this.numericUpDownNotifyBeforeSleep.Name = "numericUpDownNotifyBeforeSleep"; this.numericUpDownNotifyBeforeSleep.Size = new System.Drawing.Size(71, 20); - this.numericUpDownNotifyBeforeSleep.TabIndex = 13; - this.numericUpDownNotifyBeforeSleep.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); + this.numericUpDownNotifyBeforeSleep.TabIndex = 40; + this.numericUpDownNotifyBeforeSleep.ValueChanged += new System.EventHandler(this.numericUpDownNotifyBeforeSleep_ValueChanged); // - // label6 + // label2 // - this.label6.AutoSize = true; - this.label6.Location = new System.Drawing.Point(77, 35); - this.label6.Name = "label6"; - this.label6.Size = new System.Drawing.Size(81, 13); - this.label6.TabIndex = 18; - this.label6.Text = "Sleep behavior:"; + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(77, 35); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(81, 13); + this.label2.TabIndex = 0; + this.label2.Text = "Sleep behavior:"; // // comboBoxSleepBehavior // @@ -243,52 +233,86 @@ this.comboBoxSleepBehavior.Location = new System.Drawing.Point(169, 33); this.comboBoxSleepBehavior.Name = "comboBoxSleepBehavior"; this.comboBoxSleepBehavior.Size = new System.Drawing.Size(168, 21); - this.comboBoxSleepBehavior.TabIndex = 19; + this.comboBoxSleepBehavior.TabIndex = 10; + this.comboBoxSleepBehavior.SelectedIndexChanged += new System.EventHandler(this.comboBoxSleepBehavior_SelectedIndexChanged); // - // label7 + // label6 // - this.label7.AutoSize = true; - this.label7.Location = new System.Drawing.Point(74, 193); - this.label7.Name = "label7"; - this.label7.Size = new System.Drawing.Size(84, 13); - this.label7.TabIndex = 21; - this.label7.Text = "Button TimeOut:"; + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point(60, 141); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(98, 13); + this.label6.TabIndex = 0; + this.label6.Text = "Button TimeOut [s]:"; // - // numericUpDownTimeOut + // numericUpDownTimeOutB // - this.numericUpDownTimeOut.Location = new System.Drawing.Point(169, 191); - this.numericUpDownTimeOut.Minimum = new decimal(new int[] { + this.numericUpDownTimeOutB.Location = new System.Drawing.Point(169, 139); + this.numericUpDownTimeOutB.Minimum = new decimal(new int[] { 1, 0, 0, 0}); - this.numericUpDownTimeOut.Name = "numericUpDownTimeOut"; - this.numericUpDownTimeOut.Size = new System.Drawing.Size(71, 20); - this.numericUpDownTimeOut.TabIndex = 20; - this.numericUpDownTimeOut.Value = new decimal(new int[] { + this.numericUpDownTimeOutB.Name = "numericUpDownTimeOutB"; + this.numericUpDownTimeOutB.Size = new System.Drawing.Size(71, 20); + this.numericUpDownTimeOutB.TabIndex = 35; + this.numericUpDownTimeOutB.Value = new decimal(new int[] { 1, 0, 0, 0}); // + // label9 + // + this.label9.AutoSize = true; + this.label9.Location = new System.Drawing.Point(38, 219); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(120, 13); + this.label9.TabIndex = 0; + this.label9.Text = "Notification TimeOut [s]:"; + // + // numericUpDownTimeOutN + // + this.numericUpDownTimeOutN.Location = new System.Drawing.Point(169, 217); + this.numericUpDownTimeOutN.Maximum = new decimal(new int[] { + 65, + 0, + 0, + 0}); + this.numericUpDownTimeOutN.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.numericUpDownTimeOutN.Name = "numericUpDownTimeOutN"; + this.numericUpDownTimeOutN.Size = new System.Drawing.Size(71, 20); + this.numericUpDownTimeOutN.TabIndex = 50; + this.numericUpDownTimeOutN.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // // MySleepTimerConfig // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(348, 222); + this.ClientSize = new System.Drawing.Size(348, 243); + this.Controls.Add(this.label9); + this.Controls.Add(this.numericUpDownTimeOutN); + this.Controls.Add(this.label6); + this.Controls.Add(this.numericUpDownTimeOutB); + this.Controls.Add(this.comboBoxSleepBehavior); + this.Controls.Add(this.label2); this.Controls.Add(this.label7); - this.Controls.Add(this.numericUpDownTimeOut); - this.Controls.Add(this.comboBoxSleepBehavior); - this.Controls.Add(this.label6); - this.Controls.Add(this.label4); this.Controls.Add(this.numericUpDownNotifyBeforeSleep); this.Controls.Add(this.checkBoxShutDownForce); - this.Controls.Add(this.label2); + this.Controls.Add(this.label3); this.Controls.Add(this.comboBoxShutDownType); - this.Controls.Add(this.button1); + this.Controls.Add(this.buttonOK); + this.Controls.Add(this.label8); this.Controls.Add(this.label5); - this.Controls.Add(this.label3); - this.Controls.Add(this.label32); + this.Controls.Add(this.label4); this.Controls.Add(this.numericUpDownNotifyInterval); this.Controls.Add(this.numericUpDownSleepTimeStep); this.Controls.Add(this.numericUpDownSleepTimeMax); @@ -301,7 +325,8 @@ ((System.ComponentModel.ISupportInitialize)(this.numericUpDownSleepTimeStep)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDownNotifyInterval)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDownNotifyBeforeSleep)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDownTimeOut)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDownTimeOutB)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDownTimeOutN)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); @@ -314,18 +339,20 @@ private System.Windows.Forms.NumericUpDown numericUpDownSleepTimeMax; private System.Windows.Forms.NumericUpDown numericUpDownSleepTimeStep; private System.Windows.Forms.NumericUpDown numericUpDownNotifyInterval; - private System.Windows.Forms.Label label32; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.Button buttonOK; private System.Windows.Forms.Label label3; - private System.Windows.Forms.Label label5; - private System.Windows.Forms.Button button1; - private System.Windows.Forms.Label label2; private System.Windows.Forms.ComboBox comboBoxShutDownType; private System.Windows.Forms.CheckBox checkBoxShutDownForce; - private System.Windows.Forms.Label label4; + private System.Windows.Forms.Label label7; private System.Windows.Forms.NumericUpDown numericUpDownNotifyBeforeSleep; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.ComboBox comboBoxSleepBehavior; private System.Windows.Forms.Label label6; - private System.Windows.Forms.ComboBox comboBoxSleepBehavior; - private System.Windows.Forms.Label label7; - private System.Windows.Forms.NumericUpDown numericUpDownTimeOut; + private System.Windows.Forms.NumericUpDown numericUpDownTimeOutB; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.NumericUpDown numericUpDownTimeOutN; } } \ No newline at end of file Modified: trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimerConfig.cs =================================================================== --- trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimerConfig.cs 2009-03-17 18:47:54 UTC (rev 2726) +++ trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimerConfig.cs 2009-03-17 19:01:23 UTC (rev 2727) @@ -36,73 +36,211 @@ using MediaPortal.Util; -namespace MySleepTimer { +namespace MySleepTimer +{ public partial class MySleepTimerConfig : MPConfigForm { - public MySleepTimerConfig() { - InitializeComponent(); - Load += new EventHandler(MySleepTimerConfig_Load); + public MySleepTimerConfig() + { + try + { + InitializeComponent(); + Load += new EventHandler(MySleepTimerConfig_Load); + } + catch (Exception ex) + { + //log errors here + } + } + void MySleepTimerConfig_Load(object sender, EventArgs e) + { + try + { + comboBoxActionType.DataSource = GenerateActionList(); + comboBoxActionType.DisplayMember = "ActionName"; + comboBoxActionType.ValueMember = "ActionID"; + comboBoxShutDownType.DataSource = GenerateShutdownList(); + comboBoxShutDownType.DisplayMember = "ShutdownName"; + comboBoxShutDownType.ValueMember = "ShutdownID"; + + using (MediaPortal.Profile.Settings xmlReader = new MediaPortal.Profile.Settings(Config.GetFile(Config.Dir.Config, "MediaPortal.xml"))) + { + comboBoxActionType.SelectedValue = xmlReader.GetValueAsInt("MySleepTimer", "#MySleepTimer.ActionType", (int)(Action.ActionType.ACTION_REMOTE_YELLOW_BUTTON)); + comboBoxSleepBehavior.Text = xmlReader.GetValueAsString("MySleepTimer", "#MySleepTimer.SleepBehavior", "Shutdown"); + comboBoxShutDownType.SelectedValue = xmlReader.GetValueAsInt("MySleepTimer", "#MySleepTimer.ShutdownType", (int)RestartOptions.ShutDown); + checkBoxShutDownForce.Checked = xmlReader.GetValueAsBool("MySleepTimer", "#MySleepTimer.ShutdownForce", false); + numericUpDownSleepTimeMax.Value = xmlReader.GetValueAsInt("MySleepTimer", "#MySleepTimer.Maximum", 120); + numericUpDownSleepTimeStep.Value = xmlReader.GetValueAsInt("MySleepTimer", "#MySleepTimer.Step", 10); + numericUpDownTimeOutB.Value = xmlReader.GetValueAsInt("MySleepTimer", "#MySleepTimer.ActionTimeOut", 2); + numericUpDownNotifyBeforeSleep.Value = xmlReader.GetValueAsInt("MySleepTimer", "#MySleepTimer.NotifyBeforeSleep", 3); + numericUpDownNotifyInterval.Value = xmlReader.GetValueAsInt("MySleepTimer", "#MySleepTimer.NotifyInterval", 1); + numericUpDownTimeOutN.Value = xmlReader.GetValueAsInt("MySleepTimer", "#MySleepTimer.NotifyTimeOut", 3); + } + + SetUpShutDownTypeControls(); + SetUpNotifyControls(); + } + catch (Exception ex) + { + //log errors here + } } - void MySleepTimerConfig_Load(object sender, EventArgs e) { - comboBoxActionType.DataSource = GenerateActionList(); - comboBoxActionType.DisplayMember = "ActionName"; - comboBoxActionType.ValueMember = "ActionID"; - comboBoxShutDownType.DataSource = GenerateShutdownList(); - comboBoxShutDownType.DisplayMember = "ShutdownName"; - comboBoxShutDownType.ValueMember = "ShutdownID"; + private void comboBoxSleepBehavior_SelectedIndexChanged(object sender, EventArgs e) + { + try + { + SetUpShutDownTypeControls(); + } + catch (Exception ex) + { + //log errors here + } + } - using (MediaPortal.Profile.Settings xmlReader = new MediaPortal.Profile.Settings(Config.GetFile(Config.Dir.Config, "MediaPortal.xml"))) { - comboBoxActionType.SelectedValue = xmlReader.GetValueAsInt("MySleepTimer", "#MySleepTimer.ActionType", (int)(Action.ActionType.ACTION_REMOTE_YELLOW_BUTTON)); - comboBoxShutDownType.SelectedValue = xmlReader.GetValueAsInt("MySleepTimer", "#MySleepTimer.ShutdownType", (int)RestartOptions.ShutDown); - comboBoxSleepBehavior.Text = xmlReader.GetValueAsString("MySleepTimer", "#MySleepTimer.SleepBehavior", "Shutdown"); - checkBoxShutDownForce.Checked = xmlReader.GetValueAsBool("MySleepTimer", "#MySleepTimer.ShutdownForce", false); - numericUpDownSleepTimeMax.Value = xmlReader.GetValueAsInt("MySleepTimer", "#MySleepTimer.Maximum", 120); - numericUpDownSleepTimeStep.Value = xmlReader.GetValueAsInt("MySleepTimer", "#MySleepTimer.Step", 10); - numericUpDownNotifyInterval.Value = xmlReader.GetValueAsInt("MySleepTimer", "#MySleepTimer.NotifyInterval", 1); - numericUpDownNotifyBeforeSleep.Value = xmlReader.GetValueAsInt("MySleepTimer", "#MySleepTimer.NotifyBeforeSleep", 3); - numericUpDownTimeOut.Value = xmlReader.GetValueAsInt("MySleepTimer", "#MySleepTimer.ActionTimeOut", 1); - + private void numericUpDownNotifyBeforeSleep_ValueChanged(object sender, EventArgs e) + { + try + { + SetUpNotifyControls(); } + catch (Exception ex) + { + //log errors here + } } - private ArrayList GenerateActionList() { + private void numericUpDownNotifyInterval_ValueChanged(object sender, EventArgs e) + { + try + { + SetUpNotifyControls(); + } + catch (Exception ex) + { + //log errors here + } + } + + private void button1_Click(object sender, EventArgs e) + { + try + { + // Write configuration settings + using (MediaPortal.Profile.Settings xmlWriter = new MediaPortal.Profile.Settings(Config.GetFile(Config.Dir.Config, "MediaPortal.xml"))) + { + xmlWriter.SetValue("MySleepTimer", "#MySleepTimer.ActionType", comboBoxActionType.SelectedValue); + xmlWriter.SetValue("MySleepTimer", "#MySleepTimer.SleepBehavior", comboBoxSleepBehavior.Text); + xmlWriter.SetValue("MySleepTimer", "#MySleepTimer.ShutdownType", comboBoxShutDownType.SelectedValue); + xmlWriter.SetValueAsBool("MySleepTimer", "#MySleepTimer.ShutdownForce", checkBoxShutDownForce.Checked); + xmlWriter.SetValue("MySleepTimer", "#MySleepTimer.Maximum", numericUpDownSleepTimeMax.Value.ToString()); + xmlWriter.SetValue("MySleepTimer", "#MySleepTimer.Step", numericUpDownSleepTimeStep.Value.ToString()); + xmlWriter.SetValue("MySleepTimer", "#MySleepTimer.ActionTimeOut", numericUpDownTimeOutB.Value.ToString()); + xmlWriter.SetValue("MySleepTimer", "#MySleepTimer.NotifyBeforeSleep", numericUpDownNotifyBeforeSleep.Value.ToString()); + xmlWriter.SetValue("MySleepTimer", "#MySleepTimer.NotifyInterval", numericUpDownNotifyInterval.Value.ToString()); + xmlWriter.SetValue("MySleepTimer", "#MySleepTimer.NotifyTimeOut", numericUpDownTimeOutN.Value.ToString()); + } + this.Close(); + } + catch (Exception ex) + { + //log errors here + } + } + + private ArrayList GenerateActionList() + { ArrayList ret = new ArrayList(); - string[] names = Enum.GetNames(typeof(Action.ActionType)); - int[] values = (int[])Enum.GetValues(typeof(Action.ActionType)); - for (int i = 0; i < names.Length; i++) { - ret.Add(new ActionEntry(names[i], values[i])); - //MessageBox.Show(String.Format("{0} : {1}",names[i],values[i])); + try + { + string[] names = Enum.GetNames(typeof(Action.ActionType)); + int[] values = (int[])Enum.GetValues(typeof(Action.ActionType)); + for (int i = 0; i < names.Length; i++) + { + ret.Add(new ActionEntry(names[i], values[i])); + //MessageBox.Show(String.Format("{0} : {1}",names[i],values[i])); + } } + catch (Exception ex) + { + //log errors here + } return ret; } - private ArrayList GenerateShutdownList() { + private ArrayList GenerateShutdownList() + { ArrayList ret = new ArrayList(); - string[] names = Enum.GetNames(typeof(RestartOptions)); - int[] values = (int[])Enum.GetValues(typeof(RestartOptions)); - for (int i = 0; i < names.Length; i++) { - ret.Add(new ShutdownEntry(names[i], values[i])); - //MessageBox.Show(String.Format("{0} : {1}",names[i],values[i])); + try + { + string[] names = Enum.GetNames(typeof(RestartOptions)); + int[] values = (int[])Enum.GetValues(typeof(RestartOptions)); + for (int i = 0; i < names.Length; i++) + { + ret.Add(new ShutdownEntry(names[i], values[i])); + //MessageBox.Show(String.Format("{0} : {1}",names[i],values[i])); + } } + catch (Exception ex) + { + //log errors here + } return ret; } + private void SetUpShutDownTypeControls() + { + try + { + if (comboBoxSleepBehavior.Text == "Shutdown") + { + label3.Enabled = true; + comboBoxShutDownType.Enabled = true; + checkBoxShutDownForce.Enabled = true; + } + else + { + label3.Enabled = false; + comboBoxShutDownType.Enabled = false; + checkBoxShutDownForce.Enabled = false; + } + } + catch (Exception ex) + { + //log errors here + } + } - private void button1_Click(object sender, EventArgs e) { - // Read configuration settings - using (MediaPortal.Profile.Settings xmlWriter = new MediaPortal.Profile.Settings(Config.GetFile(Config.Dir.Config, "MediaPortal.xml"))) { - xmlWriter.SetValue("MySleepTimer", "#MySleepTimer.ActionType", comboBoxActionType.SelectedValue); - xmlWriter.SetValue("MySleepTimer", "#MySleepTimer.ShutdownType", comboBoxShutDownType.SelectedValue); - xmlWriter.SetValue("MySleepTimer", "#MySleepTimer.SleepBehavior", comboBoxSleepBehavior.Text); - xmlWriter.SetValueAsBool("MySleepTimer", "#MySleepTimer.ShutdownForce", checkBoxShutDownForce.Checked); - xmlWriter.SetValue("MySleepTimer", "#MySleepTimer.Maximum", numericUpDownSleepTimeMax.Value.ToString()); - xmlWriter.SetValue("MySleepTimer", "#MySleepTimer.Step", numericUpDownSleepTimeStep.Value.ToString()); - xmlWriter.SetValue("MySleepTimer", "#MySleepTimer.NotifyInterval", numericUpDownNotifyInterval.Value.ToString()); - xmlWriter.SetValue("MySleepTimer", "#MySleepTimer.NotifyBeforeSleep", numericUpDownNotifyBeforeSleep.Value.ToString()); - xmlWriter.SetValue("MySleepTimer", "#MySleepTimer.ActionTimeOut", numericUpDownTimeOut.Value.ToString()); + private void SetUpNotifyControls() + { + try + { + if (numericUpDownNotifyBeforeSleep.Value != 0) + { + if (numericUpDownNotifyInterval.Value > numericUpDownNotifyBeforeSleep.Value) + { + numericUpDownNotifyInterval.Value = numericUpDownNotifyBeforeSleep.Value; + } + + label8.Enabled = true; + numericUpDownNotifyInterval.Enabled = true; + label9.Enabled = true; + numericUpDownTimeOutN.Enabled = true; + ... [truncated message content] |
From: <che...@us...> - 2009-06-14 12:59:42
|
Revision: 2920 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=2920&view=rev Author: chef_koch Date: 2009-06-14 12:59:41 +0000 (Sun, 14 Jun 2009) Log Message: ----------- updated project to VS2008 Modified Paths: -------------- trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimer.csproj trunk/plugins/MySleepTimer/MySleepTimer.sln Modified: trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimer.csproj =================================================================== --- trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimer.csproj 2009-06-14 12:30:08 UTC (rev 2919) +++ trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimer.csproj 2009-06-14 12:59:41 UTC (rev 2920) @@ -2,7 +2,7 @@ <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> - <ProductVersion>8.0.50727</ProductVersion> + <ProductVersion>9.0.21022</ProductVersion> <SchemaVersion>2.0</SchemaVersion> <ProjectGuid>{03856C9E-0926-41DB-A13A-AE3D08285428}</ProjectGuid> <OutputType>Library</OutputType> @@ -14,6 +14,7 @@ <OldToolsVersion>2.0</OldToolsVersion> <UpgradeBackupLocation> </UpgradeBackupLocation> + <IsWebBootstrapper>false</IsWebBootstrapper> <PublishUrl>publish\</PublishUrl> <Install>true</Install> <InstallFrom>Disk</InstallFrom> @@ -26,7 +27,6 @@ <MapFileExtensions>true</MapFileExtensions> <ApplicationRevision>0</ApplicationRevision> <ApplicationVersion>1.0.0.%2a</ApplicationVersion> - <IsWebBootstrapper>false</IsWebBootstrapper> <UseApplicationTrust>false</UseApplicationTrust> <BootstrapperEnabled>true</BootstrapperEnabled> </PropertyGroup> @@ -50,22 +50,22 @@ <UseVSHostingProcess>false</UseVSHostingProcess> </PropertyGroup> <ItemGroup> - <Reference Include="Core, Version=1.0.0.29788, Culture=neutral, processorArchitecture=x86"> + <Reference Include="Core, Version=1.0.2.0, Culture=neutral, processorArchitecture=x86"> <SpecificVersion>False</SpecificVersion> - <HintPath>C:\Programme\Team MediaPortal\MediaPortal\Core.dll</HintPath> + <HintPath>..\..\..\..\..\MediaPortal\trunk\mediaportal\Core\bin\Release\Core.dll</HintPath> </Reference> - <Reference Include="Dialogs, Version=1.0.0.29798, Culture=neutral, processorArchitecture=x86"> + <Reference Include="Dialogs, Version=1.0.2.0, Culture=neutral, processorArchitecture=x86"> <SpecificVersion>False</SpecificVersion> - <HintPath>C:\Programme\Team MediaPortal\MediaPortal\plugins\Windows\Dialogs.dll</HintPath> + <HintPath>..\..\..\..\..\MediaPortal\trunk\mediaportal\Dialogs\bin\Release\Dialogs.dll</HintPath> </Reference> <Reference Include="System" /> <Reference Include="System.Data" /> <Reference Include="System.Drawing" /> <Reference Include="System.Windows.Forms" /> <Reference Include="System.Xml" /> - <Reference Include="Utils, Version=2.2.6.29782, Culture=neutral, processorArchitecture=x86"> + <Reference Include="Utils, Version=2.2.7.0, Culture=neutral, processorArchitecture=x86"> <SpecificVersion>False</SpecificVersion> - <HintPath>C:\Programme\Team MediaPortal\MediaPortal\Utils.dll</HintPath> + <HintPath>..\..\..\..\..\MediaPortal\trunk\mediaportal\Utils\bin\Release\Utils.dll</HintPath> </Reference> </ItemGroup> <ItemGroup> Modified: trunk/plugins/MySleepTimer/MySleepTimer.sln =================================================================== --- trunk/plugins/MySleepTimer/MySleepTimer.sln 2009-06-14 12:30:08 UTC (rev 2919) +++ trunk/plugins/MySleepTimer/MySleepTimer.sln 2009-06-14 12:59:41 UTC (rev 2920) @@ -1,6 +1,6 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MySleepTimer", "MySleepTimer\MySleepTimer.csproj", "{03856C9E-0926-41DB-A13A-AE3D08285428}" EndProject Global This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <che...@us...> - 2009-06-20 02:41:29
|
Revision: 2950 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=2950&view=rev Author: chef_koch Date: 2009-06-20 02:41:16 +0000 (Sat, 20 Jun 2009) Log Message: ----------- refactored using MP coding style Modified Paths: -------------- trunk/plugins/MySleepTimer/MpiRelease/MySleepTimer.xmp trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimer.cs trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimer.csproj trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimerConfig.cs trunk/plugins/MySleepTimer/MySleepTimer/Properties/AssemblyInfo.cs Modified: trunk/plugins/MySleepTimer/MpiRelease/MySleepTimer.xmp =================================================================== --- trunk/plugins/MySleepTimer/MpiRelease/MySleepTimer.xmp 2009-06-20 02:00:14 UTC (rev 2949) +++ trunk/plugins/MySleepTimer/MpiRelease/MySleepTimer.xmp 2009-06-20 02:41:16 UTC (rev 2950) @@ -4,11 +4,11 @@ <File> <FileName>MySleepTimer.dll</FileName> <Type>Plugin</Type> - <SubType>Window</SubType> - <Source>MySleepTimer.dll</Source> + <SubType>Process</SubType> + <Source>G:\MediaPortal\mp-plugins\trunk\plugins\MySleepTimer\MySleepTimer\bin\Release\MySleepTimer.dll</Source> <Id>01010</Id> <Option /> - <Guid>5bcd0785-7f02-4c03-a46e-e9b73f8675d0</Guid> + <Guid>829862d8-e5c9-4ede-a097-fa1a52292fe6</Guid> </File> <File> <FileName>MySleepTimer_logo.png</FileName> @@ -17,7 +17,7 @@ <Source>MySleepTimer_logo.png</Source> <Id>02020</Id> <Option>OutputFileName=|DefaultFile=True|</Option> - <Guid>dce7d4f2-44a1-4673-9c70-5c4da5a022bf</Guid> + <Guid>c0a9fa0a-5a53-4890-aa66-bbcb00e1fa4d</Guid> </File> </FileList> <StringList /> @@ -27,8 +27,8 @@ <SetupGroups /> <SetupGroupMappings /> <Option> - <BuildFileName>MySleepTimer.mpi</BuildFileName> - <ProiectFileName>D:\!Prasse\MySleepTimer\MpiRelease\MySleepTimer.xmp</ProiectFileName> + <BuildFileName>G:\MediaPortal\mp-plugins\trunk\plugins\MySleepTimer\MpiRelease\MySleepTimer.MPE1</BuildFileName> + <ProiectFileName>G:\MediaPortal\mp-plugins\trunk\plugins\MySleepTimer\MpiRelease\MySleepTimer.xmp</ProiectFileName> <ProiectName>MySleepTimer</ProiectName> <Author>Anthrax</Author> <UpdateURL>http://www.team-mediaportal.com</UpdateURL> @@ -51,16 +51,101 @@ Anthrax</Description> <Group>Automation</Group> <Release>Stable </Release> - <Logo>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... [truncated message content] |
From: <che...@us...> - 2010-01-14 14:00:53
|
Revision: 3355 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=3355&view=rev Author: chef_koch Date: 2010-01-14 13:59:52 +0000 (Thu, 14 Jan 2010) Log Message: ----------- added build scripts added new xmp2 project files, needs still to be modified Added Paths: ----------- trunk/plugins/MySleepTimer/Build/ trunk/plugins/MySleepTimer/Build/BUILD_MySleepTimer.bat trunk/plugins/MySleepTimer/Build/filever.exe trunk/plugins/MySleepTimer/MySleepTimer.xmp2 Removed Paths: ------------- trunk/plugins/MySleepTimer/MpiRelease/MySleepTimer.xmp Property changes on: trunk/plugins/MySleepTimer/Build ___________________________________________________________________ Added: svn:ignore + *.log Added: trunk/plugins/MySleepTimer/Build/BUILD_MySleepTimer.bat =================================================================== --- trunk/plugins/MySleepTimer/Build/BUILD_MySleepTimer.bat (rev 0) +++ trunk/plugins/MySleepTimer/Build/BUILD_MySleepTimer.bat 2010-01-14 13:59:52 UTC (rev 3355) @@ -0,0 +1,53 @@ +@ECHO OFF + +REM set paths +set DeployVersionSVN="..\..\..\..\..\MediaPortal\trunk\Tools\Script & Batch tools\DeployVersionSVN\DeployVersionSVN\bin\Release\DeployVersionSVN.exe" + + +REM Select program path based on current machine environment +set ProgramDir=%ProgramFiles% +if not "%ProgramFiles(x86)%".=="". set ProgramDir=%ProgramFiles(x86)% + + +REM set logfile where the infos are written to, and clear that file +set LOG=build.log +echo. > %LOG% + + +echo. +echo -= MySleepTimer =- +echo -=====================- +echo. + + +echo. +echo Writing SVN revision assemblies... +%DeployVersionSVN% /svn=".." >> %LOG% + + +echo. +echo Building MySleepTimer... +"%WINDIR%\Microsoft.NET\Framework\v3.5\MSBUILD.exe" /target:Rebuild /property:Configuration=Release;AllowUnsafeBlocks=true "..\MySleepTimer.sln" >> %LOG% + + +echo. +echo Reverting assemblies... +%DeployVersionSVN% /svn=".." /revert >> %LOG% + + +echo. +echo Reading the version number... +set plugindll=..\MySleepTimer\bin\Release\MySleepTimer.dll +if not exist "%plugindll%" goto version_error +for /f "Tokens=5" %%a in ('filever "%plugindll%"') do set version=%%a +goto :version_done +:version_error +echo "MyAlarm.dll not found. version could not be read" >> %LOG% +goto :EOF +:version_done + + +echo. +echo Building MpeExtension package... +"%ProgramDir%\Team MediaPortal\MediaPortal\MpeMaker.exe" "..\MySleepTimer.xmp2" /V=%version% /B >> %LOG% + Added: trunk/plugins/MySleepTimer/Build/filever.exe =================================================================== (Binary files differ) Property changes on: trunk/plugins/MySleepTimer/Build/filever.exe ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Deleted: trunk/plugins/MySleepTimer/MpiRelease/MySleepTimer.xmp =================================================================== --- trunk/plugins/MySleepTimer/MpiRelease/MySleepTimer.xmp 2010-01-14 13:58:00 UTC (rev 3354) +++ trunk/plugins/MySleepTimer/MpiRelease/MySleepTimer.xmp 2010-01-14 13:59:52 UTC (rev 3355) @@ -1,151 +0,0 @@ -<MPinstaler> - <ver>1.00.000</ver> - <FileList> - <File> - <FileName>MySleepTimer.dll</FileName> - <Type>Plugin</Type> - <SubType>Process</SubType> - <Source>G:\MediaPortal\mp-plugins\trunk\plugins\MySleepTimer\MySleepTimer\bin\Release\MySleepTimer.dll</Source> - <Id>01010</Id> - <Option /> - <Guid>829862d8-e5c9-4ede-a097-fa1a52292fe6</Guid> - </File> - <File> - <FileName>MySleepTimer_logo.png</FileName> - <Type>Media</Type> - <SubType>Blue3</SubType> - <Source>MySleepTimer_logo.png</Source> - <Id>02020</Id> - <Option>OutputFileName=|DefaultFile=True|</Option> - <Guid>c0a9fa0a-5a53-4890-aa66-bbcb00e1fa4d</Guid> - </File> - </FileList> - <StringList /> - <Actions> - <Action Place="POSTSETUP" Id="1" Command="MySleepTimer.dll" /> - </Actions> - <SetupGroups /> - <SetupGroupMappings /> - <Option> - <BuildFileName>G:\MediaPortal\mp-plugins\trunk\plugins\MySleepTimer\MpiRelease\MySleepTimer.MPE1</BuildFileName> - <ProiectFileName>G:\MediaPortal\mp-plugins\trunk\plugins\MySleepTimer\MpiRelease\MySleepTimer.xmp</ProiectFileName> - <ProiectName>MySleepTimer</ProiectName> - <Author>Anthrax</Author> - <UpdateURL>http://www.team-mediaportal.com</UpdateURL> - <Version>1.0.3.0</Version> - <Description>Anybody around here using MediaPortal as his/her over-the-counter (but highly addictive) sleeping agent? - -Well, I sure as heck do - -Ever since I started using MediaPortal some two years ago, I was missing the essential funtionality every cheap old TV has - a simple push-button sleep timer... -So spending one sleepless night I finally managed to program one myself. - -MySleepTimer - MediaPortal Process Plugin -========================================= - -- settings should be pretty much self explanatory (ACTION_REMOTE_YELLOW_BUTTON works perfectly on my behalf) -- inside MediaPortal perform the selected action repeatedly to increment the sleep time according to the configured steps -- going beyond the maximum sleep time stops the timer until being reset the next time 'action' occurs - -regards, -Anthrax</Description> - <Group>Automation</Group> - <Release>Stable </Release> - <Script>//css_reference "core.dll"; -//css_reference "Databases.dll"; -//css_reference "utils.dll"; -//css_reference "MPInstaller.Library.dll"; -//css_reference "plugins\Windows\Dialogs.dll"; - -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.Windows.Forms; -using System.Text; - -using MediaPortal.Dialogs; -using MediaPortal.GUI.Library; -using MediaPortal.MPInstaller; - -class InstallScript : MPInstallerScript - { - /// <summary> - /// Execute when the package is downloaded via GUI - /// </summary> - public override void GUI_GetOptions() - { - base.GUI_GetOptions(); - } - - /// <summary> - /// Test if version is compatible and show warning - /// This use when installing via GUI - /// </summary> - /// <returns></returns> - public override bool GUI_Warning() - { - return base.GUI_Warning(); - } - - /// <summary> - /// Test if version is compatible and show warning - /// </summary> - /// <returns></returns> - public override bool Warning() - { - return base.Warning(); - } - /// <summary> - /// Inits this instance. - /// executed when the package it is loaded - /// </summary> - public override void Init() - { - base.Init(); - } - - /// <summary> - /// Installs the current package. - /// </summary> - /// <param name="pb">ProgressBar for overall progress (can bee null) </param> - /// <param name="pb1">ProgressBar for current copied file (can bee null)</param> - /// <param name="listbox">Listbox for file listing(can bee null) </param> - public override void Install(ProgressBar pb, ProgressBar pb1, ListBox listbox) - { - base.Install(pb, pb1, listbox); - } - - /// <summary> - /// Called when [install file procesed]. - /// </summary> - /// <param name="mpiFileInfo">The mpi file info.</param> - public override void OnInstallFileProcesed(MPIFileList mpiFileInfo) - { - - } - - /// <summary> - /// Called when [install done]. - /// </summary> - public override void OnInstallDone() - { - - } - - }</Script> - <Logo>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... [truncated message content] |
From: <che...@us...> - 2010-01-20 22:17:50
|
Revision: 3369 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=3369&view=rev Author: chef_koch Date: 2010-01-20 22:17:39 +0000 (Wed, 20 Jan 2010) Log Message: ----------- moved MySleepTimer.xmp2 project to MpeRelease subdir Modified Paths: -------------- trunk/plugins/MySleepTimer/Build/BUILD_MySleepTimer.bat Added Paths: ----------- trunk/plugins/MySleepTimer/MpeRelease/ trunk/plugins/MySleepTimer/MpeRelease/MySleepTimer.xmp2 Removed Paths: ------------- trunk/plugins/MySleepTimer/MySleepTimer.xmp2 Modified: trunk/plugins/MySleepTimer/Build/BUILD_MySleepTimer.bat =================================================================== --- trunk/plugins/MySleepTimer/Build/BUILD_MySleepTimer.bat 2010-01-20 19:52:29 UTC (rev 3368) +++ trunk/plugins/MySleepTimer/Build/BUILD_MySleepTimer.bat 2010-01-20 22:17:39 UTC (rev 3369) @@ -49,5 +49,5 @@ echo. echo Building MpeExtension package... -"%ProgramDir%\Team MediaPortal\MediaPortal\MpeMaker.exe" "..\MySleepTimer.xmp2" /V=%version% /B >> %LOG% +"%ProgramDir%\Team MediaPortal\MediaPortal\MpeMaker.exe" "..\MpeRelease\MySleepTimer.xmp2" /V=%version% /B >> %LOG% Copied: trunk/plugins/MySleepTimer/MpeRelease/MySleepTimer.xmp2 (from rev 3361, trunk/plugins/MySleepTimer/MySleepTimer.xmp2) =================================================================== --- trunk/plugins/MySleepTimer/MpeRelease/MySleepTimer.xmp2 (rev 0) +++ trunk/plugins/MySleepTimer/MpeRelease/MySleepTimer.xmp2 2010-01-20 22:17:39 UTC (rev 3369) @@ -0,0 +1,183 @@ +<?xml version="1.0" encoding="utf-8"?> +<PackageClass xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <Version>2.0</Version> + <Groups> + <Items> + <GroupItem Name="Default"> + <ParentGroup /> + <DisplayName>Default</DisplayName> + <DefaulChecked>true</DefaulChecked> + <Description>Default</Description> + <Files> + <Items> + <FileItem InstallType="CopyFile" SystemFile="false" Modified="true"> + <Param1 /> + <UpdateOption>OverwriteIfOlder</UpdateOption> + <LocalFileName>..\MySleepTimer\bin\Release\MySleepTimer.dll</LocalFileName> + <ZipFileName>Installer{CopyFile}\{23cd779d-aafa-4bc8-80ae-999fc60ebee4}-MySleepTimer.dll</ZipFileName> + <DestinationFilename>%Plugins%\process\MySleepTimer.dll</DestinationFilename> + </FileItem> + </Items> + </Files> + </GroupItem> + </Items> + </Groups> + <Sections> + <Items> + <SectionItem Guid="7d214f70-ef9e-45e2-b567-a9bcc3921f1f" Name="Welcome Screen" ConditionGroup=""> + <Params> + <Items> + <SectionParam Name="Header text"> + <Value>Welcome to the Extension Installer for [Name]</Value> + <ValueType>String</ValueType> + <Description /> + </SectionParam> + <SectionParam Name="Description"> + <Value>This will install [Name] version [Version] on your computer. +It is recommended that you close all other applications before continuing. +Click Next to continue or Cancel to exit Setup.</Value> + <ValueType>String</ValueType> + <Description /> + </SectionParam> + <SectionParam Name="Left part image"> + <Value /> + <ValueType>File</ValueType> + <Description /> + </SectionParam> + <SectionParam Name="Header image"> + <Value /> + <ValueType>File</ValueType> + <Description>Image in upper right part</Description> + </SectionParam> + </Items> + </Params> + <Actions> + <Items /> + </Actions> + <IncludedGroups /> + <PanelName>Welcome Screen</PanelName> + <WizardButtonsEnum>NextCancel</WizardButtonsEnum> + </SectionItem> + <SectionItem Guid="9bcdd6ec-a0e1-4660-a4f1-da7eac9f64db" Name="Install Section" ConditionGroup=""> + <Params> + <Items> + <SectionParam Name="Header Title"> + <Value /> + <ValueType>String</ValueType> + <Description>Header title</Description> + </SectionParam> + <SectionParam Name="Header description"> + <Value /> + <ValueType>String</ValueType> + <Description>Description of section, shown in under section title</Description> + </SectionParam> + <SectionParam Name="Header image"> + <Value /> + <ValueType>File</ValueType> + <Description>Image in upper right part</Description> + </SectionParam> + </Items> + </Params> + <Actions> + <Items> + <ActionItem Name="InstallFiles" ActionType="InstallFiles" ConditionGroup=""> + <Params> + <Items /> + </Params> + <ExecuteLocation>AfterPanelShow</ExecuteLocation> + </ActionItem> + </Items> + </Actions> + <IncludedGroups /> + <PanelName>Install Section</PanelName> + <WizardButtonsEnum>Next</WizardButtonsEnum> + </SectionItem> + <SectionItem Guid="6d1f688f-c543-4341-b133-9b81df81f8b5" Name="Setup Complete" ConditionGroup=""> + <Params> + <Items> + <SectionParam Name="Header text"> + <Value>The Extension Installer Wizard has successfully installed [Name].</Value> + <ValueType>String</ValueType> + <Description /> + </SectionParam> + <SectionParam Name="Left part image"> + <Value /> + <ValueType>File</ValueType> + <Description /> + </SectionParam> + <SectionParam Name="Header image"> + <Value /> + <ValueType>File</ValueType> + <Description>Image in upper right part</Description> + </SectionParam> + </Items> + </Params> + <Actions> + <Items /> + </Actions> + <IncludedGroups /> + <PanelName>Setup Complete</PanelName> + <WizardButtonsEnum>Finish</WizardButtonsEnum> + </SectionItem> + </Items> + </Sections> + <Dependencies> + <Items /> + </Dependencies> + <GeneralInfo> + <Name>MySleepTimer</Name> + <Id>05afd608-7fb0-4738-85b3-250bb8e521a6</Id> + <Author>chef</Author> + <HomePage /> + <ForumPage /> + <UpdateUrl /> + <Version> + <Major>0</Major> + <Minor>4</Minor> + <Build>0</Build> + <Revision>0</Revision> + </Version> + <ExtensionDescription>ext desc</ExtensionDescription> + <VersionDescription>version desc</VersionDescription> + <DevelopmentStatus>Stable</DevelopmentStatus> + <OnlineLocation /> + <ReleaseDate>2010-01-14T14:49:07.2513217+01:00</ReleaseDate> + <Tags /> + <Location>D:\MediaPortal\mp-plugins\trunk\plugins\MySleepTimer\MySleepTimer.mpe1</Location> + <Params> + <Items> + <SectionParam Name="Icon"> + <Value /> + <ValueType>File</ValueType> + <Description>The icon file of the package (jpg,png,bmp)</Description> + </SectionParam> + <SectionParam Name="Online Icon"> + <Value /> + <ValueType>String</ValueType> + <Description>The icon file of the package stored online (jpg,png,bmp)</Description> + </SectionParam> + <SectionParam Name="Configuration file"> + <Value /> + <ValueType>Template</ValueType> + <Description>The file used to configure the extension. + If have .exe extension the will be executed + If have .dll extension used like MP plugin configuration</Description> + </SectionParam> + </Items> + </Params> + </GeneralInfo> + <UniqueFileList> + <Items> + <FileItem InstallType="CopyFile" SystemFile="false" Modified="true"> + <Param1 /> + <UpdateOption>OverwriteIfOlder</UpdateOption> + <LocalFileName>..\MySleepTimer\bin\Release\MySleepTimer.dll</LocalFileName> + <ZipFileName>Installer{CopyFile}\{23cd779d-aafa-4bc8-80ae-999fc60ebee4}-MySleepTimer.dll</ZipFileName> + <DestinationFilename>%Plugins%\process\MySleepTimer.dll</DestinationFilename> + </FileItem> + </Items> + </UniqueFileList> + <ProjectSettings> + <FolderGroups /> + </ProjectSettings> +</PackageClass> \ No newline at end of file Deleted: trunk/plugins/MySleepTimer/MySleepTimer.xmp2 =================================================================== --- trunk/plugins/MySleepTimer/MySleepTimer.xmp2 2010-01-20 19:52:29 UTC (rev 3368) +++ trunk/plugins/MySleepTimer/MySleepTimer.xmp2 2010-01-20 22:17:39 UTC (rev 3369) @@ -1,183 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<PackageClass xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> - <Version>2.0</Version> - <Groups> - <Items> - <GroupItem Name="Default"> - <ParentGroup /> - <DisplayName>Default</DisplayName> - <DefaulChecked>true</DefaulChecked> - <Description>Default</Description> - <Files> - <Items> - <FileItem InstallType="CopyFile" SystemFile="false" Modified="true"> - <Param1 /> - <UpdateOption>OverwriteIfOlder</UpdateOption> - <LocalFileName>MySleepTimer\bin\Release\MySleepTimer.dll</LocalFileName> - <ZipFileName>Installer{CopyFile}\{23cd779d-aafa-4bc8-80ae-999fc60ebee4}-MySleepTimer.dll</ZipFileName> - <DestinationFilename>%Plugins%\process\MySleepTimer.dll</DestinationFilename> - </FileItem> - </Items> - </Files> - </GroupItem> - </Items> - </Groups> - <Sections> - <Items> - <SectionItem Guid="7d214f70-ef9e-45e2-b567-a9bcc3921f1f" Name="Welcome Screen" ConditionGroup=""> - <Params> - <Items> - <SectionParam Name="Header text"> - <Value>Welcome to the Extension Installer for [Name]</Value> - <ValueType>String</ValueType> - <Description /> - </SectionParam> - <SectionParam Name="Description"> - <Value>This will install [Name] version [Version] on your computer. -It is recommended that you close all other applications before continuing. -Click Next to continue or Cancel to exit Setup.</Value> - <ValueType>String</ValueType> - <Description /> - </SectionParam> - <SectionParam Name="Left part image"> - <Value /> - <ValueType>File</ValueType> - <Description /> - </SectionParam> - <SectionParam Name="Header image"> - <Value /> - <ValueType>File</ValueType> - <Description>Image in upper right part</Description> - </SectionParam> - </Items> - </Params> - <Actions> - <Items /> - </Actions> - <IncludedGroups /> - <PanelName>Welcome Screen</PanelName> - <WizardButtonsEnum>NextCancel</WizardButtonsEnum> - </SectionItem> - <SectionItem Guid="9bcdd6ec-a0e1-4660-a4f1-da7eac9f64db" Name="Install Section" ConditionGroup=""> - <Params> - <Items> - <SectionParam Name="Header Title"> - <Value /> - <ValueType>String</ValueType> - <Description>Header title</Description> - </SectionParam> - <SectionParam Name="Header description"> - <Value /> - <ValueType>String</ValueType> - <Description>Description of section, shown in under section title</Description> - </SectionParam> - <SectionParam Name="Header image"> - <Value /> - <ValueType>File</ValueType> - <Description>Image in upper right part</Description> - </SectionParam> - </Items> - </Params> - <Actions> - <Items> - <ActionItem Name="InstallFiles" ActionType="InstallFiles" ConditionGroup=""> - <Params> - <Items /> - </Params> - <ExecuteLocation>AfterPanelShow</ExecuteLocation> - </ActionItem> - </Items> - </Actions> - <IncludedGroups /> - <PanelName>Install Section</PanelName> - <WizardButtonsEnum>Next</WizardButtonsEnum> - </SectionItem> - <SectionItem Guid="6d1f688f-c543-4341-b133-9b81df81f8b5" Name="Setup Complete" ConditionGroup=""> - <Params> - <Items> - <SectionParam Name="Header text"> - <Value>The Extension Installer Wizard has successfully installed [Name].</Value> - <ValueType>String</ValueType> - <Description /> - </SectionParam> - <SectionParam Name="Left part image"> - <Value /> - <ValueType>File</ValueType> - <Description /> - </SectionParam> - <SectionParam Name="Header image"> - <Value /> - <ValueType>File</ValueType> - <Description>Image in upper right part</Description> - </SectionParam> - </Items> - </Params> - <Actions> - <Items /> - </Actions> - <IncludedGroups /> - <PanelName>Setup Complete</PanelName> - <WizardButtonsEnum>Finish</WizardButtonsEnum> - </SectionItem> - </Items> - </Sections> - <Dependencies> - <Items /> - </Dependencies> - <GeneralInfo> - <Name>MySleepTimer</Name> - <Id>05afd608-7fb0-4738-85b3-250bb8e521a6</Id> - <Author>chef</Author> - <HomePage /> - <ForumPage /> - <UpdateUrl /> - <Version> - <Major>0</Major> - <Minor>4</Minor> - <Build>0</Build> - <Revision>0</Revision> - </Version> - <ExtensionDescription>ext desc</ExtensionDescription> - <VersionDescription>version desc</VersionDescription> - <DevelopmentStatus>Stable</DevelopmentStatus> - <OnlineLocation /> - <ReleaseDate>2010-01-14T14:49:07.2513217+01:00</ReleaseDate> - <Tags /> - <Location>D:\MediaPortal\mp-plugins\trunk\plugins\MySleepTimer\MySleepTimer.mpe1</Location> - <Params> - <Items> - <SectionParam Name="Icon"> - <Value /> - <ValueType>File</ValueType> - <Description>The icon file of the package (jpg,png,bmp)</Description> - </SectionParam> - <SectionParam Name="Online Icon"> - <Value /> - <ValueType>String</ValueType> - <Description>The icon file of the package stored online (jpg,png,bmp)</Description> - </SectionParam> - <SectionParam Name="Configuration file"> - <Value /> - <ValueType>Template</ValueType> - <Description>The file used to configure the extension. - If have .exe extension the will be executed - If have .dll extension used like MP plugin configuration</Description> - </SectionParam> - </Items> - </Params> - </GeneralInfo> - <UniqueFileList> - <Items> - <FileItem InstallType="CopyFile" SystemFile="false" Modified="true"> - <Param1 /> - <UpdateOption>OverwriteIfOlder</UpdateOption> - <LocalFileName>MySleepTimer\bin\Release\MySleepTimer.dll</LocalFileName> - <ZipFileName>Installer{CopyFile}\{23cd779d-aafa-4bc8-80ae-999fc60ebee4}-MySleepTimer.dll</ZipFileName> - <DestinationFilename>%Plugins%\process\MySleepTimer.dll</DestinationFilename> - </FileItem> - </Items> - </UniqueFileList> - <ProjectSettings> - <FolderGroups /> - </ProjectSettings> -</PackageClass> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <che...@us...> - 2010-06-29 23:50:30
|
Revision: 3658 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=3658&view=rev Author: chef_koch Date: 2010-06-29 23:50:24 +0000 (Tue, 29 Jun 2010) Log Message: ----------- renamed ReSharper definition file Added Paths: ----------- trunk/plugins/MySleepTimer/MySleepTimer.5.0.resharper Removed Paths: ------------- trunk/plugins/MySleepTimer/MySleepTimer.4.5.resharper Deleted: trunk/plugins/MySleepTimer/MySleepTimer.4.5.resharper =================================================================== --- trunk/plugins/MySleepTimer/MySleepTimer.4.5.resharper 2010-06-29 10:27:07 UTC (rev 3657) +++ trunk/plugins/MySleepTimer/MySleepTimer.4.5.resharper 2010-06-29 23:50:24 UTC (rev 3658) @@ -1,6 +0,0 @@ -<Configuration> - <CodeStyleSettings> - <ExternalPath>..\..\..\..\MediaPortal\trunk\mediaportal\MediaPortal.ReSharper.xml</ExternalPath> - <Sharing>EXTERNAL</Sharing> - </CodeStyleSettings> -</Configuration> \ No newline at end of file Copied: trunk/plugins/MySleepTimer/MySleepTimer.5.0.resharper (from rev 3656, trunk/plugins/MySleepTimer/MySleepTimer.4.5.resharper) =================================================================== --- trunk/plugins/MySleepTimer/MySleepTimer.5.0.resharper (rev 0) +++ trunk/plugins/MySleepTimer/MySleepTimer.5.0.resharper 2010-06-29 23:50:24 UTC (rev 3658) @@ -0,0 +1,6 @@ +<Configuration> + <CodeStyleSettings> + <ExternalPath>..\..\..\..\MediaPortal\trunk\mediaportal\MediaPortal.ReSharper.xml</ExternalPath> + <Sharing>EXTERNAL</Sharing> + </CodeStyleSettings> +</Configuration> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <che...@us...> - 2010-11-10 12:04:27
|
Revision: 3915 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=3915&view=rev Author: chef_koch Date: 2010-11-10 12:04:21 +0000 (Wed, 10 Nov 2010) Log Message: ----------- moved screenshots and releases to separate folders added 1.0.4.3660 release Added Paths: ----------- trunk/plugins/MySleepTimer/releases/ trunk/plugins/MySleepTimer/releases/MySleepTimer-1.0.4.3660.mpe1 trunk/plugins/MySleepTimer/screenshots/ trunk/plugins/MySleepTimer/screenshots/MySleepTimer_01.png trunk/plugins/MySleepTimer/screenshots/MySleepTimer_02.png trunk/plugins/MySleepTimer/screenshots/MySleepTimer_03.png trunk/plugins/MySleepTimer/screenshots/MySleepTimer_04.png trunk/plugins/MySleepTimer/screenshots/MySleepTimer_logo.png Removed Paths: ------------- trunk/plugins/MySleepTimer/MpiRelease/ trunk/plugins/MySleepTimer/releases/MySleepTimer_01.png trunk/plugins/MySleepTimer/releases/MySleepTimer_02.png trunk/plugins/MySleepTimer/releases/MySleepTimer_03.png trunk/plugins/MySleepTimer/releases/MySleepTimer_04.png trunk/plugins/MySleepTimer/releases/MySleepTimer_logo.png Copied: trunk/plugins/MySleepTimer/releases/MySleepTimer-1.0.4.3660.mpe1 (from rev 3911, trunk/plugins/MySleepTimer/MpeRelease/MySleepTimer.mpe1) =================================================================== (Binary files differ) Deleted: trunk/plugins/MySleepTimer/releases/MySleepTimer_01.png =================================================================== (Binary files differ) Deleted: trunk/plugins/MySleepTimer/releases/MySleepTimer_02.png =================================================================== (Binary files differ) Deleted: trunk/plugins/MySleepTimer/releases/MySleepTimer_03.png =================================================================== (Binary files differ) Deleted: trunk/plugins/MySleepTimer/releases/MySleepTimer_04.png =================================================================== (Binary files differ) Deleted: trunk/plugins/MySleepTimer/releases/MySleepTimer_logo.png =================================================================== (Binary files differ) Copied: trunk/plugins/MySleepTimer/screenshots/MySleepTimer_01.png (from rev 3911, trunk/plugins/MySleepTimer/MpiRelease/MySleepTimer_01.png) =================================================================== (Binary files differ) Copied: trunk/plugins/MySleepTimer/screenshots/MySleepTimer_02.png (from rev 3911, trunk/plugins/MySleepTimer/MpiRelease/MySleepTimer_02.png) =================================================================== (Binary files differ) Copied: trunk/plugins/MySleepTimer/screenshots/MySleepTimer_03.png (from rev 3911, trunk/plugins/MySleepTimer/MpiRelease/MySleepTimer_03.png) =================================================================== (Binary files differ) Copied: trunk/plugins/MySleepTimer/screenshots/MySleepTimer_04.png (from rev 3911, trunk/plugins/MySleepTimer/MpiRelease/MySleepTimer_04.png) =================================================================== (Binary files differ) Copied: trunk/plugins/MySleepTimer/screenshots/MySleepTimer_logo.png (from rev 3911, trunk/plugins/MySleepTimer/MpiRelease/MySleepTimer_logo.png) =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <che...@us...> - 2010-11-10 16:50:28
|
Revision: 3920 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=3920&view=rev Author: chef_koch Date: 2010-11-10 16:50:21 +0000 (Wed, 10 Nov 2010) Log Message: ----------- updated to VS2010 Modified Paths: -------------- trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimer.csproj trunk/plugins/MySleepTimer/MySleepTimer.sln Property Changed: ---------------- trunk/plugins/MySleepTimer/MySleepTimer/ Property changes on: trunk/plugins/MySleepTimer/MySleepTimer ___________________________________________________________________ Modified: svn:ignore - [Bb]in [Oo]bj [Dd]ebug [Rr]elease _ReSharper.* thumbs.db *.aps *.bak *.cache *.eto *.exe *.log *.mpe1 *.patch *.suo *.user + [Bb]in [Oo]bj [Dd]ebug [Rr]elease _ReSharper.* thumbs.db *.aps *.bak *.cache *.eto *.exe *.log *.mpe1 *.patch *.suo *.user obj Modified: trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimer.csproj =================================================================== --- trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimer.csproj 2010-11-10 15:41:44 UTC (rev 3919) +++ trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimer.csproj 2010-11-10 16:50:21 UTC (rev 3920) @@ -1,4 +1,5 @@ -<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5"> +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0"> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> @@ -11,10 +12,12 @@ <AssemblyName>MySleepTimer</AssemblyName> <FileUpgradeFlags> </FileUpgradeFlags> - <OldToolsVersion>2.0</OldToolsVersion> + <OldToolsVersion>3.5</OldToolsVersion> <UpgradeBackupLocation> </UpgradeBackupLocation> <IsWebBootstrapper>false</IsWebBootstrapper> + <TargetFrameworkVersion>v3.5</TargetFrameworkVersion> + <TargetFrameworkProfile>Client</TargetFrameworkProfile> <PublishUrl>publish\</PublishUrl> <Install>true</Install> <InstallFrom>Disk</InstallFrom> @@ -39,6 +42,7 @@ <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> <UseVSHostingProcess>false</UseVSHostingProcess> + <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <DebugType>none</DebugType> @@ -48,6 +52,7 @@ <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> <UseVSHostingProcess>false</UseVSHostingProcess> + <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet> </PropertyGroup> <ItemGroup> <Reference Include="Core, Version=1.0.2.0, Culture=neutral, processorArchitecture=x86"> @@ -92,6 +97,11 @@ <EmbeddedResource Include="img\MySleepTimer_enabled.png" /> </ItemGroup> <ItemGroup> + <BootstrapperPackage Include="Microsoft.Net.Client.3.5"> + <Visible>False</Visible> + <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName> + <Install>false</Install> + </BootstrapperPackage> <BootstrapperPackage Include="Microsoft.Net.Framework.2.0"> <Visible>False</Visible> <ProductName>.NET Framework 2.0 %28x86%29</ProductName> @@ -107,6 +117,11 @@ <ProductName>.NET Framework 3.5</ProductName> <Install>false</Install> </BootstrapperPackage> + <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1"> + <Visible>False</Visible> + <ProductName>.NET Framework 3.5 SP1</ProductName> + <Install>false</Install> + </BootstrapperPackage> </ItemGroup> <ItemGroup> <Content Include="Language\de.xml" /> Modified: trunk/plugins/MySleepTimer/MySleepTimer.sln =================================================================== --- trunk/plugins/MySleepTimer/MySleepTimer.sln 2010-11-10 15:41:44 UTC (rev 3919) +++ trunk/plugins/MySleepTimer/MySleepTimer.sln 2010-11-10 16:50:21 UTC (rev 3920) @@ -1,6 +1,6 @@ -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual Studio 2008 +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MySleepTimer", "MySleepTimer\MySleepTimer.csproj", "{03856C9E-0926-41DB-A13A-AE3D08285428}" EndProject Global This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <che...@us...> - 2011-04-22 22:55:53
|
Revision: 4184 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=4184&view=rev Author: chef_koch Date: 2011-04-22 22:55:47 +0000 (Fri, 22 Apr 2011) Log Message: ----------- added mp 1.2 beta compatibility Modified Paths: -------------- trunk/plugins/MySleepTimer/Build/BUILD_MySleepTimer.bat trunk/plugins/MySleepTimer/MpeRelease/MySleepTimer.mpe1 trunk/plugins/MySleepTimer/MpeRelease/MySleepTimer.xmp2 trunk/plugins/MySleepTimer/MpeRelease/update.xml trunk/plugins/MySleepTimer/MySleepTimer/Properties/AssemblyInfo.cs Modified: trunk/plugins/MySleepTimer/Build/BUILD_MySleepTimer.bat =================================================================== --- trunk/plugins/MySleepTimer/Build/BUILD_MySleepTimer.bat 2011-04-22 22:47:24 UTC (rev 4183) +++ trunk/plugins/MySleepTimer/Build/BUILD_MySleepTimer.bat 2011-04-22 22:55:47 UTC (rev 4184) @@ -20,9 +20,9 @@ echo. -echo. -echo Writing SVN revision assemblies... -%DeployVersionSVN% /svn=".." >> %LOG% +rem echo. +rem echo Writing SVN revision assemblies... +rem %DeployVersionSVN% /svn=".." >> %LOG% echo. @@ -30,9 +30,9 @@ "%WINDIR%\Microsoft.NET\Framework\v3.5\MSBUILD.exe" /target:Rebuild /property:Configuration=Release;AllowUnsafeBlocks=true "..\MySleepTimer.sln" >> %LOG% -echo. -echo Reverting assemblies... -%DeployVersionSVN% /svn=".." /revert >> %LOG% +rem echo. +rem echo Reverting assemblies... +rem %DeployVersionSVN% /svn=".." /revert >> %LOG% echo. Modified: trunk/plugins/MySleepTimer/MpeRelease/MySleepTimer.mpe1 =================================================================== (Binary files differ) Modified: trunk/plugins/MySleepTimer/MpeRelease/MySleepTimer.xmp2 =================================================================== --- trunk/plugins/MySleepTimer/MpeRelease/MySleepTimer.xmp2 2011-04-22 22:47:24 UTC (rev 4183) +++ trunk/plugins/MySleepTimer/MpeRelease/MySleepTimer.xmp2 2011-04-22 22:55:47 UTC (rev 4184) @@ -122,7 +122,27 @@ </Items> </Sections> <Dependencies> - <Items /> + <Items> + <DependencyItem> + <Type>MediaPortal</Type> + <Id /> + <MinVersion> + <Major>1</Major> + <Minor>1</Minor> + <Build>7</Build> + <Revision>0</Revision> + </MinVersion> + <MaxVersion> + <Major>0</Major> + <Minor>0</Minor> + <Build>0</Build> + <Revision>0</Revision> + </MaxVersion> + <WarnOnly>true</WarnOnly> + <Message>Need minimum MediaPortal 1.2 beta or later</Message> + <Name>MediaPortal</Name> + </DependencyItem> + </Items> </Dependencies> <GeneralInfo> <Name>MySleepTimer</Name> @@ -134,21 +154,18 @@ <Version> <Major>1</Major> <Minor>0</Minor> - <Build>4</Build> - <Revision>3660</Revision> + <Build>5</Build> + <Revision>0</Revision> </Version> <ExtensionDescription>If you want to set a sleeptime by simply pressing a remote button, this plugin is what you are searching for. It is possible to define the steps which are used to set the sleeptime and detects the remaining playback time if a media is played while you pressed the sleeptimer button. If you are using IRSS, there will be NO need to configure the remote button mapping within MP, since IRSS detects the sleeptimer plugin and always sends the yellow button if the plugin is found,</ExtensionDescription> - <VersionDescription>Initial release of 1.1 includes: - - deployment via MediaPortal extension package - - reworked configuration - - multi language support</VersionDescription> + <VersionDescription>added MP 1.2 beta compatibility</VersionDescription> <DevelopmentStatus>Stable</DevelopmentStatus> <OnlineLocation>http://www.team-mediaportal.com/index.php?option=com_mtree&task=att_download&link_id=52&cf_id=24</OnlineLocation> - <ReleaseDate>2010-06-30T07:46:39.4269279+02:00</ReleaseDate> + <ReleaseDate>2011-04-23T00:54:51.9699087+02:00</ReleaseDate> <Tags>standby, suspend, sleeptimer, sleep</Tags> <Location>D:\MediaPortal\mp-plugins\trunk\plugins\MySleepTimer\MpeRelease\MySleepTimer.mpe1</Location> <Params> @@ -196,7 +213,7 @@ <Param1 /> <UpdateOption>OverwriteIfOlder</UpdateOption> <LocalFileName>..\MySleepTimer\img\MySleepTimer_enabled.png</LocalFileName> - <ZipFileName>Installer{CopyFile}\{00b0e213-016f-4815-88fa-7f67e2a305e3}-MySleepTimer_enabled.png</ZipFileName> + <ZipFileName>Installer{CopyFile}\{08dd68d7-aefc-47d7-a9c6-393fd8d627a1}-MySleepTimer_enabled.png</ZipFileName> <DestinationFilename /> </FileItem> </Items> Modified: trunk/plugins/MySleepTimer/MpeRelease/update.xml =================================================================== --- trunk/plugins/MySleepTimer/MpeRelease/update.xml 2011-04-22 22:47:24 UTC (rev 4183) +++ trunk/plugins/MySleepTimer/MpeRelease/update.xml 2011-04-22 22:55:47 UTC (rev 4184) @@ -19,33 +19,50 @@ <Items /> </Sections> <Dependencies> - <Items /> + <Items> + <DependencyItem> + <Type>MediaPortal</Type> + <Id /> + <MinVersion> + <Major>1</Major> + <Minor>1</Minor> + <Build>7</Build> + <Revision>0</Revision> + </MinVersion> + <MaxVersion> + <Major>0</Major> + <Minor>0</Minor> + <Build>0</Build> + <Revision>0</Revision> + </MaxVersion> + <WarnOnly>true</WarnOnly> + <Message>Need minimum MediaPortal 1.2 beta or later</Message> + <Name>MediaPortal</Name> + </DependencyItem> + </Items> </Dependencies> <GeneralInfo> <Name>MySleepTimer</Name> <Id>05afd608-7fb0-4738-85b3-250bb8e521a6</Id> <Author>chefkoch @ Team MediaPortal, Anthrax</Author> - <HomePage>http://forum.team-mediaportal.com/mediaportal-plugins-47/MySleepTimer-47353/</HomePage> + <HomePage>http://forum.team-mediaportal.com/MySleepTimer-t47353.html</HomePage> <ForumPage>http://forum.team-mediaportal.com/MySleepTimer-t47353.html</ForumPage> <UpdateUrl>http://www.team-mediaportal.com/index.php?option=com_mtree&task=att_download&link_id=52&cf_id=52</UpdateUrl> <Version> <Major>1</Major> <Minor>0</Minor> - <Build>4</Build> - <Revision>3660</Revision> + <Build>5</Build> + <Revision>0</Revision> </Version> <ExtensionDescription>If you want to set a sleeptime by simply pressing a remote button, this plugin is what you are searching for. It is possible to define the steps which are used to set the sleeptime and detects the remaining playback time if a media is played while you pressed the sleeptimer button. If you are using IRSS, there will be NO need to configure the remote button mapping within MP, since IRSS detects the sleeptimer plugin and always sends the yellow button if the plugin is found,</ExtensionDescription> - <VersionDescription>Initial release of 1.1 includes: - - deployment via MediaPortal extension package - - reworked configuration - - multi language support</VersionDescription> + <VersionDescription>added MP 1.2 beta compatibility</VersionDescription> <DevelopmentStatus>Stable</DevelopmentStatus> <OnlineLocation>http://www.team-mediaportal.com/index.php?option=com_mtree&task=att_download&link_id=52&cf_id=24</OnlineLocation> - <ReleaseDate>2010-06-30T07:46:39.4269279+02:00</ReleaseDate> + <ReleaseDate>2011-04-23T00:54:51.9699087+02:00</ReleaseDate> <Tags>standby, suspend, sleeptimer, sleep</Tags> <Location>D:\MediaPortal\mp-plugins\trunk\plugins\MySleepTimer\MpeRelease\MySleepTimer.mpe1</Location> <Params> Modified: trunk/plugins/MySleepTimer/MySleepTimer/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/MySleepTimer/MySleepTimer/Properties/AssemblyInfo.cs 2011-04-22 22:47:24 UTC (rev 4183) +++ trunk/plugins/MySleepTimer/MySleepTimer/Properties/AssemblyInfo.cs 2011-04-22 22:55:47 UTC (rev 4184) @@ -22,7 +22,7 @@ using System.Runtime.InteropServices; using MediaPortal.Common.Utils; -[assembly: CompatibleVersion("1.1.6.27644")] +[assembly: CompatibleVersion("1.1.7.0")] // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information @@ -57,5 +57,5 @@ // You can specify all the values or you can default the Revision and Build Numbers // by using the '*' as shown below: -[assembly: AssemblyVersion("1.0.4.0")] -[assembly: AssemblyFileVersion("1.0.4.0")] \ No newline at end of file +[assembly: AssemblyVersion("1.0.5.0")] +[assembly: AssemblyFileVersion("1.0.5.0")] \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ant...@us...> - 2011-11-19 14:53:55
|
Revision: 4331 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=4331&view=rev Author: anthrax-leprosy Date: 2011-11-19 14:53:49 +0000 (Sat, 19 Nov 2011) Log Message: ----------- Modified Paths: -------------- trunk/plugins/MySleepTimer/MpeRelease/MySleepTimer.mpe1 trunk/plugins/MySleepTimer/MpeRelease/MySleepTimer.xmp2 trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimer.cs trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimer.csproj trunk/plugins/MySleepTimer/MySleepTimer/Properties/AssemblyInfo.cs Added Paths: ----------- trunk/plugins/MySleepTimer/MySleepTimer/dll/ trunk/plugins/MySleepTimer/MySleepTimer/dll/Common.Utils.dll trunk/plugins/MySleepTimer/MySleepTimer/dll/Core.dll trunk/plugins/MySleepTimer/MySleepTimer/dll/Dialogs.dll trunk/plugins/MySleepTimer/MySleepTimer/dll/Utils.dll trunk/plugins/MySleepTimer/MySleepTimer/dll/WindowPlugins.dll Modified: trunk/plugins/MySleepTimer/MpeRelease/MySleepTimer.mpe1 =================================================================== (Binary files differ) Modified: trunk/plugins/MySleepTimer/MpeRelease/MySleepTimer.xmp2 =================================================================== --- trunk/plugins/MySleepTimer/MpeRelease/MySleepTimer.xmp2 2011-11-17 13:35:49 UTC (rev 4330) +++ trunk/plugins/MySleepTimer/MpeRelease/MySleepTimer.xmp2 2011-11-19 14:53:49 UTC (rev 4331) @@ -17,6 +17,13 @@ <ZipFileName>Installer{CopyFile}\{23cd779d-aafa-4bc8-80ae-999fc60ebee4}-MySleepTimer.dll</ZipFileName> <DestinationFilename>%Plugins%\process\MySleepTimer.dll</DestinationFilename> </FileItem> + <FileItem InstallType="GenericSkinFile" SystemFile="false" Modified="true"> + <Param1 /> + <UpdateOption>OverwriteIfOlder</UpdateOption> + <LocalFileName>..\MySleepTimer\img\MySleepTimer_enabled.png</LocalFileName> + <ZipFileName>Installer{GenericSkinFile}\{1eae909a-508f-4c2a-84a3-dc3ea79b3d86}-MySleepTimer_enabled.png</ZipFileName> + <DestinationFilename>%Skin%\[DEFAULT]\Media\MySleepTimer_enabled.png</DestinationFilename> + </FileItem> </Items> </Files> </GroupItem> @@ -129,32 +136,49 @@ <MinVersion> <Major>1</Major> <Minor>1</Minor> - <Build>7</Build> - <Revision>0</Revision> + <Build>6</Build> + <Revision>27644</Revision> </MinVersion> <MaxVersion> - <Major>0</Major> - <Minor>0</Minor> - <Build>0</Build> - <Revision>0</Revision> + <Major>1</Major> + <Minor>1</Minor> + <Build>6</Build> + <Revision>27644</Revision> </MaxVersion> - <WarnOnly>true</WarnOnly> - <Message>Need minimum MediaPortal 1.2 beta or later</Message> + <WarnOnly>false</WarnOnly> + <Message>requires MediaPortal version 1.1.6.27644 to 1.1.6.27644.</Message> <Name>MediaPortal</Name> </DependencyItem> </Items> </Dependencies> + <PluginDependencies> + <Items> + <PluginDependencyItem AssemblyName="MySleepTimer.dll"> + <CompatibleVersion> + <Items> + <CompatibleVersionItem> + <MinRequiredVersion>1.1.7.0</MinRequiredVersion> + <DesignedForVersion>1.1.7.0</DesignedForVersion> + </CompatibleVersionItem> + </Items> + </CompatibleVersion> + <SubSystemsUsed> + <Items /> + </SubSystemsUsed> + </PluginDependencyItem> + </Items> + </PluginDependencies> <GeneralInfo> <Name>MySleepTimer</Name> <Id>05afd608-7fb0-4738-85b3-250bb8e521a6</Id> - <Author>chefkoch @ Team MediaPortal, Anthrax</Author> + <Author>Team MediaPortal, Anthrax (thx Chefkoch)</Author> <HomePage>http://forum.team-mediaportal.com/MySleepTimer-t47353.html</HomePage> <ForumPage>http://forum.team-mediaportal.com/MySleepTimer-t47353.html</ForumPage> <UpdateUrl>http://www.team-mediaportal.com/index.php?option=com_mtree&task=att_download&link_id=52&cf_id=52</UpdateUrl> <Version> <Major>1</Major> <Minor>0</Minor> - <Build>5</Build> + <Build>6</Build> <Revision>0</Revision> </Version> <ExtensionDescription>If you want to set a sleeptime by simply pressing a remote button, this plugin is what you are searching for. @@ -165,9 +189,9 @@ <VersionDescription>added MP 1.2 beta compatibility</VersionDescription> <DevelopmentStatus>Stable</DevelopmentStatus> <OnlineLocation>http://www.team-mediaportal.com/index.php?option=com_mtree&task=att_download&link_id=52&cf_id=24</OnlineLocation> - <ReleaseDate>2011-04-23T00:54:51.9699087+02:00</ReleaseDate> + <ReleaseDate>2011-11-19T00:54:51</ReleaseDate> <Tags>standby, suspend, sleeptimer, sleep</Tags> - <Location>D:\MediaPortal\mp-plugins\trunk\plugins\MySleepTimer\MpeRelease\MySleepTimer.mpe1</Location> + <Location>D:\Anthrax-Leprosy-Pi\Documents\Development\Projekte\MediaPortal\MySleepTimer\MpeRelease\MySleepTimer.mpe1</Location> <Params> <Items> <SectionParam Name="Icon"> @@ -209,20 +233,21 @@ <ZipFileName>Installer{CopyFile}\{23cd779d-aafa-4bc8-80ae-999fc60ebee4}-MySleepTimer.dll</ZipFileName> <DestinationFilename>%Plugins%\process\MySleepTimer.dll</DestinationFilename> </FileItem> - <FileItem InstallType="CopyFile" SystemFile="true" Modified="true"> + <FileItem InstallType="GenericSkinFile" SystemFile="true" Modified="true"> <Param1 /> <UpdateOption>OverwriteIfOlder</UpdateOption> <LocalFileName>..\MySleepTimer\img\MySleepTimer_enabled.png</LocalFileName> - <ZipFileName>Installer{CopyFile}\{08dd68d7-aefc-47d7-a9c6-393fd8d627a1}-MySleepTimer_enabled.png</ZipFileName> - <DestinationFilename /> + <ZipFileName>Installer{GenericSkinFile}\{1eae909a-508f-4c2a-84a3-dc3ea79b3d86}-MySleepTimer_enabled.png</ZipFileName> + <DestinationFilename>%Skin%\[DEFAULT]\Media\MySleepTimer_enabled.png</DestinationFilename> </FileItem> </Items> </UniqueFileList> <ProjectSettings> <FolderGroups /> - <ProjectFilename>D:\MediaPortal\mp-plugins\trunk\plugins\MySleepTimer\MpeRelease\MySleepTimer.xmp2</ProjectFilename> + <ProjectFilename>MySleepTimer.xmp2</ProjectFilename> <UpdatePath1>D:\MediaPortal\mp-plugins\trunk\plugins\MySleepTimer\MpeRelease\update.xml</UpdatePath1> <UpdatePath2 /> <UpdatePath3 /> </ProjectSettings> + <IsSkin>false</IsSkin> </PackageClass> \ No newline at end of file Modified: trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimer.cs =================================================================== --- trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimer.cs 2011-11-17 13:35:49 UTC (rev 4330) +++ trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimer.cs 2011-11-19 14:53:49 UTC (rev 4331) @@ -237,7 +237,7 @@ _dialogSleepTimerNotify = (GUIDialogNotify)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_NOTIFY); _dialogSleepTimerNotify.TimeOut = timeOut; - _dialogSleepTimerNotify.SetImage(GUIGraphicsContext.Skin + @"\Media\MySleepTimer_logo.png"); + _dialogSleepTimerNotify.SetImage(GUIGraphicsContext.Skin + @"\Media\MySleepTimer_enabled.png"); _dialogSleepTimerNotify.SetHeading("MySleepTimer"); _dialogSleepTimerNotify.SetText(notifyMessage); _dialogSleepTimerNotify.DoModal(GUIWindowManager.ActiveWindow); Modified: trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimer.csproj =================================================================== --- trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimer.csproj 2011-11-17 13:35:49 UTC (rev 4330) +++ trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimer.csproj 2011-11-19 14:53:49 UTC (rev 4331) @@ -55,13 +55,16 @@ </PropertyGroup> <ItemGroup> <Reference Include="Common.Utils"> - <HintPath>..\..\..\..\..\MediaPortal\trunk\Common-MP-TVE3\Common.Utils\bin\Release\Common.Utils.dll</HintPath> + <HintPath>dll\Common.Utils.dll</HintPath> + <Private>False</Private> </Reference> <Reference Include="Core"> - <HintPath>..\..\..\..\..\MediaPortal\trunk\mediaportal\Core\bin\Release\Core.dll</HintPath> + <HintPath>dll\Core.dll</HintPath> + <Private>False</Private> </Reference> <Reference Include="Dialogs"> - <HintPath>..\..\..\..\..\MediaPortal\trunk\mediaportal\Dialogs\bin\Release\Dialogs.dll</HintPath> + <HintPath>dll\Dialogs.dll</HintPath> + <Private>False</Private> </Reference> <Reference Include="System" /> <Reference Include="System.Data" /> @@ -69,8 +72,13 @@ <Reference Include="System.Windows.Forms" /> <Reference Include="System.Xml" /> <Reference Include="Utils"> - <HintPath>..\..\..\..\..\MediaPortal\trunk\mediaportal\Utils\bin\Release\Utils.dll</HintPath> + <HintPath>dll\Utils.dll</HintPath> + <Private>False</Private> </Reference> + <Reference Include="WindowPlugins"> + <HintPath>dll\WindowPlugins.dll</HintPath> + <Private>False</Private> + </Reference> </ItemGroup> <ItemGroup> <Compile Include="Translation.cs" /> Modified: trunk/plugins/MySleepTimer/MySleepTimer/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/MySleepTimer/MySleepTimer/Properties/AssemblyInfo.cs 2011-11-17 13:35:49 UTC (rev 4330) +++ trunk/plugins/MySleepTimer/MySleepTimer/Properties/AssemblyInfo.cs 2011-11-19 14:53:49 UTC (rev 4331) @@ -33,7 +33,7 @@ [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("Anthrax")] [assembly: AssemblyProduct("MySleepTimer")] -[assembly: AssemblyCopyright("Copyright \xA9 2008")] +[assembly: AssemblyCopyright("Copyright \xA9 2011")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] @@ -57,5 +57,5 @@ // You can specify all the values or you can default the Revision and Build Numbers // by using the '*' as shown below: -[assembly: AssemblyVersion("1.0.5.0")] -[assembly: AssemblyFileVersion("1.0.5.0")] \ No newline at end of file +[assembly: AssemblyVersion("1.0.6.0")] +[assembly: AssemblyFileVersion("1.0.6.0")] \ No newline at end of file Added: trunk/plugins/MySleepTimer/MySleepTimer/dll/Common.Utils.dll =================================================================== (Binary files differ) Property changes on: trunk/plugins/MySleepTimer/MySleepTimer/dll/Common.Utils.dll ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/plugins/MySleepTimer/MySleepTimer/dll/Core.dll =================================================================== (Binary files differ) Property changes on: trunk/plugins/MySleepTimer/MySleepTimer/dll/Core.dll ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/plugins/MySleepTimer/MySleepTimer/dll/Dialogs.dll =================================================================== (Binary files differ) Property changes on: trunk/plugins/MySleepTimer/MySleepTimer/dll/Dialogs.dll ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/plugins/MySleepTimer/MySleepTimer/dll/Utils.dll =================================================================== (Binary files differ) Property changes on: trunk/plugins/MySleepTimer/MySleepTimer/dll/Utils.dll ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/plugins/MySleepTimer/MySleepTimer/dll/WindowPlugins.dll =================================================================== (Binary files differ) Property changes on: trunk/plugins/MySleepTimer/MySleepTimer/dll/WindowPlugins.dll ___________________________________________________________________ Added: svn:mime-type + application/octet-stream This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ant...@us...> - 2012-03-16 12:28:37
|
Revision: 4467 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=4467&view=rev Author: anthrax-leprosy Date: 2012-03-16 12:28:28 +0000 (Fri, 16 Mar 2012) Log Message: ----------- Added Paths: ----------- trunk/plugins/MySleepTimer/MySleepTimer/ trunk/plugins/MySleepTimer/MySleepTimer/Extension/ trunk/plugins/MySleepTimer/MySleepTimer/Extension/Forum/ trunk/plugins/MySleepTimer/MySleepTimer/Extension/Forum/MySleepTimer_01.png trunk/plugins/MySleepTimer/MySleepTimer/Extension/Forum/MySleepTimer_02.png trunk/plugins/MySleepTimer/MySleepTimer/Extension/Forum/MySleepTimer_03.png trunk/plugins/MySleepTimer/MySleepTimer/Extension/Forum/MySleepTimer_04.png trunk/plugins/MySleepTimer/MySleepTimer/Extension/Forum/MySleepTimer_logo.png trunk/plugins/MySleepTimer/MySleepTimer/Extension/Installer/ trunk/plugins/MySleepTimer/MySleepTimer/Extension/Installer/MySleepTimer.mpe1 trunk/plugins/MySleepTimer/MySleepTimer/Extension/Installer/MySleepTimer.xmp2 trunk/plugins/MySleepTimer/MySleepTimer/Extension/Installer/update.xml trunk/plugins/MySleepTimer/MySleepTimer/Plugin/ trunk/plugins/MySleepTimer/MySleepTimer/Plugin/Configuration/ trunk/plugins/MySleepTimer/MySleepTimer/Plugin/Configuration/MySleepTimerConfig.Designer.cs trunk/plugins/MySleepTimer/MySleepTimer/Plugin/Configuration/MySleepTimerConfig.cs trunk/plugins/MySleepTimer/MySleepTimer/Plugin/Configuration/MySleepTimerConfig.resx trunk/plugins/MySleepTimer/MySleepTimer/Plugin/Configuration/Settings.cs trunk/plugins/MySleepTimer/MySleepTimer/Plugin/Window/ trunk/plugins/MySleepTimer/MySleepTimer/Plugin/Window/MySleepTimer.cs trunk/plugins/MySleepTimer/MySleepTimer/Plugin/Window/MySleepTimerOld.cs trunk/plugins/MySleepTimer/MySleepTimer/Plugin/Window/Translation.cs trunk/plugins/MySleepTimer/MySleepTimer/Resources/ trunk/plugins/MySleepTimer/MySleepTimer/Resources/dll/ trunk/plugins/MySleepTimer/MySleepTimer/Resources/dll/Common.Utils.dll trunk/plugins/MySleepTimer/MySleepTimer/Resources/dll/Common.Utils.pdb trunk/plugins/MySleepTimer/MySleepTimer/Resources/dll/Core.dll trunk/plugins/MySleepTimer/MySleepTimer/Resources/dll/Core.pdb trunk/plugins/MySleepTimer/MySleepTimer/Resources/dll/Dialogs.dll trunk/plugins/MySleepTimer/MySleepTimer/Resources/dll/Dialogs.pdb trunk/plugins/MySleepTimer/MySleepTimer/Resources/dll/Stateless.XML trunk/plugins/MySleepTimer/MySleepTimer/Resources/dll/Stateless.dll trunk/plugins/MySleepTimer/MySleepTimer/Resources/dll/Stateless.pdb trunk/plugins/MySleepTimer/MySleepTimer/Resources/dll/Utils.dll trunk/plugins/MySleepTimer/MySleepTimer/Resources/dll/Utils.pdb trunk/plugins/MySleepTimer/MySleepTimer/Resources/dll/WindowPlugins.dll trunk/plugins/MySleepTimer/MySleepTimer/Resources/dll/WindowPlugins.pdb trunk/plugins/MySleepTimer/MySleepTimer/Resources/img/ trunk/plugins/MySleepTimer/MySleepTimer/Resources/img/MySleepTimer_disabled.png trunk/plugins/MySleepTimer/MySleepTimer/Resources/img/MySleepTimer_enabled.png trunk/plugins/MySleepTimer/MySleepTimer/Skin/ trunk/plugins/MySleepTimer/MySleepTimer/Skin/Media/ trunk/plugins/MySleepTimer/MySleepTimer/Skin/Media/MySleepTimer_enabled.png Removed Paths: ------------- trunk/plugins/MySleepTimer/Build/ trunk/plugins/MySleepTimer/MpeRelease/ trunk/plugins/MySleepTimer/MySleepTimer/ trunk/plugins/MySleepTimer/MySleepTimer.5.1.resharper trunk/plugins/MySleepTimer/MySleepTimer.sln trunk/plugins/MySleepTimer/releases/ trunk/plugins/MySleepTimer/screenshots/ Added: trunk/plugins/MySleepTimer/MySleepTimer/Extension/Forum/MySleepTimer_01.png =================================================================== (Binary files differ) Property changes on: trunk/plugins/MySleepTimer/MySleepTimer/Extension/Forum/MySleepTimer_01.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/plugins/MySleepTimer/MySleepTimer/Extension/Forum/MySleepTimer_02.png =================================================================== (Binary files differ) Property changes on: trunk/plugins/MySleepTimer/MySleepTimer/Extension/Forum/MySleepTimer_02.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/plugins/MySleepTimer/MySleepTimer/Extension/Forum/MySleepTimer_03.png =================================================================== (Binary files differ) Property changes on: trunk/plugins/MySleepTimer/MySleepTimer/Extension/Forum/MySleepTimer_03.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/plugins/MySleepTimer/MySleepTimer/Extension/Forum/MySleepTimer_04.png =================================================================== (Binary files differ) Property changes on: trunk/plugins/MySleepTimer/MySleepTimer/Extension/Forum/MySleepTimer_04.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/plugins/MySleepTimer/MySleepTimer/Extension/Forum/MySleepTimer_logo.png =================================================================== (Binary files differ) Property changes on: trunk/plugins/MySleepTimer/MySleepTimer/Extension/Forum/MySleepTimer_logo.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/plugins/MySleepTimer/MySleepTimer/Extension/Installer/MySleepTimer.mpe1 =================================================================== (Binary files differ) Property changes on: trunk/plugins/MySleepTimer/MySleepTimer/Extension/Installer/MySleepTimer.mpe1 ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/plugins/MySleepTimer/MySleepTimer/Extension/Installer/MySleepTimer.xmp2 =================================================================== --- trunk/plugins/MySleepTimer/MySleepTimer/Extension/Installer/MySleepTimer.xmp2 (rev 0) +++ trunk/plugins/MySleepTimer/MySleepTimer/Extension/Installer/MySleepTimer.xmp2 2012-03-16 12:28:28 UTC (rev 4467) @@ -0,0 +1,283 @@ +<?xml version="1.0" encoding="utf-8"?> +<PackageClass xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <Version>2.0</Version> + <Groups> + <Items> + <GroupItem Name="Default"> + <ParentGroup /> + <DisplayName>Default</DisplayName> + <DefaulChecked>true</DefaulChecked> + <Description>Default</Description> + <Files> + <Items> + <FileItem InstallType="CopyFile" SystemFile="false" Modified="true"> + <Param1 /> + <UpdateOption>AlwaysOverwrite</UpdateOption> + <LocalFileName>..\..\bin\Release\MySleepTimer.dll</LocalFileName> + <ZipFileName>Installer{CopyFile}\{24ae0d76-6bf8-4999-b326-841d08571444}-MySleepTimer.dll</ZipFileName> + <DestinationFilename>%Plugins%\Windows\MySleepTimer.dll</DestinationFilename> + </FileItem> + <FileItem InstallType="CopyFile" SystemFile="false" Modified="true"> + <Param1 /> + <UpdateOption>AlwaysOverwrite</UpdateOption> + <LocalFileName>..\..\bin\Release\Stateless.dll</LocalFileName> + <ZipFileName>Installer{CopyFile}\{a35707b7-2f81-433d-ba56-0fceea5d18d1}-Stateless.dll</ZipFileName> + <DestinationFilename>%Plugins%\Windows\Stateless.dll</DestinationFilename> + </FileItem> + <FileItem InstallType="GenericSkinFile" SystemFile="false" Modified="true"> + <Param1 /> + <UpdateOption>AlwaysOverwrite</UpdateOption> + <LocalFileName>..\..\Skin\Media\MySleepTimer_enabled.png</LocalFileName> + <ZipFileName>Installer{CopyFile}\{3e7ffc52-c3ec-4232-9eb1-ad6ac0aa6cb4}-MySleepTimer_enabled.png</ZipFileName> + <DestinationFilename>%Skin%\[DEFAULT]\Media\MySleepTimer_enabled.png</DestinationFilename> + </FileItem> + <FileItem InstallType="CopyFile" SystemFile="false" Modified="true"> + <Param1 /> + <UpdateOption>AlwaysOverwrite</UpdateOption> + <LocalFileName>..\..\Language\de.xml</LocalFileName> + <ZipFileName>Installer{CopyFile}\{6edce84f-fd94-438d-9b25-249b74a9a592}-de.xml</ZipFileName> + <DestinationFilename>%Language%\MySleepTimer\de.xml</DestinationFilename> + </FileItem> + </Items> + </Files> + </GroupItem> + </Items> + </Groups> + <Sections> + <Items> + <SectionItem Guid="7d214f70-ef9e-45e2-b567-a9bcc3921f1f" Name="Welcome Screen" ConditionGroup=""> + <Params> + <Items> + <SectionParam Name="Header text"> + <Value>Welcome to the Extension Installer for [Name]</Value> + <ValueType>String</ValueType> + <Description /> + </SectionParam> + <SectionParam Name="Description"> + <Value>This will install [Name] version [Version] on your computer. +It is recommended that you close all other applications before continuing. +Click Next to continue or Cancel to exit Setup.</Value> + <ValueType>String</ValueType> + <Description /> + </SectionParam> + <SectionParam Name="Left part image"> + <Value>..\..\Skin\Media\MySleepTimer_enabled.png</Value> + <ValueType>File</ValueType> + <Description /> + </SectionParam> + <SectionParam Name="Header image"> + <Value /> + <ValueType>File</ValueType> + <Description>Image in upper right part</Description> + </SectionParam> + </Items> + </Params> + <Actions> + <Items /> + </Actions> + <IncludedGroups /> + <PanelName>Welcome Screen</PanelName> + <WizardButtonsEnum>NextCancel</WizardButtonsEnum> + </SectionItem> + <SectionItem Guid="9bcdd6ec-a0e1-4660-a4f1-da7eac9f64db" Name="Install Section" ConditionGroup=""> + <Params> + <Items> + <SectionParam Name="Header Title"> + <Value>This will install [Name] version [Version] on your computer. +It is recommended that you close all other applications before continuing. +Click Next to continue or Cancel to exit Setup.</Value> + <ValueType>String</ValueType> + <Description>Header title</Description> + </SectionParam> + <SectionParam Name="Header description"> + <Value /> + <ValueType>String</ValueType> + <Description>Description of section, shown in under section title</Description> + </SectionParam> + <SectionParam Name="Header image"> + <Value>..\..\Skin\Media\MySleepTimer_enabled.png</Value> + <ValueType>File</ValueType> + <Description>Image in upper right part</Description> + </SectionParam> + </Items> + </Params> + <Actions> + <Items> + <ActionItem Name="InstallFiles" ActionType="InstallFiles" ConditionGroup=""> + <Params> + <Items /> + </Params> + <ExecuteLocation>AfterPanelShow</ExecuteLocation> + </ActionItem> + </Items> + </Actions> + <IncludedGroups /> + <PanelName>Install Section</PanelName> + <WizardButtonsEnum>Next</WizardButtonsEnum> + </SectionItem> + <SectionItem Guid="6d1f688f-c543-4341-b133-9b81df81f8b5" Name="Setup Complete" ConditionGroup=""> + <Params> + <Items> + <SectionParam Name="Header text"> + <Value>The Extension Installer Wizard has successfully installed [Name].</Value> + <ValueType>String</ValueType> + <Description /> + </SectionParam> + <SectionParam Name="Left part image"> + <Value>..\..\Skin\Media\MySleepTimer_enabled.png</Value> + <ValueType>File</ValueType> + <Description /> + </SectionParam> + <SectionParam Name="Header image"> + <Value /> + <ValueType>File</ValueType> + <Description>Image in upper right part</Description> + </SectionParam> + </Items> + </Params> + <Actions> + <Items /> + </Actions> + <IncludedGroups /> + <PanelName>Setup Complete</PanelName> + <WizardButtonsEnum>Finish</WizardButtonsEnum> + </SectionItem> + </Items> + </Sections> + <Dependencies> + <Items> + <DependencyItem> + <Type>MediaPortal</Type> + <Id /> + <MinVersion> + <Major>1</Major> + <Minor>1</Minor> + <Build>6</Build> + <Revision>27644</Revision> + </MinVersion> + <MaxVersion> + <Major>1</Major> + <Minor>1</Minor> + <Build>6</Build> + <Revision>27644</Revision> + </MaxVersion> + <WarnOnly>false</WarnOnly> + <Message>requires MediaPortal version 1.1.6.27644 to 1.1.6.27644.</Message> + <Name>MediaPortal</Name> + </DependencyItem> + </Items> + </Dependencies> + <PluginDependencies> + <Items> + <PluginDependencyItem AssemblyName="MySleepTimer.dll"> + <CompatibleVersion> + <Items> + <CompatibleVersionItem> + <MinRequiredVersion>1.1.7.0</MinRequiredVersion> + <DesignedForVersion>1.1.7.0</DesignedForVersion> + </CompatibleVersionItem> + </Items> + </CompatibleVersion> + <SubSystemsUsed> + <Items /> + </SubSystemsUsed> + </PluginDependencyItem> + </Items> + </PluginDependencies> + <GeneralInfo> + <Name>MySleepTimer</Name> + <Id>05afd608-7fb0-4738-85b3-250bb8e521a6</Id> + <Author>Team MediaPortal, Anthrax (thx Chefkoch)</Author> + <HomePage>http://www.team-mediaportal.com/extensions/system/mysleeptimer</HomePage> + <ForumPage>http://forum.team-mediaportal.com/threads/mysleeptimer.47353/</ForumPage> + <UpdateUrl>http://mp-plugins.svn.sourceforge.net/viewvc/mp-plugins/trunk/plugins/MySleepTimer/MySleepTimer/Extension/Installer/update.xml</UpdateUrl> + <Version> + <Major>2</Major> + <Minor>0</Minor> + <Build>0</Build> + <Revision>0</Revision> + </Version> + <ExtensionDescription>If you want to set a sleeptime by simply pressing a remote button, this plugin is what you are searching for. + +It is possible to define the steps which are used to set the sleeptime and detects the remaining playback time if a media is played while you pressed the sleeptimer button. + +If you are using IRSS, there will be NO need to configure the remote button mapping within MP, since IRSS detects the sleeptimer plugin and always sends the yellow button if the plugin is found,</ExtensionDescription> + <VersionDescription>added support for MediaPortal 1.2.2.0 final</VersionDescription> + <DevelopmentStatus>Stable</DevelopmentStatus> + <OnlineLocation>http://mp-plugins.svn.sourceforge.net/viewvc/mp-plugins/trunk/plugins/MySleepTimer/MySleepTimer/Extension/Installer/MySleepTimer.mpe1</OnlineLocation> + <ReleaseDate>2012-03-16T00:54:51</ReleaseDate> + <Tags>standby, suspend, sleeptimer, sleep</Tags> + <Location>D:\Anthrax-Leprosy-Pi\Documents\Development\Projekte\MediaPortal\MySleepTimer\MySleepTimer\Extension\Installer\MySleepTimer.mpe1</Location> + <Params> + <Items> + <SectionParam Name="Icon"> + <Value>..\..\Skin\Media\MySleepTimer_enabled.png</Value> + <ValueType>File</ValueType> + <Description>The icon file of the package (jpg,png,bmp)</Description> + </SectionParam> + <SectionParam Name="Online Icon"> + <Value>http://mp-plugins.svn.sourceforge.net/viewvc/mp-plugins/trunk/plugins/MySleepTimer/MySleepTimer/img/MySleepTimer_enabled.png</Value> + <ValueType>String</ValueType> + <Description>The icon file of the package stored online (jpg,png,bmp)</Description> + </SectionParam> + <SectionParam Name="Configuration file"> + <Value>%Plugins%\process\MySleepTimer.dll</Value> + <ValueType>Template</ValueType> + <Description>The file used to configure the extension. + If have .exe extension the will be executed + If have .dll extension used like MP plugin configuration</Description> + </SectionParam> + <SectionParam Name="Online Screenshots"> + <Value /> + <ValueType>String</ValueType> + <Description>Online stored screenshot urls separated by ; </Description> + </SectionParam> + <SectionParam Name="Force to uninstall on update"> + <Value>yes</Value> + <ValueType>Bool</ValueType> + <Description>Show dialog and force to uninstall previous version when updating an extension. Should only be disabled if you are using an NSIS/MSI installer.</Description> + </SectionParam> + </Items> + </Params> + </GeneralInfo> + <UniqueFileList> + <Items> + <FileItem InstallType="CopyFile" SystemFile="false" Modified="true"> + <Param1 /> + <UpdateOption>AlwaysOverwrite</UpdateOption> + <LocalFileName>..\..\bin\Release\MySleepTimer.dll</LocalFileName> + <ZipFileName>Installer{CopyFile}\{24ae0d76-6bf8-4999-b326-841d08571444}-MySleepTimer.dll</ZipFileName> + <DestinationFilename>%Plugins%\Windows\MySleepTimer.dll</DestinationFilename> + </FileItem> + <FileItem InstallType="CopyFile" SystemFile="false" Modified="true"> + <Param1 /> + <UpdateOption>AlwaysOverwrite</UpdateOption> + <LocalFileName>..\..\bin\Release\Stateless.dll</LocalFileName> + <ZipFileName>Installer{CopyFile}\{a35707b7-2f81-433d-ba56-0fceea5d18d1}-Stateless.dll</ZipFileName> + <DestinationFilename>%Plugins%\Windows\Stateless.dll</DestinationFilename> + </FileItem> + <FileItem InstallType="GenericSkinFile" SystemFile="true" Modified="true"> + <Param1 /> + <UpdateOption>AlwaysOverwrite</UpdateOption> + <LocalFileName>..\..\Skin\Media\MySleepTimer_enabled.png</LocalFileName> + <ZipFileName>Installer{CopyFile}\{3e7ffc52-c3ec-4232-9eb1-ad6ac0aa6cb4}-MySleepTimer_enabled.png</ZipFileName> + <DestinationFilename>%Skin%\[DEFAULT]\Media\MySleepTimer_enabled.png</DestinationFilename> + </FileItem> + <FileItem InstallType="CopyFile" SystemFile="false" Modified="true"> + <Param1 /> + <UpdateOption>AlwaysOverwrite</UpdateOption> + <LocalFileName>..\..\Language\de.xml</LocalFileName> + <ZipFileName>Installer{CopyFile}\{6edce84f-fd94-438d-9b25-249b74a9a592}-de.xml</ZipFileName> + <DestinationFilename>%Language%\MySleepTimer\de.xml</DestinationFilename> + </FileItem> + </Items> + </UniqueFileList> + <ProjectSettings> + <FolderGroups /> + <ProjectFilename>MySleepTimer.xmp2</ProjectFilename> + <UpdatePath1>D:\Anthrax-Leprosy-Pi\Documents\Development\Projekte\MediaPortal\MySleepTimer\MySleepTimer\Extension\Installer\update.xml</UpdatePath1> + <UpdatePath2 /> + <UpdatePath3 /> + </ProjectSettings> + <IsSkin>false</IsSkin> +</PackageClass> \ No newline at end of file Added: trunk/plugins/MySleepTimer/MySleepTimer/Extension/Installer/update.xml =================================================================== --- trunk/plugins/MySleepTimer/MySleepTimer/Extension/Installer/update.xml (rev 0) +++ trunk/plugins/MySleepTimer/MySleepTimer/Extension/Installer/update.xml 2012-03-16 12:28:28 UTC (rev 4467) @@ -0,0 +1,237 @@ +<?xml version="1.0" encoding="utf-8"?> +<ExtensionCollection xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <Items> + <PackageClass> + <Version>2.0</Version> + <Groups> + <Items> + <GroupItem Name="Default"> + <DisplayName>Default</DisplayName> + <DefaulChecked>true</DefaulChecked> + <Description>Default</Description> + <Files> + <Items /> + </Files> + </GroupItem> + </Items> + </Groups> + <Sections> + <Items /> + </Sections> + <Dependencies> + <Items> + <DependencyItem> + <Type>MediaPortal</Type> + <Id /> + <MinVersion> + <Major>1</Major> + <Minor>1</Minor> + <Build>6</Build> + <Revision>27644</Revision> + </MinVersion> + <MaxVersion> + <Major>1</Major> + <Minor>1</Minor> + <Build>6</Build> + <Revision>27644</Revision> + </MaxVersion> + <WarnOnly>false</WarnOnly> + <Message>requires MediaPortal version 1.1.6.27644 to 1.1.6.27644.</Message> + <Name>MediaPortal</Name> + </DependencyItem> + </Items> + </Dependencies> + <PluginDependencies> + <Items> + <PluginDependencyItem AssemblyName="MySleepTimer.dll"> + <CompatibleVersion> + <Items> + <CompatibleVersionItem> + <MinRequiredVersion>1.1.7.0</MinRequiredVersion> + <DesignedForVersion>1.1.7.0</DesignedForVersion> + </CompatibleVersionItem> + </Items> + </CompatibleVersion> + <SubSystemsUsed> + <Items /> + </SubSystemsUsed> + </PluginDependencyItem> + </Items> + </PluginDependencies> + <GeneralInfo> + <Name>MySleepTimer</Name> + <Id>05afd608-7fb0-4738-85b3-250bb8e521a6</Id> + <Author>Team MediaPortal, Anthrax (thx Chefkoch)</Author> + <HomePage>http://forum.team-mediaportal.com/MySleepTimer-t47353.html</HomePage> + <ForumPage>http://forum.team-mediaportal.com/MySleepTimer-t47353.html</ForumPage> + <UpdateUrl>http://mp-plugins.svn.sourceforge.net/viewvc/mp-plugins/trunk/plugins/MySleepTimer/MpeRelease/update.xml</UpdateUrl> + <Version> + <Major>1</Major> + <Minor>0</Minor> + <Build>6</Build> + <Revision>0</Revision> + </Version> + <ExtensionDescription>If you want to set a sleeptime by simply pressing a remote button, this plugin is what you are searching for. + +It is possible to define the steps which are used to set the sleeptime and detects the remaining playback time if a media is played while you pressed the sleeptimer button. + +If you are using IRSS, there will be NO need to configure the remote button mapping within MP, since IRSS detects the sleeptimer plugin and always sends the yellow button if the plugin is found,</ExtensionDescription> + <VersionDescription>added support for MediaPortal 1.2.1.0 final</VersionDescription> + <DevelopmentStatus>Stable</DevelopmentStatus> + <OnlineLocation>http://mp-plugins.svn.sourceforge.net/viewvc/mp-plugins/trunk/plugins/MySleepTimer/MpeRelease/MySleepTimer.mpe1</OnlineLocation> + <ReleaseDate>2011-11-19T00:54:51</ReleaseDate> + <Tags>standby, suspend, sleeptimer, sleep</Tags> + <Location>D:\Anthrax-Leprosy-Pi\Documents\Development\Projekte\MediaPortal\MySleepTimer\MpeRelease\MySleepTimer.mpe1</Location> + <Params> + <Items> + <SectionParam Name="Online Icon"> + <Value>http://mp-plugins.svn.sourceforge.net/viewvc/mp-plugins/trunk/plugins/MySleepTimer/MySleepTimer/img/MySleepTimer_enabled.png</Value> + <ValueType>String</ValueType> + <Description>The icon file of the package stored online (jpg,png,bmp)</Description> + </SectionParam> + <SectionParam Name="Configuration file"> + <Value>%Plugins%\process\MySleepTimer.dll</Value> + <ValueType>Template</ValueType> + <Description>The file used to configure the extension. + If have .exe extension the will be executed + If have .dll extension used like MP plugin configuration</Description> + </SectionParam> + <SectionParam Name="Online Screenshots"> + <Value /> + <ValueType>String</ValueType> + <Description>Online stored screenshot urls separated by ; </Description> + </SectionParam> + <SectionParam Name="Force to uninstall on update"> + <Value>yes</Value> + <ValueType>Bool</ValueType> + <Description>Show dialog and force to uninstall previous version when updating an extension. Should only be disabled if you are using an NSIS/MSI installer.</Description> + </SectionParam> + </Items> + </Params> + </GeneralInfo> + <UniqueFileList> + <Items /> + </UniqueFileList> + <ProjectSettings> + <FolderGroups /> + </ProjectSettings> + <IsSkin>false</IsSkin> + </PackageClass> + <PackageClass> + <Version>2.0</Version> + <Groups> + <Items> + <GroupItem Name="Default"> + <DisplayName>Default</DisplayName> + <DefaulChecked>true</DefaulChecked> + <Description>Default</Description> + <Files> + <Items /> + </Files> + </GroupItem> + </Items> + </Groups> + <Sections> + <Items /> + </Sections> + <Dependencies> + <Items> + <DependencyItem> + <Type>MediaPortal</Type> + <Id /> + <MinVersion> + <Major>1</Major> + <Minor>1</Minor> + <Build>6</Build> + <Revision>27644</Revision> + </MinVersion> + <MaxVersion> + <Major>1</Major> + <Minor>1</Minor> + <Build>6</Build> + <Revision>27644</Revision> + </MaxVersion> + <WarnOnly>false</WarnOnly> + <Message>requires MediaPortal version 1.1.6.27644 to 1.1.6.27644.</Message> + <Name>MediaPortal</Name> + </DependencyItem> + </Items> + </Dependencies> + <PluginDependencies> + <Items> + <PluginDependencyItem AssemblyName="MySleepTimer.dll"> + <CompatibleVersion> + <Items> + <CompatibleVersionItem> + <MinRequiredVersion>1.1.7.0</MinRequiredVersion> + <DesignedForVersion>1.1.7.0</DesignedForVersion> + </CompatibleVersionItem> + </Items> + </CompatibleVersion> + <SubSystemsUsed> + <Items /> + </SubSystemsUsed> + </PluginDependencyItem> + </Items> + </PluginDependencies> + <GeneralInfo> + <Name>MySleepTimer</Name> + <Id>05afd608-7fb0-4738-85b3-250bb8e521a6</Id> + <Author>Team MediaPortal, Anthrax (thx Chefkoch)</Author> + <HomePage>http://www.team-mediaportal.com/extensions/system/mysleeptimer</HomePage> + <ForumPage>http://forum.team-mediaportal.com/threads/mysleeptimer.47353/</ForumPage> + <UpdateUrl>http://mp-plugins.svn.sourceforge.net/viewvc/mp-plugins/trunk/plugins/MySleepTimer/MpeRelease/update.xml</UpdateUrl> + <Version> + <Major>2</Major> + <Minor>0</Minor> + <Build>0</Build> + <Revision>0</Revision> + </Version> + <ExtensionDescription>If you want to set a sleeptime by simply pressing a remote button, this plugin is what you are searching for. + +It is possible to define the steps which are used to set the sleeptime and detects the remaining playback time if a media is played while you pressed the sleeptimer button. + +If you are using IRSS, there will be NO need to configure the remote button mapping within MP, since IRSS detects the sleeptimer plugin and always sends the yellow button if the plugin is found,</ExtensionDescription> + <VersionDescription>added support for MediaPortal 1.2.2.0 final</VersionDescription> + <DevelopmentStatus>Stable</DevelopmentStatus> + <OnlineLocation>http://mp-plugins.svn.sourceforge.net/viewvc/mp-plugins/trunk/plugins/MySleepTimer/MpeRelease/MySleepTimer.mpe1</OnlineLocation> + <ReleaseDate>2012-03-16T00:54:51</ReleaseDate> + <Tags>standby, suspend, sleeptimer, sleep</Tags> + <Location>D:\Anthrax-Leprosy-Pi\Documents\Development\Projekte\MediaPortal\MySleepTimer\MySleepTimer\Extension\Installer\MySleepTimer.mpe1</Location> + <Params> + <Items> + <SectionParam Name="Online Icon"> + <Value>http://mp-plugins.svn.sourceforge.net/viewvc/mp-plugins/trunk/plugins/MySleepTimer/MySleepTimer/img/MySleepTimer_enabled.png</Value> + <ValueType>String</ValueType> + <Description>The icon file of the package stored online (jpg,png,bmp)</Description> + </SectionParam> + <SectionParam Name="Configuration file"> + <Value>%Plugins%\process\MySleepTimer.dll</Value> + <ValueType>Template</ValueType> + <Description>The file used to configure the extension. + If have .exe extension the will be executed + If have .dll extension used like MP plugin configuration</Description> + </SectionParam> + <SectionParam Name="Online Screenshots"> + <Value /> + <ValueType>String</ValueType> + <Description>Online stored screenshot urls separated by ; </Description> + </SectionParam> + <SectionParam Name="Force to uninstall on update"> + <Value>yes</Value> + <ValueType>Bool</ValueType> + <Description>Show dialog and force to uninstall previous version when updating an extension. Should only be disabled if you are using an NSIS/MSI installer.</Description> + </SectionParam> + </Items> + </Params> + </GeneralInfo> + <UniqueFileList> + <Items /> + </UniqueFileList> + <ProjectSettings> + <FolderGroups /> + </ProjectSettings> + <IsSkin>false</IsSkin> + </PackageClass> + </Items> +</ExtensionCollection> \ No newline at end of file Added: trunk/plugins/MySleepTimer/MySleepTimer/Plugin/Configuration/MySleepTimerConfig.Designer.cs =================================================================== --- trunk/plugins/MySleepTimer/MySleepTimer/Plugin/Configuration/MySleepTimerConfig.Designer.cs (rev 0) +++ trunk/plugins/MySleepTimer/MySleepTimer/Plugin/Configuration/MySleepTimerConfig.Designer.cs 2012-03-16 12:28:28 UTC (rev 4467) @@ -0,0 +1,365 @@ +namespace MySleepTimer.Plugin.Configuration { + partial class MySleepTimerConfig { + /// <summary> + /// Required designer variable. + /// </summary> + private System.ComponentModel.IContainer components = null; + + /// <summary> + /// Clean up any resources being used. + /// </summary> + /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// <summary> + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// </summary> + private void InitializeComponent() { + this.comboBoxActionType = new System.Windows.Forms.ComboBox(); + this.label1 = new System.Windows.Forms.Label(); + this.numericUpDownSleepTimeMax = new System.Windows.Forms.NumericUpDown(); + this.numericUpDownSleepTimeStep = new System.Windows.Forms.NumericUpDown(); + this.label4 = new System.Windows.Forms.Label(); + this.label5 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.comboBoxShutDownType = new System.Windows.Forms.ComboBox(); + this.checkBoxShutDownForce = new System.Windows.Forms.CheckBox(); + this.label7 = new System.Windows.Forms.Label(); + this.numericUpDownNotifyBeforeSleep = new System.Windows.Forms.NumericUpDown(); + this.label2 = new System.Windows.Forms.Label(); + this.comboBoxSleepBehavior = new System.Windows.Forms.ComboBox(); + this.label9 = new System.Windows.Forms.Label(); + this.numericUpDownTimeOutN = new System.Windows.Forms.NumericUpDown(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.checkBoxUsePSSettings = new System.Windows.Forms.CheckBox(); + this.groupBoxTimer = new System.Windows.Forms.GroupBox(); + this.cancelButton = new System.Windows.Forms.Button(); + this.okButton = new System.Windows.Forms.Button(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDownSleepTimeMax)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDownSleepTimeStep)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDownNotifyBeforeSleep)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDownTimeOutN)).BeginInit(); + this.groupBox1.SuspendLayout(); + this.groupBoxTimer.SuspendLayout(); + this.SuspendLayout(); + // + // comboBoxActionType + // + this.comboBoxActionType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.comboBoxActionType.DropDownWidth = 250; + this.comboBoxActionType.FormattingEnabled = true; + this.comboBoxActionType.Location = new System.Drawing.Point(169, 6); + this.comboBoxActionType.Name = "comboBoxActionType"; + this.comboBoxActionType.Size = new System.Drawing.Size(168, 21); + this.comboBoxActionType.TabIndex = 5; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(12, 9); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(146, 13); + this.label1.TabIndex = 0; + this.label1.Text = "ActionType to set sleep timer:"; + // + // numericUpDownSleepTimeMax + // + this.numericUpDownSleepTimeMax.Increment = new decimal(new int[] { + 10, + 0, + 0, + 0}); + this.numericUpDownSleepTimeMax.Location = new System.Drawing.Point(210, 19); + this.numericUpDownSleepTimeMax.Maximum = new decimal(new int[] { + 1440, + 0, + 0, + 0}); + this.numericUpDownSleepTimeMax.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.numericUpDownSleepTimeMax.Name = "numericUpDownSleepTimeMax"; + this.numericUpDownSleepTimeMax.Size = new System.Drawing.Size(71, 20); + this.numericUpDownSleepTimeMax.TabIndex = 25; + this.numericUpDownSleepTimeMax.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // numericUpDownSleepTimeStep + // + this.numericUpDownSleepTimeStep.Location = new System.Drawing.Point(210, 45); + this.numericUpDownSleepTimeStep.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.numericUpDownSleepTimeStep.Name = "numericUpDownSleepTimeStep"; + this.numericUpDownSleepTimeStep.Size = new System.Drawing.Size(71, 20); + this.numericUpDownSleepTimeStep.TabIndex = 30; + this.numericUpDownSleepTimeStep.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(69, 21); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(130, 13); + this.label4.TabIndex = 0; + this.label4.Text = "Sleep time maximum [min]:"; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point(87, 47); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(112, 13); + this.label5.TabIndex = 0; + this.label5.Text = "Sleep time steps [min]:"; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(6, 45); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(81, 13); + this.label3.TabIndex = 0; + this.label3.Text = "Shutdown type:"; + // + // comboBoxShutDownType + // + this.comboBoxShutDownType.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.comboBoxShutDownType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.comboBoxShutDownType.FormattingEnabled = true; + this.comboBoxShutDownType.Location = new System.Drawing.Point(93, 42); + this.comboBoxShutDownType.Name = "comboBoxShutDownType"; + this.comboBoxShutDownType.Size = new System.Drawing.Size(168, 21); + this.comboBoxShutDownType.TabIndex = 15; + // + // checkBoxShutDownForce + // + this.checkBoxShutDownForce.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.checkBoxShutDownForce.AutoSize = true; + this.checkBoxShutDownForce.Location = new System.Drawing.Point(267, 44); + this.checkBoxShutDownForce.Name = "checkBoxShutDownForce"; + this.checkBoxShutDownForce.Size = new System.Drawing.Size(50, 17); + this.checkBoxShutDownForce.TabIndex = 20; + this.checkBoxShutDownForce.Text = "force"; + this.checkBoxShutDownForce.UseVisualStyleBackColor = true; + // + // label7 + // + this.label7.AutoSize = true; + this.label7.Location = new System.Drawing.Point(25, 99); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(174, 13); + this.label7.TabIndex = 0; + this.label7.Text = "Start notification prior to sleep [min]:"; + // + // numericUpDownNotifyBeforeSleep + // + this.numericUpDownNotifyBeforeSleep.Location = new System.Drawing.Point(210, 97); + this.numericUpDownNotifyBeforeSleep.Name = "numericUpDownNotifyBeforeSleep"; + this.numericUpDownNotifyBeforeSleep.Size = new System.Drawing.Size(71, 20); + this.numericUpDownNotifyBeforeSleep.TabIndex = 40; + this.numericUpDownNotifyBeforeSleep.ValueChanged += new System.EventHandler(this.numericUpDownNotifyBeforeSleep_ValueChanged); + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(77, 35); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(81, 13); + this.label2.TabIndex = 0; + this.label2.Text = "Sleep behavior:"; + // + // comboBoxSleepBehavior + // + this.comboBoxSleepBehavior.AccessibleRole = System.Windows.Forms.AccessibleRole.None; + this.comboBoxSleepBehavior.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.comboBoxSleepBehavior.DropDownWidth = 250; + this.comboBoxSleepBehavior.FormattingEnabled = true; + this.comboBoxSleepBehavior.Items.AddRange(new object[] { + "Shutdown", + "Exit MediaPortal", + "Show Basic Home"}); + this.comboBoxSleepBehavior.Location = new System.Drawing.Point(169, 33); + this.comboBoxSleepBehavior.Name = "comboBoxSleepBehavior"; + this.comboBoxSleepBehavior.Size = new System.Drawing.Size(168, 21); + this.comboBoxSleepBehavior.TabIndex = 10; + this.comboBoxSleepBehavior.SelectedIndexChanged += new System.EventHandler(this.comboBoxSleepBehavior_SelectedIndexChanged); + // + // label9 + // + this.label9.AutoSize = true; + this.label9.Location = new System.Drawing.Point(79, 73); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(120, 13); + this.label9.TabIndex = 0; + this.label9.Text = "Notification TimeOut [s]:"; + // + // numericUpDownTimeOutN + // + this.numericUpDownTimeOutN.Location = new System.Drawing.Point(210, 71); + this.numericUpDownTimeOutN.Maximum = new decimal(new int[] { + 65, + 0, + 0, + 0}); + this.numericUpDownTimeOutN.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.numericUpDownTimeOutN.Name = "numericUpDownTimeOutN"; + this.numericUpDownTimeOutN.Size = new System.Drawing.Size(71, 20); + this.numericUpDownTimeOutN.TabIndex = 50; + this.numericUpDownTimeOutN.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // groupBox1 + // + this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.groupBox1.Controls.Add(this.checkBoxUsePSSettings); + this.groupBox1.Controls.Add(this.label3); + this.groupBox1.Controls.Add(this.comboBoxShutDownType); + this.groupBox1.Controls.Add(this.checkBoxShutDownForce); + this.groupBox1.Location = new System.Drawing.Point(12, 73); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(323, 75); + this.groupBox1.TabIndex = 56; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Shutdown options"; + // + // checkBoxUsePSSettings + // + this.checkBoxUsePSSettings.AutoSize = true; + this.checkBoxUsePSSettings.Location = new System.Drawing.Point(9, 19); + this.checkBoxUsePSSettings.Name = "checkBoxUsePSSettings"; + this.checkBoxUsePSSettings.Size = new System.Drawing.Size(234, 17); + this.checkBoxUsePSSettings.TabIndex = 21; + this.checkBoxUsePSSettings.Text = "Use settings of Powerscheduler client plugin"; + this.checkBoxUsePSSettings.UseVisualStyleBackColor = true; + this.checkBoxUsePSSettings.CheckedChanged += new System.EventHandler(this.checkBoxUsePSSettings_CheckedChanged); + // + // groupBoxTimer + // + this.groupBoxTimer.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.groupBoxTimer.Controls.Add(this.label4); + this.groupBoxTimer.Controls.Add(this.numericUpDownSleepTimeMax); + this.groupBoxTimer.Controls.Add(this.label9); + this.groupBoxTimer.Controls.Add(this.numericUpDownSleepTimeStep); + this.groupBoxTimer.Controls.Add(this.numericUpDownTimeOutN); + this.groupBoxTimer.Controls.Add(this.label5); + this.groupBoxTimer.Controls.Add(this.numericUpDownNotifyBeforeSleep); + this.groupBoxTimer.Controls.Add(this.label7); + this.groupBoxTimer.Location = new System.Drawing.Point(12, 154); + this.groupBoxTimer.Name = "groupBoxTimer"; + this.groupBoxTimer.Size = new System.Drawing.Size(323, 129); + this.groupBoxTimer.TabIndex = 57; + this.groupBoxTimer.TabStop = false; + this.groupBoxTimer.Text = "Timer && notify settings"; + // + // cancelButton + // + this.cancelButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.cancelButton.Location = new System.Drawing.Point(260, 303); + this.cancelButton.Name = "cancelButton"; + this.cancelButton.Size = new System.Drawing.Size(75, 23); + this.cancelButton.TabIndex = 58; + this.cancelButton.Text = "Cancel"; + this.cancelButton.UseVisualStyleBackColor = true; + this.cancelButton.Click += new System.EventHandler(this.cancelButton_Click); + // + // okButton + // + this.okButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.okButton.Location = new System.Drawing.Point(179, 303); + this.okButton.Name = "okButton"; + this.okButton.Size = new System.Drawing.Size(75, 23); + this.okButton.TabIndex = 59; + this.okButton.Text = "OK"; + this.okButton.UseVisualStyleBackColor = true; + this.okButton.Click += new System.EventHandler(this.okButton_Click); + // + // MySleepTimerConfig + // + this.AcceptButton = this.okButton; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.CancelButton = this.cancelButton; + this.ClientSize = new System.Drawing.Size(347, 334); + this.Controls.Add(this.okButton); + this.Controls.Add(this.cancelButton); + this.Controls.Add(this.groupBoxTimer); + this.Controls.Add(this.groupBox1); + this.Controls.Add(this.comboBoxSleepBehavior); + this.Controls.Add(this.label2); + this.Controls.Add(this.label1); + this.Controls.Add(this.comboBoxActionType); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "MySleepTimerConfig"; + this.ShowInTaskbar = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "MySleepTimer - Configuration"; + ((System.ComponentModel.ISupportInitialize)(this.numericUpDownSleepTimeMax)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDownSleepTimeStep)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDownNotifyBeforeSleep)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDownTimeOutN)).EndInit(); + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); + this.groupBoxTimer.ResumeLayout(false); + this.groupBoxTimer.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.ComboBox comboBoxActionType; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.NumericUpDown numericUpDownSleepTimeMax; + private System.Windows.Forms.NumericUpDown numericUpDownSleepTimeStep; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.ComboBox comboBoxShutDownType; + private System.Windows.Forms.CheckBox checkBoxShutDownForce; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.NumericUpDown numericUpDownNotifyBeforeSleep; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.ComboBox comboBoxSleepBehavior; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.NumericUpDown numericUpDownTimeOutN; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.CheckBox checkBoxUsePSSettings; + private System.Windows.Forms.GroupBox groupBoxTimer; + private System.Windows.Forms.Button cancelButton; + private System.Windows.Forms.Button okButton; + } +} \ No newline at end of file Added: trunk/plugins/MySleepTimer/MySleepTimer/Plugin/Configuration/MySleepTimerConfig.cs =================================================================== --- trunk/plugins/MySleepTimer/MySleepTimer/Plugin/Configuration/MySleepTimerConfig.cs (rev 0) +++ trunk/plugins/MySleepTimer/MySleepTimer/Plugin/Configuration/MySleepTimerConfig.cs 2012-03-16 12:28:28 UTC (rev 4467) @@ -0,0 +1,215 @@ +#region Copyright (C) 2005-2010 Team MediaPortal + +// Copyright (C) 2005-2010 Team MediaPortal +// http://www.team-mediaportal.com +// +// MediaPortal 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 2 of the License, or +// (at your option) any later version. +// +// MediaPortal 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 MediaPortal. If not, see <http://www.gnu.org/licenses/>. + +#endregion + +using System; +using System.Collections.Generic; +using System.Windows.Forms; +using MediaPortal.Configuration; +using MediaPortal.GUI.Library; +using MediaPortal.UserInterface.Controls; +using MediaPortal.Util; +using MySleepTimer.Plugin.Window; +using Action = MediaPortal.GUI.Library.Action; + +namespace MySleepTimer.Plugin.Configuration { + + public partial class MySleepTimerConfig : MPConfigForm{ + public MySleepTimerConfig() { + InitializeComponent(); + LoadSettings(); + } + + #region Settings + + private void LoadSettings() { + try { + comboBoxActionType.DataSource = GenerateActionList(); + comboBoxActionType.DisplayMember = "ActionName"; + comboBoxActionType.ValueMember = "ActionType"; + comboBoxShutDownType.DataSource = GenerateShutdownList(); + comboBoxShutDownType.DisplayMember = "ShutdownName"; + comboBoxShutDownType.ValueMember = "ShutdownType"; + + Settings.Load(); + comboBoxActionType.SelectedValue = Settings.ActionType; + comboBoxSleepBehavior.Text = Settings.SleepBehavior; + + checkBoxUsePSSettings.Checked = Settings.UsePowerSchedulerSettings; + comboBoxShutDownType.SelectedValue = Settings.ShutdownType; + checkBoxShutDownForce.Checked = Settings.ShutdownForce; + + numericUpDownSleepTimeMax.Value = Settings.SleepTimeMaxium; + numericUpDownSleepTimeStep.Value = Settings.SleepTimeStep; + numericUpDownNotifyBeforeSleep.Value = Settings.NotifyBeforeSleep; + numericUpDownTimeOutN.Value = Settings.NotifyTimeOutMs; + + SetUpShutDownTypeControls(); + SetUpNotifyControls(); + } catch (Exception ex) { + Log.Error(ex); + } + } + + private void SaveSettings() { + Settings.ActionType = (Action.ActionType)comboBoxActionType.SelectedValue; + Settings.SleepBehavior = comboBoxSleepBehavior.Text; + + Settings.UsePowerSchedulerSettings = checkBoxUsePSSettings.Checked; + Settings.ShutdownType = (RestartOptions)comboBoxShutDownType.SelectedValue; + Settings.ShutdownForce = checkBoxShutDownForce.Checked; + + Settings.SleepTimeMaxium = (int)numericUpDownSleepTimeMax.Value; + Settings.SleepTimeStep = (int)numericUpDownSleepTimeStep.Value; + Settings.NotifyBeforeSleep = (int)numericUpDownNotifyBeforeSleep.Value; + Settings.NotifyTimeOutMs = (int)numericUpDownTimeOutN.Value; + Settings.Save(); + } + + #endregion + + #region Windows Forms events + + private void okButton_Click(object sender, EventArgs e) { + SaveSettings(); + Close(); + } + + private void cancelButton_Click(object sender, EventArgs e) { + Close(); + } + + + private void comboBoxSleepBehavior_SelectedIndexChanged(object sender, EventArgs e) { + SetUpShutDownTypeControls(); + } + + private void checkBoxUsePSSettings_CheckedChanged(object sender, EventArgs e) { + SetUpShutDownTypeControls(); + } + + private void numericUpDownNotifyBeforeSleep_ValueChanged(object sender, EventArgs e) { + SetUpNotifyControls(); + } + + private void numericUpDownNotifyInterval_ValueChanged(object sender, EventArgs e) { + SetUpNotifyControls(); + } + + #endregion + + private static List<ActionEntry> GenerateActionList() { + var ret = new List<ActionEntry>(); + + foreach (var variable in Enum.GetValues(typeof(Action.ActionType))) + ret.Add(new ActionEntry((Action.ActionType)variable)); + + ret.Sort(); + + return ret; + } + + private static List<ShutdownEntry> GenerateShutdownList() { + var ret = new List<ShutdownEntry>(); + + foreach (var variable in Enum.GetValues(typeof(RestartOptions))) + ret.Add(new ShutdownEntry((RestartOptions)variable)); + + ret.Sort(); + + return ret; + } + + private void SetUpShutDownTypeControls() { + groupBox1.Enabled = comboBoxSleepBehavior.Text == "Shutdown"; + + checkBoxUsePSSettings.Enabled = Settings.PowerSchedulerAvailable; + + if (checkBoxUsePSSettings.Enabled && checkBoxUsePSSettings.Checked) { + comboBoxShutDownType.Enabled = false; + checkBoxShutDownForce.Enabled = false; + } else { + comboBoxShutDownType.Enabled = true; + checkBoxShutDownForce.Enabled = true; + } + } + + private void SetUpNotifyControls() { + try { + if (numericUpDownNotifyBeforeSleep.Value != 0) { + label9.Enabled = true; + numericUpDownTimeOutN.Enabled = true; + } else { + label9.Enabled = false; + numericUpDownTimeOutN.Enabled = false; + } + } catch (Exception ex) { + Log.Error(ex); + } + } + } + + internal class ActionEntry : IComparable<ActionEntry> { + public Action.ActionType ActionType { get; private set; } + + public string ActionName { + get { return ActionType.ToString(); } + } + + public int ActionID { + get { return (int)ActionType; } + } + + public ActionEntry(Action.ActionType actionType) { + ActionType = actionType; + } + + #region IComparable<ActionEntry> Member + + public int CompareTo(ActionEntry other) { + return ActionName.CompareTo(other.ActionName); + } + + #endregion + } + + internal class ShutdownEntry : IComparable<ShutdownEntry> { + public RestartOptions ShutDownType { get; private set; } + + public string ShutdownName { + get { return ShutDownType.ToString(); } + } + + public int ShutdownID { + get { return (int)ShutDownType; } + } + + public ShutdownEntry(RestartOptions restartOptions) { + ShutDownType = restartOptions; + } + + #region IComparable<ShutdownEntry> Member + + public int CompareTo(ShutdownEntry other) { + return ShutdownName.CompareTo(other.ShutdownName); + } + + #endregion + } +} \ No newline at end of file Added: trunk/plugins/MySleepTimer/MySleepTimer/Plugin/Configuration/MySleepTimerConfig.resx =================================================================== --- trunk/plugins/MySleepTimer/MySleepTimer/Plugin/Configuration/MySleepTimerConfig.resx (rev 0) +++ trunk/plugins/MySleepTimer/MySleepTimer/Plugin/Configuration/MySleepTimerConfig.resx 2012-03-16 12:28:28 UTC (rev 4467) @@ -0,0 +1,120 @@ +<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the f... [truncated message content] |
From: <pop...@us...> - 2015-01-28 20:02:45
|
Revision: 4927 http://sourceforge.net/p/mp-plugins/code/4927 Author: popy2007 Date: 2015-01-28 20:02:42 +0000 (Wed, 28 Jan 2015) Log Message: ----------- * Fixed compatibility with MP 1.4+ (livetv issue) * AQdded AutoActivate feature Modified Paths: -------------- trunk/plugins/MySleepTimer/MySleepTimer/Plugin/Configuration/MySleepTimerConfig.Designer.cs trunk/plugins/MySleepTimer/MySleepTimer/Plugin/Configuration/MySleepTimerConfig.cs trunk/plugins/MySleepTimer/MySleepTimer/Plugin/Configuration/Settings.cs trunk/plugins/MySleepTimer/MySleepTimer/Plugin/Window/MySleepTimer.cs Added Paths: ----------- trunk/plugins/MySleepTimer/MySleepTimer/Language/ trunk/plugins/MySleepTimer/MySleepTimer/Language/de.xml trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimer.csproj trunk/plugins/MySleepTimer/MySleepTimer/Properties/ trunk/plugins/MySleepTimer/MySleepTimer/Properties/AssemblyInfo.cs trunk/plugins/MySleepTimer/MySleepTimer.sln Added: trunk/plugins/MySleepTimer/MySleepTimer/Language/de.xml =================================================================== --- trunk/plugins/MySleepTimer/MySleepTimer/Language/de.xml (rev 0) +++ trunk/plugins/MySleepTimer/MySleepTimer/Language/de.xml 2015-01-28 20:02:42 UTC (rev 4927) @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- MyAlarm translation file --> +<!-- German (de) --> +<!-- Note: English is the fallback for any strings not found in other languages --> +<strings> + <!-- P --> + <string Field="PluginDescription">Schl\xE4fst auch du beim Fernsehen st\xE4ndig ein? Dann brauchst du dieses Plugin, welches MediaPortal automatisch nach einer bestimmten Zeit ausschaltet.</string> + <!-- S --> + <string Field="SleepTimer">Automatisches Ausschalten</string> + <!-- T --> + <string Field="TimeIsUp">Es ist Schlafenszeit! Gute Nacht.</string> + <string Field="TimerStopped">Sleeptimer ausgeschaltet!</string> +</strings> \ No newline at end of file Added: trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimer.csproj =================================================================== --- trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimer.csproj (rev 0) +++ trunk/plugins/MySleepTimer/MySleepTimer/MySleepTimer.csproj 2015-01-28 20:02:42 UTC (rev 4927) @@ -0,0 +1,169 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0"> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ProductVersion>9.0.21022</ProductVersion> + <SchemaVersion>2.0</SchemaVersion> + <ProjectGuid>{03856C9E-0926-41DB-A13A-AE3D08285428}</ProjectGuid> + <OutputType>Library</OutputType> + <AppDesignerFolder>Properties</AppDesignerFolder> + <RootNamespace>MySleepTimer</RootNamespace> + <AssemblyName>MySleepTimer</AssemblyName> + <FileUpgradeFlags> + </FileUpgradeFlags> + <OldToolsVersion>3.5</OldToolsVersion> + <UpgradeBackupLocation> + </UpgradeBackupLocation> + <IsWebBootstrapper>false</IsWebBootstrapper> + <TargetFrameworkVersion>v3.5</TargetFrameworkVersion> + <PublishUrl>publish\</PublishUrl> + <Install>true</Install> + <InstallFrom>Disk</InstallFrom> + <UpdateEnabled>false</UpdateEnabled> + <UpdateMode>Foreground</UpdateMode> + <UpdateInterval>7</UpdateInterval> + <UpdateIntervalUnits>Days</UpdateIntervalUnits> + <UpdatePeriodically>false</UpdatePeriodically> + <UpdateRequired>false</UpdateRequired> + <MapFileExtensions>true</MapFileExtensions> + <ApplicationRevision>0</ApplicationRevision> + <ApplicationVersion>1.0.0.%2a</ApplicationVersion> + <UseApplicationTrust>false</UseApplicationTrust> + <BootstrapperEnabled>true</BootstrapperEnabled> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <DebugSymbols>false</DebugSymbols> + <DebugType>full</DebugType> + <Optimize>false</Optimize> + <OutputPath>bin\Debug\</OutputPath> + <DefineConstants>DEBUG;TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + <UseVSHostingProcess>true</UseVSHostingProcess> + <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <DebugType>none</DebugType> + <Optimize>true</Optimize> + <OutputPath>bin\Release\</OutputPath> + <DefineConstants>TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + <UseVSHostingProcess>false</UseVSHostingProcess> + <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet> + </PropertyGroup> + <PropertyGroup> + <StartupObject> + </StartupObject> + </PropertyGroup> + <ItemGroup> + <Reference Include="Common.Utils"> + <HintPath>Resources\dll\Common.Utils.dll</HintPath> + <Private>False</Private> + </Reference> + <Reference Include="Core"> + <HintPath>Resources\dll\Core.dll</HintPath> + <Private>False</Private> + </Reference> + <Reference Include="Dialogs"> + <HintPath>Resources\dll\Dialogs.dll</HintPath> + <Private>False</Private> + </Reference> + <Reference Include="Stateless, Version=2.3.1.1, Culture=neutral, PublicKeyToken=93038f0927583c9a, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>Resources\dll\Stateless.dll</HintPath> + </Reference> + <Reference Include="System" /> + <Reference Include="System.Drawing" /> + <Reference Include="System.Web" /> + <Reference Include="System.Windows.Forms" /> + <Reference Include="System.Xml" /> + <Reference Include="Utils"> + <HintPath>Resources\dll\Utils.dll</HintPath> + <Private>False</Private> + </Reference> + <Reference Include="WindowPlugins"> + <HintPath>Resources\dll\WindowPlugins.dll</HintPath> + <Private>False</Private> + </Reference> + </ItemGroup> + <ItemGroup> + <Compile Include="Plugin\Configuration\MySleepTimerConfig.cs"> + <SubType>Form</SubType> + </Compile> + <Compile Include="Plugin\Configuration\MySleepTimerConfig.Designer.cs"> + <DependentUpon>MySleepTimerConfig.cs</DependentUpon> + </Compile> + <Compile Include="Plugin\Configuration\Settings.cs" /> + <Compile Include="Plugin\Window\MySleepTimer.cs" /> + <Compile Include="Plugin\Window\MySleepTimerOld.cs" /> + <Compile Include="Plugin\Window\Translation.cs" /> + <Compile Include="Properties\AssemblyInfo.cs" /> + </ItemGroup> + <ItemGroup> + <EmbeddedResource Include="Plugin\Configuration\MySleepTimerConfig.resx"> + <DependentUpon>MySleepTimerConfig.cs</DependentUpon> + </EmbeddedResource> + </ItemGroup> + <ItemGroup> + <BootstrapperPackage Include="Microsoft.Net.Client.3.5"> + <Visible>False</Visible> + <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName> + <Install>false</Install> + </BootstrapperPackage> + <BootstrapperPackage Include="Microsoft.Net.Framework.2.0"> + <Visible>False</Visible> + <ProductName>.NET Framework 2.0 %28x86%29</ProductName> + <Install>true</Install> + </BootstrapperPackage> + <BootstrapperPackage Include="Microsoft.Net.Framework.3.0"> + <Visible>False</Visible> + <ProductName>.NET Framework 3.0 %28x86%29</ProductName> + <Install>false</Install> + </BootstrapperPackage> + <BootstrapperPackage Include="Microsoft.Net.Framework.3.5"> + <Visible>False</Visible> + <ProductName>.NET Framework 3.5</ProductName> + <Install>false</Install> + </BootstrapperPackage> + <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1"> + <Visible>False</Visible> + <ProductName>.NET Framework 3.5 SP1</ProductName> + <Install>false</Install> + </BootstrapperPackage> + </ItemGroup> + <ItemGroup> + <Content Include="Extension\Forum\MySleepTimer_01.png" /> + <Content Include="Extension\Forum\MySleepTimer_02.png" /> + <Content Include="Extension\Forum\MySleepTimer_03.png" /> + <Content Include="Extension\Forum\MySleepTimer_04.png" /> + <Content Include="Extension\Forum\MySleepTimer_logo.png" /> + <Content Include="Extension\Installer\update.xml" /> + <Content Include="Language\de.xml"> + <SubType>Designer</SubType> + </Content> + <EmbeddedResource Include="Resources\img\MySleepTimer_disabled.png" /> + <EmbeddedResource Include="Resources\img\MySleepTimer_enabled.png" /> + </ItemGroup> + <ItemGroup> + <Folder Include="Resources\dll\" /> + <Folder Include="Skin\Media\" /> + </ItemGroup> + <ItemGroup> + <None Include="Extension\Installer\MySleepTimer.mpe1" /> + <None Include="Extension\Installer\MySleepTimer.xmp2" /> + </ItemGroup> + <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> + <!-- To modify your build process, add your task inside one of the targets below and uncomment it. + Other similar extension points exist, see Microsoft.Common.targets. + <Target Name="BeforeBuild"> + </Target> + <Target Name="AfterBuild"> + </Target> + --> + <PropertyGroup> + <PostBuildEvent>REM xcopy "$(TargetPath)" "..\..\..\MpiRelease" /Y +xcopy "$(TargetPath)" "C:\Program Files (x86)\Team MediaPortal\MediaPortal\plugins\Windows" /Y</PostBuildEvent> + </PropertyGroup> +</Project> \ No newline at end of file Modified: trunk/plugins/MySleepTimer/MySleepTimer/Plugin/Configuration/MySleepTimerConfig.Designer.cs =================================================================== --- trunk/plugins/MySleepTimer/MySleepTimer/Plugin/Configuration/MySleepTimerConfig.Designer.cs 2015-01-12 06:59:42 UTC (rev 4926) +++ trunk/plugins/MySleepTimer/MySleepTimer/Plugin/Configuration/MySleepTimerConfig.Designer.cs 2015-01-28 20:02:42 UTC (rev 4927) @@ -43,12 +43,16 @@ this.groupBoxTimer = new System.Windows.Forms.GroupBox(); this.cancelButton = new System.Windows.Forms.Button(); this.okButton = new System.Windows.Forms.Button(); + this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.dateTimePicker_AutoActivate = new System.Windows.Forms.DateTimePicker(); + this.checkBoxAutoActivate = new System.Windows.Forms.CheckBox(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDownSleepTimeMax)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDownSleepTimeStep)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDownNotifyBeforeSleep)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDownTimeOutN)).BeginInit(); this.groupBox1.SuspendLayout(); this.groupBoxTimer.SuspendLayout(); + this.groupBox2.SuspendLayout(); this.SuspendLayout(); // // comboBoxActionType @@ -285,7 +289,7 @@ // this.cancelButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.cancelButton.Location = new System.Drawing.Point(260, 303); + this.cancelButton.Location = new System.Drawing.Point(260, 351); this.cancelButton.Name = "cancelButton"; this.cancelButton.Size = new System.Drawing.Size(75, 23); this.cancelButton.TabIndex = 58; @@ -296,7 +300,7 @@ // okButton // this.okButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.okButton.Location = new System.Drawing.Point(179, 303); + this.okButton.Location = new System.Drawing.Point(179, 351); this.okButton.Name = "okButton"; this.okButton.Size = new System.Drawing.Size(75, 23); this.okButton.TabIndex = 59; @@ -304,13 +308,48 @@ this.okButton.UseVisualStyleBackColor = true; this.okButton.Click += new System.EventHandler(this.okButton_Click); // + // groupBox2 + // + this.groupBox2.Controls.Add(this.dateTimePicker_AutoActivate); + this.groupBox2.Controls.Add(this.checkBoxAutoActivate); + this.groupBox2.Location = new System.Drawing.Point(12, 289); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size(323, 46); + this.groupBox2.TabIndex = 61; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "Auto Activation"; + // + // dateTimePicker_AutoActivate + // + this.dateTimePicker_AutoActivate.CustomFormat = "HH:mm"; + this.dateTimePicker_AutoActivate.Enabled = false; + this.dateTimePicker_AutoActivate.Format = System.Windows.Forms.DateTimePickerFormat.Custom; + this.dateTimePicker_AutoActivate.Location = new System.Drawing.Point(210, 14); + this.dateTimePicker_AutoActivate.Name = "dateTimePicker_AutoActivate"; + this.dateTimePicker_AutoActivate.ShowUpDown = true; + this.dateTimePicker_AutoActivate.Size = new System.Drawing.Size(71, 20); + this.dateTimePicker_AutoActivate.TabIndex = 62; + this.dateTimePicker_AutoActivate.Value = new System.DateTime(2015, 1, 26, 0, 0, 0, 0); + // + // checkBoxAutoActivate + // + this.checkBoxAutoActivate.AutoSize = true; + this.checkBoxAutoActivate.Location = new System.Drawing.Point(9, 19); + this.checkBoxAutoActivate.Name = "checkBoxAutoActivate"; + this.checkBoxAutoActivate.Size = new System.Drawing.Size(161, 17); + this.checkBoxAutoActivate.TabIndex = 61; + this.checkBoxAutoActivate.Text = "Auto Activate Sleep Timer at"; + this.checkBoxAutoActivate.UseVisualStyleBackColor = true; + this.checkBoxAutoActivate.CheckedChanged += new System.EventHandler(this.checkBoxAutoActivate_CheckedChanged); + // // MySleepTimerConfig // this.AcceptButton = this.okButton; this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.CancelButton = this.cancelButton; - this.ClientSize = new System.Drawing.Size(347, 334); + this.ClientSize = new System.Drawing.Size(347, 382); + this.Controls.Add(this.groupBox2); this.Controls.Add(this.okButton); this.Controls.Add(this.cancelButton); this.Controls.Add(this.groupBoxTimer); @@ -334,6 +373,8 @@ this.groupBox1.PerformLayout(); this.groupBoxTimer.ResumeLayout(false); this.groupBoxTimer.PerformLayout(); + this.groupBox2.ResumeLayout(false); + this.groupBox2.PerformLayout(); this.ResumeLayout(false); this.PerformLayout(); @@ -361,5 +402,8 @@ private System.Windows.Forms.GroupBox groupBoxTimer; private System.Windows.Forms.Button cancelButton; private System.Windows.Forms.Button okButton; + private System.Windows.Forms.GroupBox groupBox2; + private System.Windows.Forms.DateTimePicker dateTimePicker_AutoActivate; + private System.Windows.Forms.CheckBox checkBoxAutoActivate; } } \ No newline at end of file Modified: trunk/plugins/MySleepTimer/MySleepTimer/Plugin/Configuration/MySleepTimerConfig.cs =================================================================== --- trunk/plugins/MySleepTimer/MySleepTimer/Plugin/Configuration/MySleepTimerConfig.cs 2015-01-12 06:59:42 UTC (rev 4926) +++ trunk/plugins/MySleepTimer/MySleepTimer/Plugin/Configuration/MySleepTimerConfig.cs 2015-01-28 20:02:42 UTC (rev 4927) @@ -1,6 +1,6 @@ -#region Copyright (C) 2005-2010 Team MediaPortal +#region Copyright (C) 2005-2015 Team MediaPortal -// Copyright (C) 2005-2010 Team MediaPortal +// Copyright (C) 2005-2015 Team MediaPortal // http://www.team-mediaportal.com // // MediaPortal is free software: you can redistribute it and/or modify @@ -60,6 +60,10 @@ numericUpDownNotifyBeforeSleep.Value = Settings.NotifyBeforeSleep; numericUpDownTimeOutN.Value = Settings.NotifyTimeOutMs; + checkBoxAutoActivate.Checked = Settings.AutoActivate; + dateTimePicker_AutoActivate.Value = Settings.AutoActivateTime; + + SetUpShutDownTypeControls(); SetUpNotifyControls(); } catch (Exception ex) { @@ -79,6 +83,10 @@ Settings.SleepTimeStep = (int)numericUpDownSleepTimeStep.Value; Settings.NotifyBeforeSleep = (int)numericUpDownNotifyBeforeSleep.Value; Settings.NotifyTimeOutMs = (int)numericUpDownTimeOutN.Value; + + Settings.AutoActivate = checkBoxAutoActivate.Checked; + Settings.AutoActivateTime = dateTimePicker_AutoActivate.Value; + Settings.Save(); } @@ -163,6 +171,19 @@ Log.Error(ex); } } + + private void checkBoxAutoActivate_CheckedChanged(object sender, EventArgs e) + { + if (checkBoxAutoActivate.Checked) + { + dateTimePicker_AutoActivate.Enabled = true; + } + else + { + dateTimePicker_AutoActivate.Enabled = false; + } + } + } internal class ActionEntry : IComparable<ActionEntry> { Modified: trunk/plugins/MySleepTimer/MySleepTimer/Plugin/Configuration/Settings.cs =================================================================== --- trunk/plugins/MySleepTimer/MySleepTimer/Plugin/Configuration/Settings.cs 2015-01-12 06:59:42 UTC (rev 4926) +++ trunk/plugins/MySleepTimer/MySleepTimer/Plugin/Configuration/Settings.cs 2015-01-28 20:02:42 UTC (rev 4927) @@ -45,6 +45,9 @@ public static int NotifyBeforeSleep { get; set; } //(0..n) public static int NotifyTimeOutMs { get; set; } //(1..65 * 1000) + public static bool AutoActivate { get; set; } + public static System.DateTime AutoActivateTime { get; set; } + static Settings() { ActionType = Action.ActionType.ACTION_REMOTE_YELLOW_BUTTON; SleepBehavior = "Shutdown"; @@ -56,7 +59,10 @@ SleepTimeMaxium = 120; SleepTimeStep = 10; NotifyBeforeSleep = 3; - NotifyTimeOutMs = 3 * 1000; + NotifyTimeOutMs = 3; + + AutoActivate = false; + AutoActivateTime = System.DateTime.Now; } #endregion @@ -99,7 +105,13 @@ SleepTimeMaxium = xmlReader.GetValueAsInt(PLUGIN_NAME, "Maximum", 120); SleepTimeStep = xmlReader.GetValueAsInt(PLUGIN_NAME, "Step", 10); NotifyBeforeSleep = xmlReader.GetValueAsInt(PLUGIN_NAME, "NotifyBeforeSleep", 3); - NotifyTimeOutMs = xmlReader.GetValueAsInt(PLUGIN_NAME, "NotifyTimeOut", 3) * 1000; + NotifyTimeOutMs = xmlReader.GetValueAsInt(PLUGIN_NAME, "NotifyTimeOut", 3); + + AutoActivate = + xmlReader.GetValueAsBool(PLUGIN_NAME, "AutoActivate", false); + + AutoActivateTime = System.DateTime.ParseExact(xmlReader.GetValueAsString(PLUGIN_NAME, "AutoActivateTime", "00:00:00"), "HH:mm:ss", System.Globalization.CultureInfo.CurrentCulture); + } WriteToLog(); @@ -126,6 +138,9 @@ xmlWriter.SetValue(PLUGIN_NAME, "Step", SleepTimeStep); xmlWriter.SetValue(PLUGIN_NAME, "NotifyBeforeSleep", NotifyBeforeSleep); xmlWriter.SetValue(PLUGIN_NAME, "NotifyTimeOut", NotifyTimeOutMs); + + xmlWriter.SetValueAsBool(PLUGIN_NAME, "AutoActivate", AutoActivate); + xmlWriter.SetValue(PLUGIN_NAME, "AutoActivateTime", AutoActivateTime.ToString("HH:mm:ss")); } } Modified: trunk/plugins/MySleepTimer/MySleepTimer/Plugin/Window/MySleepTimer.cs =================================================================== --- trunk/plugins/MySleepTimer/MySleepTimer/Plugin/Window/MySleepTimer.cs 2015-01-12 06:59:42 UTC (rev 4926) +++ trunk/plugins/MySleepTimer/MySleepTimer/Plugin/Window/MySleepTimer.cs 2015-01-28 20:02:42 UTC (rev 4927) @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; +using System.Threading; using Timer = System.Timers.Timer; using System.Windows.Forms; using MediaPortal.Configuration; @@ -144,11 +145,13 @@ private Timer NotificationTimer { get; set; } private string ShutDownType { get; set; } private LinkedList<String> ShutDownIterator { get; set; } + private System.Threading.Timer AutoActivateTimer; public MySleepTimer() { Settings.Load(); SetupStateMachine(); - + + ShutDownType = Settings.SleepBehavior == "Shutdown" ? Settings.ShutdownType.ToString() : Settings.SleepBehavior; ShutDownIterator = new LinkedList<String>(); foreach (string option in Enum.GetNames(typeof(RestartOptions))) { @@ -161,8 +164,74 @@ ShutDownIterator.AddLast("Exit MediaPortal"); ShutDownIterator.AddLast("Show Basic Home"); GUIWindowManager.OnNewAction += GUIWindowManager_OnNewAction; + + if (Settings.AutoActivate) + { + //Auto Activate Feature enabled -> start timer for auto activate + Log.Info("MySleepTimer: AutoActivate enabled, trigger at " + Settings.AutoActivateTime.Hour.ToString("D2") + ":" + Settings.AutoActivateTime.Minute.ToString("D2") + ":" + Settings.AutoActivateTime.Second.ToString("D2")); + SetAutoActivateTimerValue(); + } + else + { + Log.Info("MySleepTimer: AutoActivate disabled"); + } + } + + + private void SetAutoActivateTimerValue() + { + // trigger the event at the given hour and minute + TimeSpan span; + DateTime requiredTime = DateTime.Today.AddHours(Settings.AutoActivateTime.Hour).AddMinutes(Settings.AutoActivateTime.Minute); + if (DateTime.Now > requiredTime) + { + requiredTime = requiredTime.AddDays(1); + } + + // initialize timer only, do not specify the start time or the interval + AutoActivateTimer = new System.Threading.Timer(new TimerCallback(AutoActivateTimerCallback)); + // first parameter is the start time and the second parameter is the interval + // Timeout.Infinite means do not repeat the interval, only start the timer + AutoActivateTimer.Change((int)(requiredTime - DateTime.Now).TotalMilliseconds, Timeout.Infinite); + + //Debug + span = requiredTime.Subtract(DateTime.Now); + Log.Info("MySleepTimer: SetAutoActivateTimerValue, remaining time to next auto activate: " + span.Hours.ToString("D2") + ":" + span.Minutes.ToString("D2") + ":" + span.Seconds.ToString("D2")); + } + + private void AutoActivateTimerCallback(object e) + { + // start SleepTimer + if (ShutDownTimer.Enabled) + { + Log.Info("MySleepTimer: AutoActivateTimerCallback, shutdown timer already running -> skip activate!"); + } + else + { + //Fire Trigger event + GUIGraphicsContext.form.Invoke(new MethodInvoker(AutoActivateShutdownTimer)); + } + + // call the set timer method to reset its next call time (ex. next day) + SetAutoActivateTimerValue(); + } + + + private void AutoActivateShutdownTimer() + { + if (_mySleepTimer.CanFire(Trigger.ButtonSet)) + { + _mySleepTimer.Fire(Trigger.ButtonSet); + Log.Info("MySleepTimer: AutoActivateShutdownTimer: Shutdown Timer set to " + Settings.SleepTimeStep.ToString() + " minutes!"); + } + else + { + Log.Warn("MySleepTimer: AutoActivateShutdownTimer: could not fire Trigger.ButtonSet!!!"); + } + } + void TimerShutDown_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { if (_mySleepTimer.CanFire(Trigger.SleepTimerElapsed)) { _mySleepTimer.Fire(Trigger.SleepTimerElapsed); @@ -280,7 +349,10 @@ void SleepTimerOnEntry() { double currentRemaining = GetRemainingPlaytime(); - if (currentRemaining <= 0) { + //pOpY 26.01.2015 - currentRemaining must be > Settings.SleepTimeStep that it will be accepted. + // TODO: GetRemainingPlaytime() should also return the correct remaining time if livetv is running. Then the following check could be "<= 0" + if (currentRemaining <= Settings.SleepTimeStep * 60 * 1000) + { currentRemaining = Settings.SleepTimeStep * 60 * 1000; } Shutdown = DateTime.Now.AddMilliseconds(currentRemaining); @@ -368,7 +440,6 @@ private void ShowNotifyDialog(int timeOutMs, string notifyMessage) { try { - timeOutMs /= 1000; //to seconds GUIDialogNotify _dialogSleepTimerNotify = (GUIDialogNotify)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_NOTIFY); _dialogSleepTimerNotify.TimeOut = timeOutMs; _dialogSleepTimerNotify.SetImage(GUIGraphicsContext.Skin + @"\Media\MySleepTimer_enabled.png"); Added: trunk/plugins/MySleepTimer/MySleepTimer/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/MySleepTimer/MySleepTimer/Properties/AssemblyInfo.cs (rev 0) +++ trunk/plugins/MySleepTimer/MySleepTimer/Properties/AssemblyInfo.cs 2015-01-28 20:02:42 UTC (rev 4927) @@ -0,0 +1,61 @@ +#region Copyright (C) 2005-2010 Team MediaPortal + +// Copyright (C) 2005-2010 Team MediaPortal +// http://www.team-mediaportal.com +// +// MediaPortal 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 2 of the License, or +// (at your option) any later version. +// +// MediaPortal 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 MediaPortal. If not, see <http://www.gnu.org/licenses/>. + +#endregion + +using System.Reflection; +using System.Runtime.InteropServices; + +using MediaPortal.Common.Utils; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. + +[assembly: CompatibleVersion("1.1.7.0")] +[assembly: AssemblyTitle("MySleepTimer")] +[assembly: AssemblyDescription("MediaPortal Plugin - Sleep Timer")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Anthrax")] +[assembly: AssemblyProduct("MySleepTimer")] +[assembly: AssemblyCopyright("Copyright \xA9 2015")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. + +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM + +[assembly: Guid("216cf21b-9128-47a1-bd0f-33baa87b887f")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("2.0.3.0")] +[assembly: AssemblyFileVersion("2.0.3.0")] \ No newline at end of file Added: trunk/plugins/MySleepTimer/MySleepTimer.sln =================================================================== --- trunk/plugins/MySleepTimer/MySleepTimer.sln (rev 0) +++ trunk/plugins/MySleepTimer/MySleepTimer.sln 2015-01-28 20:02:42 UTC (rev 4927) @@ -0,0 +1,33 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 11 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MySleepTimer", "MySleepTimer\MySleepTimer.csproj", "{03856C9E-0926-41DB-A13A-AE3D08285428}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|Mixed Platforms = Debug|Mixed Platforms + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|Mixed Platforms = Release|Mixed Platforms + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {03856C9E-0926-41DB-A13A-AE3D08285428}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {03856C9E-0926-41DB-A13A-AE3D08285428}.Debug|Any CPU.Build.0 = Debug|Any CPU + {03856C9E-0926-41DB-A13A-AE3D08285428}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {03856C9E-0926-41DB-A13A-AE3D08285428}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {03856C9E-0926-41DB-A13A-AE3D08285428}.Debug|x86.ActiveCfg = Debug|Any CPU + {03856C9E-0926-41DB-A13A-AE3D08285428}.Release|Any CPU.ActiveCfg = Release|Any CPU + {03856C9E-0926-41DB-A13A-AE3D08285428}.Release|Any CPU.Build.0 = Release|Any CPU + {03856C9E-0926-41DB-A13A-AE3D08285428}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {03856C9E-0926-41DB-A13A-AE3D08285428}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {03856C9E-0926-41DB-A13A-AE3D08285428}.Release|x86.ActiveCfg = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + VisualSVNWorkingCopyRoot = . + EndGlobalSection +EndGlobal This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pop...@us...> - 2015-01-28 20:17:02
|
Revision: 4930 http://sourceforge.net/p/mp-plugins/code/4930 Author: popy2007 Date: 2015-01-28 20:16:54 +0000 (Wed, 28 Jan 2015) Log Message: ----------- Added Paths: ----------- trunk/plugins/MySleepTimer/trunk/MySleepTimer/ trunk/plugins/MySleepTimer/trunk/MySleepTimer.sln Removed Paths: ------------- trunk/plugins/MySleepTimer/MySleepTimer/ trunk/plugins/MySleepTimer/MySleepTimer.sln Deleted: trunk/plugins/MySleepTimer/MySleepTimer.sln =================================================================== --- trunk/plugins/MySleepTimer/MySleepTimer.sln 2015-01-28 20:16:30 UTC (rev 4929) +++ trunk/plugins/MySleepTimer/MySleepTimer.sln 2015-01-28 20:16:54 UTC (rev 4930) @@ -1,33 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 11 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MySleepTimer", "MySleepTimer\MySleepTimer.csproj", "{03856C9E-0926-41DB-A13A-AE3D08285428}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|Mixed Platforms = Debug|Mixed Platforms - Debug|x86 = Debug|x86 - Release|Any CPU = Release|Any CPU - Release|Mixed Platforms = Release|Mixed Platforms - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {03856C9E-0926-41DB-A13A-AE3D08285428}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {03856C9E-0926-41DB-A13A-AE3D08285428}.Debug|Any CPU.Build.0 = Debug|Any CPU - {03856C9E-0926-41DB-A13A-AE3D08285428}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {03856C9E-0926-41DB-A13A-AE3D08285428}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {03856C9E-0926-41DB-A13A-AE3D08285428}.Debug|x86.ActiveCfg = Debug|Any CPU - {03856C9E-0926-41DB-A13A-AE3D08285428}.Release|Any CPU.ActiveCfg = Release|Any CPU - {03856C9E-0926-41DB-A13A-AE3D08285428}.Release|Any CPU.Build.0 = Release|Any CPU - {03856C9E-0926-41DB-A13A-AE3D08285428}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {03856C9E-0926-41DB-A13A-AE3D08285428}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {03856C9E-0926-41DB-A13A-AE3D08285428}.Release|x86.ActiveCfg = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - VisualSVNWorkingCopyRoot = . - EndGlobalSection -EndGlobal Copied: trunk/plugins/MySleepTimer/trunk/MySleepTimer.sln (from rev 4929, trunk/plugins/MySleepTimer/MySleepTimer.sln) =================================================================== --- trunk/plugins/MySleepTimer/trunk/MySleepTimer.sln (rev 0) +++ trunk/plugins/MySleepTimer/trunk/MySleepTimer.sln 2015-01-28 20:16:54 UTC (rev 4930) @@ -0,0 +1,33 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 11 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MySleepTimer", "MySleepTimer\MySleepTimer.csproj", "{03856C9E-0926-41DB-A13A-AE3D08285428}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|Mixed Platforms = Debug|Mixed Platforms + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|Mixed Platforms = Release|Mixed Platforms + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {03856C9E-0926-41DB-A13A-AE3D08285428}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {03856C9E-0926-41DB-A13A-AE3D08285428}.Debug|Any CPU.Build.0 = Debug|Any CPU + {03856C9E-0926-41DB-A13A-AE3D08285428}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {03856C9E-0926-41DB-A13A-AE3D08285428}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {03856C9E-0926-41DB-A13A-AE3D08285428}.Debug|x86.ActiveCfg = Debug|Any CPU + {03856C9E-0926-41DB-A13A-AE3D08285428}.Release|Any CPU.ActiveCfg = Release|Any CPU + {03856C9E-0926-41DB-A13A-AE3D08285428}.Release|Any CPU.Build.0 = Release|Any CPU + {03856C9E-0926-41DB-A13A-AE3D08285428}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {03856C9E-0926-41DB-A13A-AE3D08285428}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {03856C9E-0926-41DB-A13A-AE3D08285428}.Release|x86.ActiveCfg = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + VisualSVNWorkingCopyRoot = . + EndGlobalSection +EndGlobal This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |