diff --git a/TweetDuck.csproj b/TweetDuck.csproj index e8669028..6eb8c2e8 100644 --- a/TweetDuck.csproj +++ b/TweetDuck.csproj @@ -345,6 +345,10 @@ <Project>{b10b0017-819e-4f71-870f-8256b36a26aa}</Project> <Name>TweetDuck.Browser</Name> </ProjectReference> + <ProjectReference Include="video\TweetDuck.Video\TweetDuck.Video.csproj"> + <Project>{278b2d11-402d-44b6-b6a1-8fa67db65565}</Project> + <Name>TweetDuck.Video</Name> + </ProjectReference> </ItemGroup> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <PropertyGroup> diff --git a/TweetDuck.sln b/TweetDuck.sln index 0c4470d1..178226c5 100644 --- a/TweetDuck.sln +++ b/TweetDuck.sln @@ -10,6 +10,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTests", "tests\UnitTest EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TweetLib.Audio", "lib\TweetLib.Audio\TweetLib.Audio.csproj", "{E9E1FD1B-F480-45B7-9970-BE2ECFD309AC}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TweetDuck.Video", "video\TweetDuck.Video\TweetDuck.Video.csproj", "{278B2D11-402D-44B6-B6A1-8FA67DB65565}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|x86 = Debug|x86 @@ -32,6 +34,10 @@ Global {E9E1FD1B-F480-45B7-9970-BE2ECFD309AC}.Debug|x86.Build.0 = Debug|x86 {E9E1FD1B-F480-45B7-9970-BE2ECFD309AC}.Release|x86.ActiveCfg = Release|x86 {E9E1FD1B-F480-45B7-9970-BE2ECFD309AC}.Release|x86.Build.0 = Release|x86 + {278B2D11-402D-44B6-B6A1-8FA67DB65565}.Debug|x86.ActiveCfg = Debug|x86 + {278B2D11-402D-44B6-B6A1-8FA67DB65565}.Debug|x86.Build.0 = Debug|x86 + {278B2D11-402D-44B6-B6A1-8FA67DB65565}.Release|x86.ActiveCfg = Release|x86 + {278B2D11-402D-44B6-B6A1-8FA67DB65565}.Release|x86.Build.0 = Release|x86 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/video/TweetDuck.Video/ControlWMP.cs b/video/TweetDuck.Video/ControlWMP.cs new file mode 100644 index 00000000..2e825486 --- /dev/null +++ b/video/TweetDuck.Video/ControlWMP.cs @@ -0,0 +1,17 @@ +using System.ComponentModel; +using System.Windows.Forms; +using WMPLib; + +namespace TweetDuck.Video{ + [DesignTimeVisible(true)] + [Clsid("{6bf52a52-394a-11d3-b153-00c04f79faa6}")] + class ControlWMP : AxHost{ + public WindowsMediaPlayer Ocx { get; private set; } + + public ControlWMP() : base("6bf52a52-394a-11d3-b153-00c04f79faa6"){} + + protected override void AttachInterfaces(){ + Ocx = (WindowsMediaPlayer)GetOcx(); + } + } +} diff --git a/video/TweetDuck.Video/FormPlayer.Designer.cs b/video/TweetDuck.Video/FormPlayer.Designer.cs new file mode 100644 index 00000000..428751d0 --- /dev/null +++ b/video/TweetDuck.Video/FormPlayer.Designer.cs @@ -0,0 +1,62 @@ +namespace TweetDuck.Video { + partial class FormPlayer { + /// <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.player = new ControlWMP(); + ((System.ComponentModel.ISupportInitialize)(this.player)).BeginInit(); + this.SuspendLayout(); + // + // player + // + this.player.Dock = System.Windows.Forms.DockStyle.Fill; + this.player.Enabled = true; + this.player.Location = new System.Drawing.Point(0, 0); + this.player.Name = "player"; + this.player.Size = new System.Drawing.Size(120, 120); + this.player.TabIndex = 0; + // + // FormPlayer + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(120, 120); + this.Controls.Add(this.player); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + this.Name = "FormPlayer"; + this.ShowIcon = false; + this.ShowInTaskbar = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "TweetDuck Video"; + this.Load += new System.EventHandler(this.FormPlayer_Load); + ((System.ComponentModel.ISupportInitialize)(this.player)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private ControlWMP player; + } +} + diff --git a/video/TweetDuck.Video/FormPlayer.cs b/video/TweetDuck.Video/FormPlayer.cs new file mode 100644 index 00000000..f03b4704 --- /dev/null +++ b/video/TweetDuck.Video/FormPlayer.cs @@ -0,0 +1,18 @@ +using System; +using System.Drawing; +using System.Windows.Forms; +using WMPLib; + +namespace TweetDuck.Video{ + partial class FormPlayer : Form{ + public FormPlayer(){ + InitializeComponent(); + + player.Ocx.enableContextMenu = false; + player.Ocx.uiMode = "none"; + } + + private void FormPlayer_Load(object sender, EventArgs e){ + } + } +} diff --git a/video/TweetDuck.Video/Program.cs b/video/TweetDuck.Video/Program.cs new file mode 100644 index 00000000..078aba72 --- /dev/null +++ b/video/TweetDuck.Video/Program.cs @@ -0,0 +1,18 @@ +using System; +using System.Windows.Forms; + +namespace TweetDuck.Video{ + static class Program{ + [STAThread] + private static void Main(){ + try{ + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new FormPlayer()); + }catch(Exception){ + // TODO + Environment.Exit(2); + } + } + } +} diff --git a/video/TweetDuck.Video/Properties/AssemblyInfo.cs b/video/TweetDuck.Video/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..6c548eac --- /dev/null +++ b/video/TweetDuck.Video/Properties/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System.Reflection; +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("TweetDuck Video")] +[assembly: AssemblyDescription("TweetDuck Video")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("TweetDuck.Video")] +[assembly: AssemblyCopyright("")] +[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("278b2d11-402d-44b6-b6a1-8fa67db65565")] + +// 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 Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/video/TweetDuck.Video/TweetDuck.Video.csproj b/video/TweetDuck.Video/TweetDuck.Video.csproj new file mode 100644 index 00000000..bec18d7d --- /dev/null +++ b/video/TweetDuck.Video/TweetDuck.Video.csproj @@ -0,0 +1,68 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ProjectGuid>{278B2D11-402D-44B6-B6A1-8FA67DB65565}</ProjectGuid> + <OutputType>WinExe</OutputType> + <RootNamespace>TweetDuck.Video</RootNamespace> + <AssemblyName>TweetDuck.Video</AssemblyName> + <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion> + <FileAlignment>512</FileAlignment> + <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> + <ResolveComReferenceSilent>True</ResolveComReferenceSilent> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'"> + <DebugSymbols>true</DebugSymbols> + <OutputPath>bin\x86\Debug\</OutputPath> + <DefineConstants>DEBUG;TRACE</DefineConstants> + <DebugType>full</DebugType> + <PlatformTarget>x86</PlatformTarget> + <ErrorReport>prompt</ErrorReport> + <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet> + <Prefer32Bit>true</Prefer32Bit> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'"> + <OutputPath>bin\x86\Release\</OutputPath> + <DefineConstants>TRACE</DefineConstants> + <Optimize>true</Optimize> + <DebugType>none</DebugType> + <PlatformTarget>x86</PlatformTarget> + <ErrorReport>prompt</ErrorReport> + <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet> + <Prefer32Bit>true</Prefer32Bit> + <GenerateSerializationAssemblies>Auto</GenerateSerializationAssemblies> + </PropertyGroup> + <ItemGroup> + <Reference Include="System" /> + <Reference Include="System.Core" /> + <Reference Include="System.Drawing" /> + <Reference Include="System.Windows.Forms" /> + </ItemGroup> + <ItemGroup> + <Compile Include="ControlWMP.cs"> + <SubType>Component</SubType> + </Compile> + <Compile Include="FormPlayer.cs"> + <SubType>Form</SubType> + </Compile> + <Compile Include="FormPlayer.Designer.cs"> + <DependentUpon>FormPlayer.cs</DependentUpon> + </Compile> + <Compile Include="Program.cs" /> + <Compile Include="Properties\AssemblyInfo.cs" /> + </ItemGroup> + <ItemGroup> + <COMReference Include="WMPLib"> + <Guid>{6BF52A50-394A-11D3-B153-00C04F79FAA6}</Guid> + <VersionMajor>1</VersionMajor> + <VersionMinor>0</VersionMinor> + <Lcid>0</Lcid> + <WrapperTool>tlbimp</WrapperTool> + <Isolated>False</Isolated> + <EmbedInteropTypes>True</EmbedInteropTypes> + </COMReference> + </ItemGroup> + <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> +</Project> \ No newline at end of file