diff --git a/.gitignore b/.gitignore
index d4dc94e..cb14307 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,5 +4,6 @@
*/bin/*
*/obj/*
*.csproj.user
+*.DotSettings.user
*.suo
.vs
diff --git a/.idea/.idea.VAR.Toolbox/.idea/.gitignore b/.idea/.idea.VAR.Toolbox/.idea/.gitignore
new file mode 100644
index 0000000..60335c0
--- /dev/null
+++ b/.idea/.idea.VAR.Toolbox/.idea/.gitignore
@@ -0,0 +1,13 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Rider ignored files
+/contentModel.xml
+/.idea.VAR.Json.iml
+/modules.xml
+/projectSettingsUpdater.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/.idea.VAR.Toolbox/.idea/dictionaries/VAR.xml b/.idea/.idea.VAR.Toolbox/.idea/dictionaries/VAR.xml
new file mode 100644
index 0000000..eb7f3d6
--- /dev/null
+++ b/.idea/.idea.VAR.Toolbox/.idea/dictionaries/VAR.xml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.VAR.Toolbox/.idea/encodings.xml b/.idea/.idea.VAR.Toolbox/.idea/encodings.xml
new file mode 100644
index 0000000..df87cf9
--- /dev/null
+++ b/.idea/.idea.VAR.Toolbox/.idea/encodings.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.VAR.Toolbox/.idea/indexLayout.xml b/.idea/.idea.VAR.Toolbox/.idea/indexLayout.xml
new file mode 100644
index 0000000..7b08163
--- /dev/null
+++ b/.idea/.idea.VAR.Toolbox/.idea/indexLayout.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.VAR.Toolbox/.idea/vcs.xml b/.idea/.idea.VAR.Toolbox/.idea/vcs.xml
new file mode 100644
index 0000000..d117f4e
--- /dev/null
+++ b/.idea/.idea.VAR.Toolbox/.idea/vcs.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/VAR.Toolbox.TestPlugin/FrmTestPlugin.cs b/VAR.Toolbox.TestPlugin/FrmTestPlugin.cs
index a55c0a4..0a0243a 100644
--- a/VAR.Toolbox.TestPlugin/FrmTestPlugin.cs
+++ b/VAR.Toolbox.TestPlugin/FrmTestPlugin.cs
@@ -10,8 +10,8 @@ namespace VAR.Toolbox.TestPlugin
InitializeComponent();
}
- public string ToolName { get { return "Test"; } }
+ public string ToolName => "Test";
- public bool HasIcon { get { return false; } }
+ public bool HasIcon => false;
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox.TestPlugin/Notes.md b/VAR.Toolbox.TestPlugin/Notes.md
index 5f428e5..26123d4 100644
--- a/VAR.Toolbox.TestPlugin/Notes.md
+++ b/VAR.Toolbox.TestPlugin/Notes.md
@@ -3,11 +3,12 @@
* Build as class library.
* Add reference to ```VAR.Toolbox``` for interface declarations and utilities.
* Use the interfaces to extend functionality:
- * ```IToolForm```: Tool window.
- * ```IToolPanel```: Tool panels in the main window. Try to fit all on 200px width.
- * ```ITextCoder```: Text codification clases.
- * ```IProxyCmdExecutor```: Proxy command executors, mainly for remote executions.
+ * ```IToolForm```: Tool window.
+ * ```IToolPanel```: Tool panels in the main window. Try to fit all on 200px width.
+ * ```ITextCoder```: Text codification clases.
+ * ```IProxyCmdExecutor```: Proxy command executors, mainly for remote executions.
## Usage
-Put the generated assembly near ```VAR.Toolbox.exe``` it will load as plug-ins any assembly that starts with ```VAR.Toolbox```
\ No newline at end of file
+Put the generated assembly near ```VAR.Toolbox.exe``` it will load as plug-ins any assembly that starts
+with ```VAR.Toolbox```
\ No newline at end of file
diff --git a/VAR.Toolbox.TestPlugin/Properties/AssemblyInfo.cs b/VAR.Toolbox.TestPlugin/Properties/AssemblyInfo.cs
index a046fc6..613b15a 100644
--- a/VAR.Toolbox.TestPlugin/Properties/AssemblyInfo.cs
+++ b/VAR.Toolbox.TestPlugin/Properties/AssemblyInfo.cs
@@ -32,4 +32,4 @@ using System.Runtime.InteropServices;
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
\ No newline at end of file
diff --git a/VAR.Toolbox.TestPlugin/VAR.Toolbox.TestPlugin.csproj b/VAR.Toolbox.TestPlugin/VAR.Toolbox.TestPlugin.csproj
index f673a4b..fe971ba 100644
--- a/VAR.Toolbox.TestPlugin/VAR.Toolbox.TestPlugin.csproj
+++ b/VAR.Toolbox.TestPlugin/VAR.Toolbox.TestPlugin.csproj
@@ -9,9 +9,10 @@
Properties
VAR.Toolbox.TestPlugin
VAR.Toolbox.TestPlugin
- v4.7.2
+ v4.8
512
true
+
true
diff --git a/VAR.Toolbox.sln.DotSettings b/VAR.Toolbox.sln.DotSettings
new file mode 100644
index 0000000..f33e393
--- /dev/null
+++ b/VAR.Toolbox.sln.DotSettings
@@ -0,0 +1,63 @@
+
+ NotRequired
+ True
+ True
+ TOGETHER_SAME_LINE
+ True
+ True
+ False
+ True
+ True
+ True
+ OneStep
+ OneStep
+ True
+ UseVarWhenEvident
+ UseVarWhenEvident
+ AES
+ AM
+ AUX
+ BPP
+ DC
+ DES
+ EPM
+ GDI
+ ID
+ IP
+ RECT
+ RGB
+ SCART
+ SPDIF
+ SQL
+ SRCCOPY
+ TCP
+ URL
+ USB
+ VAR
+ WMIC
+ YRYBY
+ False
+ <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb_AaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb_AaBb"><ExtraRule Prefix="T" Suffix="" Style="AaBb_AaBb" /></Policy>
+ <Policy Inspect="True" Prefix="I" Suffix="" Style="AaBb_AaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb_AaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb_AaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb_AaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb_AaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb_AaBb" />
+ <Policy Inspect="True" Prefix="_" Suffix="" Style="aaBb_AaBb" />
+ <Policy Inspect="True" Prefix="_" Suffix="" Style="aaBb_AaBb" />
+ <Policy Inspect="True" Prefix="_" Suffix="" Style="aaBb_AaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb_AaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb_AaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" />
+ <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb_AaBb" />
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+
\ No newline at end of file
diff --git a/VAR.Toolbox/Code/BaseFactory.cs b/VAR.Toolbox/Code/BaseFactory.cs
index 41eee61..4e30748 100644
--- a/VAR.Toolbox/Code/BaseFactory.cs
+++ b/VAR.Toolbox/Code/BaseFactory.cs
@@ -6,7 +6,8 @@ namespace VAR.Toolbox.Code
{
public abstract class BaseFactory where T : INamed
{
- private static Dictionary _dictTypes = null;
+ // ReSharper disable once StaticMemberInGenericType
+ private static Dictionary _dictTypes;
private static Dictionary GetDict()
{
@@ -37,8 +38,10 @@ namespace VAR.Toolbox.Code
Dictionary dict = GetDict();
if (dict.ContainsKey(name) == false)
{
- throw new NotImplementedException(string.Format("Cant create {1} with this name: {0}", name, typeof(T).Name));
+ throw new NotImplementedException(string.Format("Cant create {1} with this name: {0}", name,
+ typeof(T).Name));
}
+
Type type = dict[name];
T instance = (T)Activator.CreateInstance(type);
@@ -55,10 +58,13 @@ namespace VAR.Toolbox.Code
{
return (T)(object)null;
}
+
if (dict.ContainsKey(name) == false)
{
- throw new NotImplementedException(string.Format("Cant create {1} with this config: {0}", config, typeof(T).Name));
+ throw new NotImplementedException(string.Format("Cant create {1} with this config: {0}", config,
+ typeof(T).Name));
}
+
Type type = dict[name];
T instance = (T)Activator.CreateInstance(type, new object[] { nextConfig });
@@ -70,4 +76,4 @@ namespace VAR.Toolbox.Code
{
string Name { get; }
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Code/DirectShow/CameraControlProperty.cs b/VAR.Toolbox/Code/DirectShow/CameraControlProperty.cs
index 7ccb10e..f859903 100644
--- a/VAR.Toolbox/Code/DirectShow/CameraControlProperty.cs
+++ b/VAR.Toolbox/Code/DirectShow/CameraControlProperty.cs
@@ -11,26 +11,32 @@
/// Pan control.
///
Pan = 0,
+
///
/// Tilt control.
///
Tilt,
+
///
/// Roll control.
///
Roll,
+
///
/// Zoom control.
///
Zoom,
+
///
/// Exposure control.
///
Exposure,
+
///
/// Iris control.
///
Iris,
+
///
/// Focus control.
///
@@ -47,13 +53,15 @@
/// No control flag.
///
None = 0x0,
+
///
/// Auto control Flag.
///
Auto = 0x0001,
+
///
/// Manual control Flag.
///
Manual = 0x0002
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Code/DirectShow/IAMCameraControl.cs b/VAR.Toolbox/Code/DirectShow/IAMCameraControl.cs
index a88ce2a..efe81ed 100644
--- a/VAR.Toolbox/Code/DirectShow/IAMCameraControl.cs
+++ b/VAR.Toolbox/Code/DirectShow/IAMCameraControl.cs
@@ -1,6 +1,5 @@
namespace VAR.Toolbox.Code.DirectShow
{
- using System;
using System.Runtime.InteropServices;
///
@@ -8,15 +7,15 @@
/// or shutter speed. To obtain this interface, query the filter that controls the camera.
///
[ComImport,
- Guid("C6E13370-30AC-11d0-A18C-00A0C9118956"),
- InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
+ Guid("C6E13370-30AC-11d0-A18C-00A0C9118956"),
+ InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
internal interface IAMCameraControl
{
///
/// Gets the range and default value of a specified camera property.
///
///
- /// Specifies the property to query.
+ /// Specifies the property to query.
/// Receives the minimum value of the property.
/// Receives the maximum value of the property.
/// Receives the step size for the property.
@@ -27,47 +26,47 @@
///
[PreserveSig]
int GetRange(
- [In] CameraControlProperty Property,
+ [In] CameraControlProperty property,
[Out] out int pMin,
[Out] out int pMax,
[Out] out int pSteppingDelta,
[Out] out int pDefault,
[Out] out CameraControlFlags pCapsFlags
- );
+ );
///
/// Sets a specified property on the camera.
///
///
- /// Specifies the property to set.
+ /// Specifies the property to set.
/// Specifies the new value of the property.
- /// Specifies the desired control setting, as a member of the CameraControlFlags enumeration.
+ /// Specifies the desired control setting, as a member of the CameraControlFlags enumeration.
///
/// Return's HRESULT error code.
///
[PreserveSig]
int Set(
- [In] CameraControlProperty Property,
+ [In] CameraControlProperty property,
[In] int lValue,
- [In] CameraControlFlags Flags
- );
+ [In] CameraControlFlags flags
+ );
///
/// Gets the current setting of a camera property.
///
///
- /// Specifies the property to retrieve.
+ /// Specifies the property to retrieve.
/// Receives the value of the property.
- /// Receives a member of the CameraControlFlags enumeration.
+ /// Receives a member of the CameraControlFlags enumeration.
/// The returned value indicates whether the setting is controlled manually or automatically.
///
/// Return's HRESULT error code.
///
[PreserveSig]
int Get(
- [In] CameraControlProperty Property,
+ [In] CameraControlProperty property,
[Out] out int lValue,
- [Out] out CameraControlFlags Flags
- );
+ [Out] out CameraControlFlags flags
+ );
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Code/DirectShow/IAMCrossbar.cs b/VAR.Toolbox/Code/DirectShow/IAMCrossbar.cs
index d824a92..18a129c 100644
--- a/VAR.Toolbox/Code/DirectShow/IAMCrossbar.cs
+++ b/VAR.Toolbox/Code/DirectShow/IAMCrossbar.cs
@@ -1,6 +1,5 @@
#pragma warning disable IDE1006
-using System;
using System.Runtime.InteropServices;
namespace VAR.Toolbox.Code.DirectShow
@@ -9,8 +8,8 @@ namespace VAR.Toolbox.Code.DirectShow
/// The IAMCrossbar interface routes signals from an analog or digital source to a video capture filter.
///
[ComImport, System.Security.SuppressUnmanagedCodeSecurity,
- Guid("C6E13380-30AC-11D0-A18C-00A0C9118956"),
- InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
+ Guid("C6E13380-30AC-11D0-A18C-00A0C9118956"),
+ InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
internal interface IAMCrossbar
{
///
@@ -79,4 +78,4 @@ namespace VAR.Toolbox.Code.DirectShow
[Out] out int pinIndexRelated,
[Out] out PhysicalConnectorType physicalType);
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Code/DirectShow/IAMStreamConfig.cs b/VAR.Toolbox/Code/DirectShow/IAMStreamConfig.cs
index f8230dd..c6d0024 100644
--- a/VAR.Toolbox/Code/DirectShow/IAMStreamConfig.cs
+++ b/VAR.Toolbox/Code/DirectShow/IAMStreamConfig.cs
@@ -1,6 +1,5 @@
namespace VAR.Toolbox.Code.DirectShow
{
- using System;
using System.Runtime.InteropServices;
///
@@ -9,8 +8,8 @@ namespace VAR.Toolbox.Code.DirectShow
///
///
[ComImport,
- Guid("C6E13340-30AC-11d0-A18C-00A0C9118956"),
- InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
+ Guid("C6E13340-30AC-11d0-A18C-00A0C9118956"),
+ InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
internal interface IAMStreamConfig
{
///
@@ -60,8 +59,10 @@ namespace VAR.Toolbox.Code.DirectShow
[PreserveSig]
int GetStreamCaps(
[In] int index,
- [Out, MarshalAs(UnmanagedType.LPStruct)] out AMMediaType mediaType,
- [In, MarshalAs(UnmanagedType.LPStruct)] VideoStreamConfigCaps streamConfigCaps
- );
+ [Out, MarshalAs(UnmanagedType.LPStruct)]
+ out AMMediaType mediaType,
+ [In, MarshalAs(UnmanagedType.LPStruct)]
+ VideoStreamConfigCaps streamConfigCaps
+ );
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Code/DirectShow/IAMVideoControl.cs b/VAR.Toolbox/Code/DirectShow/IAMVideoControl.cs
index d183d59..2873575 100644
--- a/VAR.Toolbox/Code/DirectShow/IAMVideoControl.cs
+++ b/VAR.Toolbox/Code/DirectShow/IAMVideoControl.cs
@@ -9,8 +9,8 @@
///
///
[ComImport,
- Guid("6A2E0670-28E4-11D0-A18c-00A0C9118956"),
- InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
+ Guid("6A2E0670-28E4-11D0-A18c-00A0C9118956"),
+ InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
internal interface IAMVideoControl
{
///
@@ -101,4 +101,4 @@
[Out] out int listSize,
[Out] out IntPtr frameRate);
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Code/DirectShow/IBaseFilter.cs b/VAR.Toolbox/Code/DirectShow/IBaseFilter.cs
index 0491d97..a5cefec 100644
--- a/VAR.Toolbox/Code/DirectShow/IBaseFilter.cs
+++ b/VAR.Toolbox/Code/DirectShow/IBaseFilter.cs
@@ -9,8 +9,8 @@ namespace VAR.Toolbox.Code.DirectShow
///
///
[ComImport,
- Guid("56A86895-0AD4-11CE-B03A-0020AF0BA770"),
- InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
+ Guid("56A86895-0AD4-11CE-B03A-0020AF0BA770"),
+ InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
internal interface IBaseFilter
{
// --- IPersist Methods
@@ -19,12 +19,12 @@ namespace VAR.Toolbox.Code.DirectShow
/// Returns the class identifier (CLSID) for the component object.
///
///
- /// Points to the location of the CLSID on return.
+ /// Points to the location of the CLSID on return.
///
/// Return's HRESULT error code.
///
[PreserveSig]
- int GetClassID([Out] out Guid ClassID);
+ int GetClassID([Out] out Guid classID);
// --- IMediaFilter Methods
@@ -151,4 +151,4 @@ namespace VAR.Toolbox.Code.DirectShow
[PreserveSig]
int QueryVendorInfo([Out, MarshalAs(UnmanagedType.LPWStr)] out string vendorInfo);
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Code/DirectShow/ICaptureGraphBuilder2.cs b/VAR.Toolbox/Code/DirectShow/ICaptureGraphBuilder2.cs
index 1354f5b..54eb61d 100644
--- a/VAR.Toolbox/Code/DirectShow/ICaptureGraphBuilder2.cs
+++ b/VAR.Toolbox/Code/DirectShow/ICaptureGraphBuilder2.cs
@@ -1,3 +1,5 @@
+// ReSharper disable IdentifierTypo
+
namespace VAR.Toolbox.Code.DirectShow
{
using System;
@@ -8,8 +10,8 @@ namespace VAR.Toolbox.Code.DirectShow
///
///
[ComImport,
- Guid("93E5A4E0-2D50-11d2-ABFA-00A0C9C6E38D"),
- InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
+ Guid("93E5A4E0-2D50-11d2-ABFA-00A0C9C6E38D"),
+ InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
internal interface ICaptureGraphBuilder2
{
///
@@ -48,14 +50,15 @@ namespace VAR.Toolbox.Code.DirectShow
///
[PreserveSig]
int SetOutputFileName(
- [In, MarshalAs(UnmanagedType.LPStruct)] Guid type,
+ [In, MarshalAs(UnmanagedType.LPStruct)]
+ Guid type,
[In, MarshalAs(UnmanagedType.LPWStr)] string fileName,
[Out] out IBaseFilter baseFilter,
[Out] out IntPtr fileSinkFilter
- );
+ );
///
- /// Searche the graph for a specified interface, starting from a specified filter.
+ /// Search the graph for a specified interface, starting from a specified filter.
///
///
/// GUID that specifies the search criteria.
@@ -68,12 +71,16 @@ namespace VAR.Toolbox.Code.DirectShow
///
[PreserveSig]
int FindInterface(
- [In, MarshalAs(UnmanagedType.LPStruct)] Guid category,
- [In, MarshalAs(UnmanagedType.LPStruct)] Guid type,
+ [In, MarshalAs(UnmanagedType.LPStruct)]
+ Guid category,
+ [In, MarshalAs(UnmanagedType.LPStruct)]
+ Guid type,
[In] IBaseFilter baseFilter,
- [In, MarshalAs(UnmanagedType.LPStruct)] Guid interfaceID,
- [Out, MarshalAs(UnmanagedType.IUnknown)] out object retInterface
- );
+ [In, MarshalAs(UnmanagedType.LPStruct)]
+ Guid interfaceID,
+ [Out, MarshalAs(UnmanagedType.IUnknown)]
+ out object retInterface
+ );
///
/// Connect an output pin on a source filter to a rendering filter, optionally through a compression filter.
@@ -89,12 +96,15 @@ namespace VAR.Toolbox.Code.DirectShow
///
[PreserveSig]
int RenderStream(
- [In, MarshalAs(UnmanagedType.LPStruct)] Guid category,
- [In, MarshalAs(UnmanagedType.LPStruct)] Guid mediaType,
- [In, MarshalAs(UnmanagedType.IUnknown)] object source,
+ [In, MarshalAs(UnmanagedType.LPStruct)]
+ Guid category,
+ [In, MarshalAs(UnmanagedType.LPStruct)]
+ Guid mediaType,
+ [In, MarshalAs(UnmanagedType.IUnknown)]
+ object source,
[In] IBaseFilter compressor,
[In] IBaseFilter renderer
- );
+ );
///
/// Set the start and stop times for one or more streams of captured data.
@@ -114,14 +124,17 @@ namespace VAR.Toolbox.Code.DirectShow
///
[PreserveSig]
int ControlStream(
- [In, MarshalAs(UnmanagedType.LPStruct)] Guid category,
- [In, MarshalAs(UnmanagedType.LPStruct)] Guid mediaType,
- [In, MarshalAs(UnmanagedType.Interface)] IBaseFilter filter,
+ [In, MarshalAs(UnmanagedType.LPStruct)]
+ Guid category,
+ [In, MarshalAs(UnmanagedType.LPStruct)]
+ Guid mediaType,
+ [In, MarshalAs(UnmanagedType.Interface)]
+ IBaseFilter filter,
[In] long start,
[In] long stop,
[In] short startCookie,
[In] short stopCookie
- );
+ );
///
/// Preallocate a capture file to a specified size.
@@ -136,7 +149,7 @@ namespace VAR.Toolbox.Code.DirectShow
int AllocCapFile(
[In, MarshalAs(UnmanagedType.LPWStr)] string fileName,
[In] long size
- );
+ );
///
/// Copy the valid media data from a capture file.
@@ -155,7 +168,7 @@ namespace VAR.Toolbox.Code.DirectShow
[In, MarshalAs(UnmanagedType.LPWStr)] string newFileName,
[In, MarshalAs(UnmanagedType.Bool)] bool allowEscAbort,
[In] IntPtr callback
- );
+ );
///
///
@@ -173,13 +186,17 @@ namespace VAR.Toolbox.Code.DirectShow
///
[PreserveSig]
int FindPin(
- [In, MarshalAs(UnmanagedType.IUnknown)] object source,
+ [In, MarshalAs(UnmanagedType.IUnknown)]
+ object source,
[In] PinDirection pinDirection,
- [In, MarshalAs(UnmanagedType.LPStruct)] Guid category,
- [In, MarshalAs(UnmanagedType.LPStruct)] Guid mediaType,
+ [In, MarshalAs(UnmanagedType.LPStruct)]
+ Guid category,
+ [In, MarshalAs(UnmanagedType.LPStruct)]
+ Guid mediaType,
[In, MarshalAs(UnmanagedType.Bool)] bool unconnected,
[In] int index,
- [Out, MarshalAs(UnmanagedType.Interface)] out IPin pin
- );
+ [Out, MarshalAs(UnmanagedType.Interface)]
+ out IPin pin
+ );
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Code/DirectShow/ICreateDevEnum.cs b/VAR.Toolbox/Code/DirectShow/ICreateDevEnum.cs
index fbe1357..87598ab 100644
--- a/VAR.Toolbox/Code/DirectShow/ICreateDevEnum.cs
+++ b/VAR.Toolbox/Code/DirectShow/ICreateDevEnum.cs
@@ -10,8 +10,8 @@ namespace VAR.Toolbox.Code.DirectShow
///
///
[ComImport,
- Guid("29840822-5B84-11D0-BD3B-00A0C911CE86"),
- InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
+ Guid("29840822-5B84-11D0-BD3B-00A0C911CE86"),
+ InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
internal interface ICreateDevEnum
{
///
@@ -27,4 +27,4 @@ namespace VAR.Toolbox.Code.DirectShow
[PreserveSig]
int CreateClassEnumerator([In] ref Guid type, [Out] out IEnumMoniker enumMoniker, [In] int flags);
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Code/DirectShow/IEnumFilters.cs b/VAR.Toolbox/Code/DirectShow/IEnumFilters.cs
index bbbfcb6..472ddf5 100644
--- a/VAR.Toolbox/Code/DirectShow/IEnumFilters.cs
+++ b/VAR.Toolbox/Code/DirectShow/IEnumFilters.cs
@@ -1,6 +1,5 @@
namespace VAR.Toolbox.Code.DirectShow
{
- using System;
using System.Runtime.InteropServices;
///
@@ -9,8 +8,8 @@ namespace VAR.Toolbox.Code.DirectShow
///
///
[ComImport,
- Guid("56A86893-0AD4-11CE-B03A-0020AF0BA770"),
- InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
+ Guid("56A86893-0AD4-11CE-B03A-0020AF0BA770"),
+ InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
internal interface IEnumFilters
{
///
@@ -25,7 +24,8 @@ namespace VAR.Toolbox.Code.DirectShow
///
[PreserveSig]
int Next([In] int cFilters,
- [Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 0)] IBaseFilter[] filters,
+ [Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 0)]
+ IBaseFilter[] filters,
[Out] out int filtersFetched);
///
@@ -61,4 +61,4 @@ namespace VAR.Toolbox.Code.DirectShow
[PreserveSig]
int Clone([Out] out IEnumFilters enumFilters);
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Code/DirectShow/IEnumPins.cs b/VAR.Toolbox/Code/DirectShow/IEnumPins.cs
index d258a40..429bffa 100644
--- a/VAR.Toolbox/Code/DirectShow/IEnumPins.cs
+++ b/VAR.Toolbox/Code/DirectShow/IEnumPins.cs
@@ -1,6 +1,5 @@
namespace VAR.Toolbox.Code.DirectShow
{
- using System;
using System.Runtime.InteropServices;
///
@@ -8,8 +7,8 @@ namespace VAR.Toolbox.Code.DirectShow
///
///
[ComImport,
- Guid("56A86892-0AD4-11CE-B03A-0020AF0BA770"),
- InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
+ Guid("56A86892-0AD4-11CE-B03A-0020AF0BA770"),
+ InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
internal interface IEnumPins
{
///
@@ -24,7 +23,8 @@ namespace VAR.Toolbox.Code.DirectShow
///
[PreserveSig]
int Next([In] int cPins,
- [Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 0)] IPin[] pins,
+ [Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 0)]
+ IPin[] pins,
[Out] out int pinsFetched);
///
@@ -58,4 +58,4 @@ namespace VAR.Toolbox.Code.DirectShow
[PreserveSig]
int Clone([Out] out IEnumPins enumPins);
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Code/DirectShow/IFileSourceFilter.cs b/VAR.Toolbox/Code/DirectShow/IFileSourceFilter.cs
index 474b50e..12dc8c4 100644
--- a/VAR.Toolbox/Code/DirectShow/IFileSourceFilter.cs
+++ b/VAR.Toolbox/Code/DirectShow/IFileSourceFilter.cs
@@ -1,6 +1,5 @@
namespace VAR.Toolbox.Code.DirectShow
{
- using System;
using System.Runtime.InteropServices;
///
@@ -8,8 +7,8 @@ namespace VAR.Toolbox.Code.DirectShow
///
///
[ComImport,
- Guid("56A868A6-0Ad4-11CE-B03A-0020AF0BA770"),
- InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
+ Guid("56A868A6-0Ad4-11CE-B03A-0020AF0BA770"),
+ InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
internal interface IFileSourceFilter
{
///
@@ -23,7 +22,8 @@ namespace VAR.Toolbox.Code.DirectShow
///
[PreserveSig]
int Load([In, MarshalAs(UnmanagedType.LPWStr)] string fileName,
- [In, MarshalAs(UnmanagedType.LPStruct)] AMMediaType mediaType);
+ [In, MarshalAs(UnmanagedType.LPStruct)]
+ AMMediaType mediaType);
///
/// Retrieves the current file.
@@ -36,6 +36,7 @@ namespace VAR.Toolbox.Code.DirectShow
///
[PreserveSig]
int GetCurFile([Out, MarshalAs(UnmanagedType.LPWStr)] out string fileName,
- [Out, MarshalAs(UnmanagedType.LPStruct)] AMMediaType mediaType);
+ [Out, MarshalAs(UnmanagedType.LPStruct)]
+ AMMediaType mediaType);
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Code/DirectShow/IFilterGraph.cs b/VAR.Toolbox/Code/DirectShow/IFilterGraph.cs
index 1cf6046..6c854c7 100644
--- a/VAR.Toolbox/Code/DirectShow/IFilterGraph.cs
+++ b/VAR.Toolbox/Code/DirectShow/IFilterGraph.cs
@@ -9,8 +9,8 @@ namespace VAR.Toolbox.Code.DirectShow
///
///
[ComImport,
- Guid("56A8689F-0AD4-11CE-B03A-0020AF0BA770"),
- InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
+ Guid("56A8689F-0AD4-11CE-B03A-0020AF0BA770"),
+ InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
internal interface IFilterGraph
{
///
@@ -70,7 +70,9 @@ namespace VAR.Toolbox.Code.DirectShow
/// Return's HRESULT error code.
///
[PreserveSig]
- int ConnectDirect([In] IPin pinOut, [In] IPin pinIn, [In, MarshalAs(UnmanagedType.LPStruct)] AMMediaType mediaType);
+ int ConnectDirect([In] IPin pinOut, [In] IPin pinIn,
+ [In, MarshalAs(UnmanagedType.LPStruct)]
+ AMMediaType mediaType);
///
/// Breaks the existing pin connection and reconnects it to the same pin.
@@ -103,4 +105,4 @@ namespace VAR.Toolbox.Code.DirectShow
[PreserveSig]
int SetDefaultSyncSource();
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Code/DirectShow/IFilterGraph2.cs b/VAR.Toolbox/Code/DirectShow/IFilterGraph2.cs
index 3cd3301..def6515 100644
--- a/VAR.Toolbox/Code/DirectShow/IFilterGraph2.cs
+++ b/VAR.Toolbox/Code/DirectShow/IFilterGraph2.cs
@@ -10,8 +10,8 @@ namespace VAR.Toolbox.Code.DirectShow
///
///
[ComImport,
- Guid("36B73882-C2C8-11CF-8B46-00805F6CEF60"),
- InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
+ Guid("36B73882-C2C8-11CF-8B46-00805F6CEF60"),
+ InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
internal interface IFilterGraph2
{
// --- IFilterGraph Methods
@@ -73,7 +73,9 @@ namespace VAR.Toolbox.Code.DirectShow
/// Return's HRESULT error code.
///
[PreserveSig]
- int ConnectDirect([In] IPin pinOut, [In] IPin pinIn, [In, MarshalAs(UnmanagedType.LPStruct)] AMMediaType mediaType);
+ int ConnectDirect([In] IPin pinOut, [In] IPin pinIn,
+ [In, MarshalAs(UnmanagedType.LPStruct)]
+ AMMediaType mediaType);
///
/// Breaks the existing pin connection and reconnects it to the same pin.
@@ -226,8 +228,9 @@ namespace VAR.Toolbox.Code.DirectShow
[PreserveSig]
int ReconnectEx(
[In] IPin pin,
- [In, MarshalAs(UnmanagedType.LPStruct)] AMMediaType mediaType
- );
+ [In, MarshalAs(UnmanagedType.LPStruct)]
+ AMMediaType mediaType
+ );
///
/// Render an output pin, with an option to use existing renderers only.
@@ -244,7 +247,6 @@ namespace VAR.Toolbox.Code.DirectShow
[In] IPin outputPin,
[In] int flags,
[In] IntPtr context
- );
-
+ );
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Code/DirectShow/IGraphBuilder.cs b/VAR.Toolbox/Code/DirectShow/IGraphBuilder.cs
index b2a6c8d..6384c1f 100644
--- a/VAR.Toolbox/Code/DirectShow/IGraphBuilder.cs
+++ b/VAR.Toolbox/Code/DirectShow/IGraphBuilder.cs
@@ -8,8 +8,8 @@ namespace VAR.Toolbox.Code.DirectShow
///
///
[ComImport,
- Guid("56A868A9-0AD4-11CE-B03A-0020AF0BA770"),
- InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
+ Guid("56A868A9-0AD4-11CE-B03A-0020AF0BA770"),
+ InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
internal interface IGraphBuilder
{
// --- IFilterGraph Methods
@@ -71,7 +71,9 @@ namespace VAR.Toolbox.Code.DirectShow
/// Return's HRESULT error code.
///
[PreserveSig]
- int ConnectDirect([In] IPin pinOut, [In] IPin pinIn, [In, MarshalAs(UnmanagedType.LPStruct)] AMMediaType mediaType);
+ int ConnectDirect([In] IPin pinOut, [In] IPin pinIn,
+ [In, MarshalAs(UnmanagedType.LPStruct)]
+ AMMediaType mediaType);
///
/// Breaks the existing pin connection and reconnects it to the same pin.
@@ -188,4 +190,4 @@ namespace VAR.Toolbox.Code.DirectShow
[PreserveSig]
int ShouldOperationContinue();
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Code/DirectShow/IMediaControl.cs b/VAR.Toolbox/Code/DirectShow/IMediaControl.cs
index d28385a..c09143b 100644
--- a/VAR.Toolbox/Code/DirectShow/IMediaControl.cs
+++ b/VAR.Toolbox/Code/DirectShow/IMediaControl.cs
@@ -1,6 +1,5 @@
#pragma warning disable IDE1006
-using System;
using System.Runtime.InteropServices;
namespace VAR.Toolbox.Code.DirectShow
@@ -11,8 +10,8 @@ namespace VAR.Toolbox.Code.DirectShow
///
///
[ComImport,
- Guid("56A868B1-0AD4-11CE-B03A-0020AF0BA770"),
- InterfaceType(ComInterfaceType.InterfaceIsDual)]
+ Guid("56A868B1-0AD4-11CE-B03A-0020AF0BA770"),
+ InterfaceType(ComInterfaceType.InterfaceIsDual)]
internal interface IMediaControl
{
///
@@ -47,7 +46,7 @@ namespace VAR.Toolbox.Code.DirectShow
///
///
/// Duration of the time-out, in milliseconds, or INFINITE to specify an infinite time-out.
- /// Ìariable that receives a member of the FILTER_STATE enumeration.
+ /// Variable that receives a member of the FILTER_STATE enumeration.
///
/// Return's HRESULT error code.
///
@@ -87,7 +86,8 @@ namespace VAR.Toolbox.Code.DirectShow
///
[PreserveSig]
int get_FilterCollection(
- [Out, MarshalAs(UnmanagedType.IDispatch)] out object collection);
+ [Out, MarshalAs(UnmanagedType.IDispatch)]
+ out object collection);
///
/// Retrieves a collection of all the filters listed in the registry.
@@ -99,7 +99,8 @@ namespace VAR.Toolbox.Code.DirectShow
///
[PreserveSig]
int get_RegFilterCollection(
- [Out, MarshalAs(UnmanagedType.IDispatch)] out object collection);
+ [Out, MarshalAs(UnmanagedType.IDispatch)]
+ out object collection);
///
/// Pauses the filter graph, allowing filters to queue data, and then stops the filter graph.
@@ -110,4 +111,4 @@ namespace VAR.Toolbox.Code.DirectShow
[PreserveSig]
int StopWhenReady();
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Code/DirectShow/IMediaEventEx.cs b/VAR.Toolbox/Code/DirectShow/IMediaEventEx.cs
index d9cd1a9..ba9d2c6 100644
--- a/VAR.Toolbox/Code/DirectShow/IMediaEventEx.cs
+++ b/VAR.Toolbox/Code/DirectShow/IMediaEventEx.cs
@@ -8,8 +8,8 @@
/// filter graph's default handling of events.
///
[ComVisible(true), ComImport,
- Guid("56a868c0-0ad4-11ce-b03a-0020af0ba770"),
- InterfaceType(ComInterfaceType.InterfaceIsDual)]
+ Guid("56a868c0-0ad4-11ce-b03a-0020af0ba770"),
+ InterfaceType(ComInterfaceType.InterfaceIsDual)]
internal interface IMediaEventEx
{
///
@@ -34,7 +34,8 @@
/// Return's HRESULT error code.
///
[PreserveSig]
- int GetEvent([Out, MarshalAs(UnmanagedType.I4)] out DsEvCode lEventCode, [Out] out IntPtr lParam1, [Out] out IntPtr lParam2, int msTimeout);
+ int GetEvent([Out, MarshalAs(UnmanagedType.I4)] out DsEvCode lEventCode, [Out] out IntPtr lParam1,
+ [Out] out IntPtr lParam2, int msTimeout);
///
/// Waits for the filter graph to render all available data.
@@ -85,14 +86,14 @@
/// Registers a window to process event notifications.
///
///
- /// Handle to the window, or to stop receiving event messages.
+ /// Handle to the window, or to stop receiving event messages.
/// Window message to be passed as the notification.
/// Value to be passed as the lParam parameter for the lMsg message.
///
/// Return's HRESULT error code.
///
[PreserveSig]
- int SetNotifyWindow(IntPtr hwnd, int lMsg, IntPtr lInstanceData);
+ int SetNotifyWindow(IntPtr hWnd, int lMsg, IntPtr lInstanceData);
///
/// Enables or disables event notifications.
@@ -116,4 +117,4 @@
[PreserveSig]
int GetNotifyFlags(out int lplNoNotifyFlags);
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Code/DirectShow/IMediaFilter.cs b/VAR.Toolbox/Code/DirectShow/IMediaFilter.cs
index 7df8231..262d6ca 100644
--- a/VAR.Toolbox/Code/DirectShow/IMediaFilter.cs
+++ b/VAR.Toolbox/Code/DirectShow/IMediaFilter.cs
@@ -1,3 +1,5 @@
+// ReSharper disable IdentifierTypo
+
namespace VAR.Toolbox.Code.DirectShow
{
using System;
@@ -9,8 +11,8 @@ namespace VAR.Toolbox.Code.DirectShow
///
///
[ComImport, System.Security.SuppressUnmanagedCodeSecurity,
- Guid("56a86899-0ad4-11ce-b03a-0020af0ba770"),
- InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
+ Guid("56a86899-0ad4-11ce-b03a-0020af0ba770"),
+ InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
internal interface IMediaFilter : IPersist
{
#region IPersist Methods
@@ -87,5 +89,4 @@ namespace VAR.Toolbox.Code.DirectShow
[PreserveSig]
int GetSyncSource([Out] out IReferenceClock pClock);
}
-}
-
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Code/DirectShow/IPersist.cs b/VAR.Toolbox/Code/DirectShow/IPersist.cs
index c42bdbc..e54c0b6 100644
--- a/VAR.Toolbox/Code/DirectShow/IPersist.cs
+++ b/VAR.Toolbox/Code/DirectShow/IPersist.cs
@@ -8,8 +8,8 @@ namespace VAR.Toolbox.Code.DirectShow
/// handler to use in the client process, as it is used in the default implementation of marshaling.
///
[ComImport,
- Guid("0000010c-0000-0000-C000-000000000046"),
- InterfaceType(ComInterfaceType.InterfaceIsDual)]
+ Guid("0000010c-0000-0000-C000-000000000046"),
+ InterfaceType(ComInterfaceType.InterfaceIsDual)]
internal interface IPersist
{
///
@@ -20,4 +20,4 @@ namespace VAR.Toolbox.Code.DirectShow
[PreserveSig]
int GetClassID([Out] out Guid pClassID);
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Code/DirectShow/IPin.cs b/VAR.Toolbox/Code/DirectShow/IPin.cs
index 9353888..1dd954f 100644
--- a/VAR.Toolbox/Code/DirectShow/IPin.cs
+++ b/VAR.Toolbox/Code/DirectShow/IPin.cs
@@ -8,8 +8,8 @@ namespace VAR.Toolbox.Code.DirectShow
///
///
[ComImport,
- Guid("56A86891-0AD4-11CE-B03A-0020AF0BA770"),
- InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
+ Guid("56A86891-0AD4-11CE-B03A-0020AF0BA770"),
+ InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
internal interface IPin
{
///
@@ -181,4 +181,4 @@ namespace VAR.Toolbox.Code.DirectShow
long stop,
double rate);
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Code/DirectShow/IPropertyBag.cs b/VAR.Toolbox/Code/DirectShow/IPropertyBag.cs
index 668e4c9..d5cacf8 100644
--- a/VAR.Toolbox/Code/DirectShow/IPropertyBag.cs
+++ b/VAR.Toolbox/Code/DirectShow/IPropertyBag.cs
@@ -9,8 +9,8 @@ namespace VAR.Toolbox.Code.DirectShow
///
///
[ComImport,
- Guid("55272A00-42CB-11CE-8135-00AA004BB851"),
- InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
+ Guid("55272A00-42CB-11CE-8135-00AA004BB851"),
+ InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
internal interface IPropertyBag
{
///
@@ -26,7 +26,8 @@ namespace VAR.Toolbox.Code.DirectShow
[PreserveSig]
int Read(
[In, MarshalAs(UnmanagedType.LPWStr)] string propertyName,
- [In, Out, MarshalAs(UnmanagedType.Struct)] ref object pVar,
+ [In, Out, MarshalAs(UnmanagedType.Struct)]
+ ref object pVar,
[In] IntPtr pErrorLog);
///
@@ -43,4 +44,4 @@ namespace VAR.Toolbox.Code.DirectShow
[In, MarshalAs(UnmanagedType.LPWStr)] string propertyName,
[In, MarshalAs(UnmanagedType.Struct)] ref object pVar);
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Code/DirectShow/IReferenceClock.cs b/VAR.Toolbox/Code/DirectShow/IReferenceClock.cs
index 805e1e2..16d2fda 100644
--- a/VAR.Toolbox/Code/DirectShow/IReferenceClock.cs
+++ b/VAR.Toolbox/Code/DirectShow/IReferenceClock.cs
@@ -1,3 +1,6 @@
+// ReSharper disable CommentTypo
+// ReSharper disable IdentifierTypo
+
namespace VAR.Toolbox.Code.DirectShow
{
using System;
@@ -11,8 +14,8 @@ namespace VAR.Toolbox.Code.DirectShow
/// retrieve the current reference time, or to request notification of an elapsed time.
///
[ComImport, System.Security.SuppressUnmanagedCodeSecurity,
- Guid("56a86897-0ad4-11ce-b03a-0020af0ba770"),
- InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
+ Guid("56a86897-0ad4-11ce-b03a-0020af0ba770"),
+ InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
internal interface IReferenceClock
{
///
@@ -73,4 +76,4 @@ namespace VAR.Toolbox.Code.DirectShow
[PreserveSig]
int Unadvise([In] int dwAdviseCookie);
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Code/DirectShow/ISampleGrabber.cs b/VAR.Toolbox/Code/DirectShow/ISampleGrabber.cs
index 2069d68..1f39087 100644
--- a/VAR.Toolbox/Code/DirectShow/ISampleGrabber.cs
+++ b/VAR.Toolbox/Code/DirectShow/ISampleGrabber.cs
@@ -9,8 +9,8 @@ namespace VAR.Toolbox.Code.DirectShow
///
///
[ComImport,
- Guid("6B652FFF-11FE-4FCE-92AD-0266B5D7C78F"),
- InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
+ Guid("6B652FFF-11FE-4FCE-92AD-0266B5D7C78F"),
+ InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
internal interface ISampleGrabber
{
///
@@ -93,4 +93,4 @@ namespace VAR.Toolbox.Code.DirectShow
[PreserveSig]
int SetCallback(ISampleGrabberCB callback, int whichMethodToCallback);
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Code/DirectShow/ISampleGrabberCB.cs b/VAR.Toolbox/Code/DirectShow/ISampleGrabberCB.cs
index 536faab..1cd5930 100644
--- a/VAR.Toolbox/Code/DirectShow/ISampleGrabberCB.cs
+++ b/VAR.Toolbox/Code/DirectShow/ISampleGrabberCB.cs
@@ -8,8 +8,8 @@ namespace VAR.Toolbox.Code.DirectShow
///
///
[ComImport,
- Guid("0579154A-2B53-4994-B0D0-E773148EFF85"),
- InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
+ Guid("0579154A-2B53-4994-B0D0-E773148EFF85"),
+ InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
internal interface ISampleGrabberCB
{
///
@@ -25,7 +25,7 @@ namespace VAR.Toolbox.Code.DirectShow
int SampleCB(double sampleTime, IntPtr sample);
///
- /// Callback method that receives a pointer to the sample bufferþ
+ /// Callback method that receives a pointer to the sample buffer
///
///
/// Starting time of the sample, in seconds.
@@ -37,4 +37,4 @@ namespace VAR.Toolbox.Code.DirectShow
[PreserveSig]
int BufferCB(double sampleTime, IntPtr buffer, int bufferLen);
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Code/DirectShow/ISpecifyPropertyPages.cs b/VAR.Toolbox/Code/DirectShow/ISpecifyPropertyPages.cs
index b77a721..2416cc9 100644
--- a/VAR.Toolbox/Code/DirectShow/ISpecifyPropertyPages.cs
+++ b/VAR.Toolbox/Code/DirectShow/ISpecifyPropertyPages.cs
@@ -1,6 +1,7 @@
+// ReSharper disable CommentTypo
+
namespace VAR.Toolbox.Code.DirectShow
{
- using System;
using System.Runtime.InteropServices;
///
@@ -8,8 +9,8 @@ namespace VAR.Toolbox.Code.DirectShow
///
///
[ComImport,
- Guid("B196B28B-BAB4-101A-B69C-00AA00341D07"),
- InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
+ Guid("B196B28B-BAB4-101A-B69C-00AA00341D07"),
+ InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
internal interface ISpecifyPropertyPages
{
///
@@ -26,4 +27,4 @@ namespace VAR.Toolbox.Code.DirectShow
[PreserveSig]
int GetPages(out CAUUID pPages);
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Code/DirectShow/IVideoWindow.cs b/VAR.Toolbox/Code/DirectShow/IVideoWindow.cs
index a28a530..cc62277 100644
--- a/VAR.Toolbox/Code/DirectShow/IVideoWindow.cs
+++ b/VAR.Toolbox/Code/DirectShow/IVideoWindow.cs
@@ -10,8 +10,8 @@ namespace VAR.Toolbox.Code.DirectShow
///
///
[ComImport,
- Guid("56A868B4-0AD4-11CE-B03A-0020AF0BA770"),
- InterfaceType(ComInterfaceType.InterfaceIsDual)]
+ Guid("56A868B4-0AD4-11CE-B03A-0020AF0BA770"),
+ InterfaceType(ComInterfaceType.InterfaceIsDual)]
internal interface IVideoWindow
{
///
@@ -95,7 +95,7 @@ namespace VAR.Toolbox.Code.DirectShow
/// Queries whether the video renderer automatically shows the video window when it receives video data.
///
///
- /// REceives window auto show flag.
+ /// Receives window auto show flag.
///
/// Return's HRESULT error code.
///
@@ -257,7 +257,7 @@ namespace VAR.Toolbox.Code.DirectShow
int get_Height(out int height);
///
- /// Specifies a parent window for the video windowþ
+ /// Specifies a parent window for the video window
///
///
/// Specifies a handle to the parent window.
@@ -268,7 +268,7 @@ namespace VAR.Toolbox.Code.DirectShow
int put_Owner(IntPtr owner);
///
- /// Retrieves the video window's parent window, if anyþ
+ /// Retrieves the video window's parent window, if any
///
///
/// Parent window's handle.
@@ -360,7 +360,7 @@ namespace VAR.Toolbox.Code.DirectShow
/// Forwards a message to the video window.
///
///
- /// Handle to the window.
+ /// Handle to the window.
/// Specifies the message.
/// Message parameter.
/// Message parameter.
@@ -368,10 +368,10 @@ namespace VAR.Toolbox.Code.DirectShow
/// Return's HRESULT error code.
///
[PreserveSig]
- int NotifyOwnerMessage(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam);
+ int NotifyOwnerMessage(IntPtr hWnd, int msg, IntPtr wParam, IntPtr lParam);
///
- /// Sets the position of the video windowþ
+ /// Sets the position of the video window
///
///
/// Specifies the x-coordinate, in pixels.
@@ -458,4 +458,4 @@ namespace VAR.Toolbox.Code.DirectShow
[PreserveSig]
int IsCursorHidden([Out, MarshalAs(UnmanagedType.Bool)] out bool hideCursor);
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Code/DirectShow/PhysicalConnectorType.cs b/VAR.Toolbox/Code/DirectShow/PhysicalConnectorType.cs
index f4fc0d3..0ab4acb 100644
--- a/VAR.Toolbox/Code/DirectShow/PhysicalConnectorType.cs
+++ b/VAR.Toolbox/Code/DirectShow/PhysicalConnectorType.cs
@@ -1,4 +1,6 @@
-namespace VAR.Toolbox.Code.DirectShow
+// ReSharper disable CommentTypo
+
+namespace VAR.Toolbox.Code.DirectShow
{
///
/// Specifies the physical type of pin (audio or video).
@@ -10,62 +12,77 @@
/// connection type should not be changed (input) or was not determined (output).
///
Default = 0,
+
///
/// Specifies a tuner pin for video.
///
VideoTuner = 1,
+
///
/// Specifies a composite pin for video.
///
VideoComposite,
+
///
/// Specifies an S-Video (Y/C video) pin.
///
VideoSVideo,
+
///
/// Specifies an RGB pin for video.
///
VideoRGB,
+
///
/// Specifies a YRYBY (Y, R–Y, B–Y) pin for video.
///
VideoYRYBY,
+
///
/// Specifies a serial digital pin for video.
///
VideoSerialDigital,
+
///
/// Specifies a parallel digital pin for video.
///
VideoParallelDigital,
+
///
/// Specifies a SCSI (Small Computer System Interface) pin for video.
///
VideoSCSI,
+
///
/// Specifies an AUX (auxiliary) pin for video.
///
VideoAUX,
+
///
/// Specifies an IEEE 1394 pin for video.
///
Video1394,
+
///
/// Specifies a USB (Universal Serial Bus) pin for video.
///
VideoUSB,
+
///
/// Specifies a video decoder pin.
///
VideoDecoder,
+
///
/// Specifies a video encoder pin.
///
VideoEncoder,
+
///
/// Specifies a SCART (Peritel) pin for video.
///
VideoSCART,
+
///
/// Not used.
///
@@ -75,41 +92,50 @@
/// Specifies a tuner pin for audio.
///
AudioTuner = 4096,
+
///
/// Specifies a line pin for audio.
///
AudioLine,
+
///
/// Specifies a microphone pin.
///
AudioMic,
+
///
/// Specifies an AES/EBU (Audio Engineering Society/European Broadcast Union) digital pin for audio.
///
AudioAESDigital,
+
///
/// Specifies an S/PDIF (Sony/Philips Digital Interface Format) digital pin for audio.
///
AudioSPDIFDigital,
+
///
/// Specifies a SCSI pin for audio.
///
AudioSCSI,
+
///
/// Specifies an AUX pin for audio.
///
AudioAUX,
+
///
/// Specifies an IEEE 1394 pin for audio.
///
Audio1394,
+
///
/// Specifies a USB pin for audio.
///
AudioUSB,
+
///
/// Specifies an audio decoder pin.
///
AudioDecoder
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Code/DirectShow/Structures.cs b/VAR.Toolbox/Code/DirectShow/Structures.cs
index 1e7cc6b..0cfd452 100644
--- a/VAR.Toolbox/Code/DirectShow/Structures.cs
+++ b/VAR.Toolbox/Code/DirectShow/Structures.cs
@@ -1,3 +1,7 @@
+// ReSharper disable IdentifierTypo
+// ReSharper disable CommentTypo
+// ReSharper disable InconsistentNaming
+
namespace VAR.Toolbox.Code.DirectShow
{
using System;
@@ -31,7 +35,7 @@ namespace VAR.Toolbox.Code.DirectShow
///
///
[ComVisible(false),
- StructLayout(LayoutKind.Sequential)]
+ StructLayout(LayoutKind.Sequential)]
internal class AMMediaType : IDisposable
{
///
@@ -47,14 +51,12 @@ namespace VAR.Toolbox.Code.DirectShow
///
/// If true, samples are of a fixed size.
///
- [MarshalAs(UnmanagedType.Bool)]
- public bool FixedSizeSamples = true;
+ [MarshalAs(UnmanagedType.Bool)] public bool FixedSizeSamples = true;
///
/// If true, samples are compressed using temporal (interframe) compression.
///
- [MarshalAs(UnmanagedType.Bool)]
- public bool TemporalCompression;
+ [MarshalAs(UnmanagedType.Bool)] public bool TemporalCompression;
///
/// Size of the sample in bytes. For compressed data, the value can be zero.
@@ -131,7 +133,7 @@ namespace VAR.Toolbox.Code.DirectShow
///
///
[ComVisible(false),
- StructLayout(LayoutKind.Sequential, Pack = 1, CharSet = CharSet.Unicode)]
+ StructLayout(LayoutKind.Sequential, Pack = 1, CharSet = CharSet.Unicode)]
internal struct PinInfo
{
///
@@ -153,7 +155,7 @@ namespace VAR.Toolbox.Code.DirectShow
// FILTER_INFO
[ComVisible(false),
- StructLayout(LayoutKind.Sequential, Pack = 1, CharSet = CharSet.Unicode)]
+ StructLayout(LayoutKind.Sequential, Pack = 1, CharSet = CharSet.Unicode)]
internal struct FilterInfo
{
///
@@ -175,7 +177,7 @@ namespace VAR.Toolbox.Code.DirectShow
///
///
[ComVisible(false),
- StructLayout(LayoutKind.Sequential)]
+ StructLayout(LayoutKind.Sequential)]
internal struct VideoInfoHeader
{
///
@@ -216,7 +218,7 @@ namespace VAR.Toolbox.Code.DirectShow
///
///
[ComVisible(false),
- StructLayout(LayoutKind.Sequential)]
+ StructLayout(LayoutKind.Sequential)]
internal struct VideoInfoHeader2
{
///
@@ -285,7 +287,7 @@ namespace VAR.Toolbox.Code.DirectShow
///
///
[ComVisible(false),
- StructLayout(LayoutKind.Sequential, Pack = 2)]
+ StructLayout(LayoutKind.Sequential, Pack = 2)]
internal struct BitmapInfoHeader
{
///
@@ -351,7 +353,7 @@ namespace VAR.Toolbox.Code.DirectShow
///
///
[ComVisible(false),
- StructLayout(LayoutKind.Sequential)]
+ StructLayout(LayoutKind.Sequential)]
internal struct RECT
{
///
@@ -382,7 +384,7 @@ namespace VAR.Toolbox.Code.DirectShow
///
///
[ComVisible(false),
- StructLayout(LayoutKind.Sequential)]
+ StructLayout(LayoutKind.Sequential)]
internal struct CAUUID
{
///
@@ -421,17 +423,18 @@ namespace VAR.Toolbox.Code.DirectShow
internal enum DsEvCode
{
None,
- Complete = 0x01, // EC_COMPLETE
- DeviceLost = 0x1F, // EC_DEVICE_LOST
+ Complete = 0x01, // EC_COMPLETE
+ DeviceLost = 0x1F, // EC_DEVICE_LOST
//(...) not yet interested in other events
}
[Flags, ComVisible(false)]
internal enum AnalogVideoStandard
{
- None = 0x00000000, // This is a digital sensor
- NTSC_M = 0x00000001, // 75 IRE Setup
- NTSC_M_J = 0x00000002, // Japan, 0 IRE Setup
+ // ReSharper disable InconsistentNaming
+ None = 0x00000000, // This is a digital sensor
+ NTSC_M = 0x00000001, // 75 IRE Setup
+ NTSC_M_J = 0x00000002, // Japan, 0 IRE Setup
NTSC_433 = 0x00000004,
PAL_B = 0x00000010,
PAL_D = 0x00000020,
@@ -449,7 +452,9 @@ namespace VAR.Toolbox.Code.DirectShow
SECAM_K1 = 0x00020000,
SECAM_L = 0x00040000,
SECAM_L1 = 0x00080000,
- PAL_N_COMBO = 0x00100000 // Argentina
+
+ PAL_N_COMBO = 0x00100000 // Argentina
+ // ReSharper restore InconsistentNaming
}
[Flags, ComVisible(false)]
@@ -462,7 +467,7 @@ namespace VAR.Toolbox.Code.DirectShow
}
[StructLayout(LayoutKind.Sequential), ComVisible(false)]
- internal class VideoStreamConfigCaps // VIDEO_STREAM_CONFIG_CAPS
+ internal class VideoStreamConfigCaps // VIDEO_STREAM_CONFIG_CAPS
{
public Guid Guid;
public AnalogVideoStandard VideoStandard;
@@ -507,4 +512,4 @@ namespace VAR.Toolbox.Code.DirectShow
///
State_Running
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Code/DirectShow/Tools.cs b/VAR.Toolbox/Code/DirectShow/Tools.cs
index 3fbec75..1a0c22c 100644
--- a/VAR.Toolbox/Code/DirectShow/Tools.cs
+++ b/VAR.Toolbox/Code/DirectShow/Tools.cs
@@ -20,24 +20,20 @@ namespace VAR.Toolbox.Code.DirectShow
///
/// Returns filter's pin.
///
- public static IPin GetPin(IBaseFilter filter, PinDirection dir, int num)
+ private static IPin GetPin(IBaseFilter filter, PinDirection dir, int num)
{
IPin[] pin = new IPin[1];
- IEnumPins pinsEnum = null;
// enum filter pins
- if (filter.EnumPins(out pinsEnum) == 0)
+ if (filter.EnumPins(out IEnumPins pinsEnum) == 0)
{
- PinDirection pinDir;
- int n;
-
try
{
// get next pin
- while (pinsEnum.Next(1, pin, out n) == 0)
+ while (pinsEnum.Next(1, pin, out int _) == 0)
{
// query pin`s direction
- pin[0].QueryDirection(out pinDir);
+ pin[0].QueryDirection(out PinDirection pinDir);
if (pinDir == dir)
{
@@ -55,6 +51,7 @@ namespace VAR.Toolbox.Code.DirectShow
Marshal.ReleaseComObject(pinsEnum);
}
}
+
return null;
}
@@ -86,4 +83,4 @@ namespace VAR.Toolbox.Code.DirectShow
return GetPin(filter, PinDirection.Output, num);
}
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Code/DirectShow/Uuids.cs b/VAR.Toolbox/Code/DirectShow/Uuids.cs
index 87ae20f..ede9f07 100644
--- a/VAR.Toolbox/Code/DirectShow/Uuids.cs
+++ b/VAR.Toolbox/Code/DirectShow/Uuids.cs
@@ -1,3 +1,8 @@
+// ReSharper disable CommentTypo
+
+// ReSharper disable IdentifierTypo
+// ReSharper disable InconsistentNaming
+
namespace VAR.Toolbox.Code.DirectShow
{
using System;
@@ -7,7 +12,7 @@ namespace VAR.Toolbox.Code.DirectShow
/// DirectShow class IDs.
///
[ComVisible(false)]
- static internal class Clsid
+ internal static class Clsid
{
///
/// System device enumerator.
@@ -57,7 +62,6 @@ namespace VAR.Toolbox.Code.DirectShow
public static readonly Guid NullRenderer =
new Guid(0xC1F400A4, 0x3F08, 0x11d3, 0x9F, 0x0B, 0x00, 0x60, 0x08, 0x03, 0x9E, 0x37);
-
}
///
@@ -65,7 +69,7 @@ namespace VAR.Toolbox.Code.DirectShow
///
///
[ComVisible(false)]
- static internal class FormatType
+ internal static class FormatType
{
///
/// VideoInfo.
@@ -91,7 +95,7 @@ namespace VAR.Toolbox.Code.DirectShow
///
///
[ComVisible(false)]
- static internal class MediaType
+ internal static class MediaType
{
///
/// Video.
@@ -144,7 +148,7 @@ namespace VAR.Toolbox.Code.DirectShow
///
///
[ComVisible(false)]
- static internal class MediaSubType
+ internal static class MediaSubType
{
///
/// YUY2 (packed 4:2:2).
@@ -260,7 +264,7 @@ namespace VAR.Toolbox.Code.DirectShow
///
///
[ComVisible(false)]
- static internal class PinCategory
+ internal static class PinCategory
{
///
/// Capture pin.
@@ -279,7 +283,6 @@ namespace VAR.Toolbox.Code.DirectShow
///
public static readonly Guid Preview =
new Guid(0xfb6c4282, 0x0353, 0x11d1, 0x90, 0x5f, 0x00, 0x00, 0xc0, 0xcc, 0x16, 0xba);
-
}
///
@@ -324,4 +327,4 @@ namespace VAR.Toolbox.Code.DirectShow
public static readonly Guid AudioCompressorCategory =
new Guid(0x33D9A761, 0x90C8, 0x11D0, 0xBD, 0x43, 0x00, 0xA0, 0xC9, 0x11, 0xCE, 0x86);
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Code/EventDispatcher.cs b/VAR.Toolbox/Code/EventDispatcher.cs
index b3b0c31..8163065 100644
--- a/VAR.Toolbox/Code/EventDispatcher.cs
+++ b/VAR.Toolbox/Code/EventDispatcher.cs
@@ -5,7 +5,7 @@ namespace VAR.Toolbox.Code
{
public static class EventDispatcher
{
- private static List _eventListeners = null;
+ private static List _eventListeners;
private static IEnumerable GetEventListeners()
{
@@ -19,8 +19,7 @@ namespace VAR.Toolbox.Code
_eventListeners = new List();
foreach (Type eventListener in eventListeners)
{
- IEventListener eventListenerInstance = Activator.CreateInstance(eventListener) as IEventListener;
- if (eventListenerInstance != null)
+ if (Activator.CreateInstance(eventListener) is IEventListener eventListenerInstance)
{
_eventListeners.Add(eventListenerInstance);
}
@@ -37,6 +36,5 @@ namespace VAR.Toolbox.Code
eventListener.ProcessEvent(eventName, eventData);
}
}
-
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Code/HexUtils.cs b/VAR.Toolbox/Code/HexUtils.cs
index 9937ec1..4facf01 100644
--- a/VAR.Toolbox/Code/HexUtils.cs
+++ b/VAR.Toolbox/Code/HexUtils.cs
@@ -7,13 +7,16 @@ namespace VAR.Toolbox.Code
{
public static byte[] HexStringToBytes(string input)
{
- int[] hexValues = new int[] {
+ int[] hexValues = new int[]
+ {
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F };
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
+ };
if (input.Length % 2 == 1)
{
- throw new Exception("Unenven number of hex digits");
+ throw new Exception("Uneven number of hex digits");
}
+
byte[] bytes = new byte[input.Length / 2];
int count = input.Length;
for (int x = 0, i = 0; i < count; i += 2, x += 1)
@@ -21,7 +24,7 @@ namespace VAR.Toolbox.Code
bytes[x] = (byte)(
hexValues[Char.ToUpper(input[i + 0]) - '0'] << 4 |
hexValues[Char.ToUpper(input[i + 1]) - '0']
- );
+ );
}
return bytes;
@@ -38,7 +41,8 @@ namespace VAR.Toolbox.Code
sbOutput.Append(HexAlphabet[(b >> 4)]);
sbOutput.Append(HexAlphabet[(b & 0xF)]);
}
+
return sbOutput.ToString();
}
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Code/IEventListener.cs b/VAR.Toolbox/Code/IEventListener.cs
index f8452b1..dc1ee2d 100644
--- a/VAR.Toolbox/Code/IEventListener.cs
+++ b/VAR.Toolbox/Code/IEventListener.cs
@@ -1,13 +1,7 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace VAR.Toolbox.Code
+namespace VAR.Toolbox.Code
{
public interface IEventListener
{
void ProcessEvent(string eventName, object eventData);
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Code/IOutputHandler.cs b/VAR.Toolbox/Code/IOutputHandler.cs
index efa2702..7bc5e21 100644
--- a/VAR.Toolbox/Code/IOutputHandler.cs
+++ b/VAR.Toolbox/Code/IOutputHandler.cs
@@ -4,4 +4,4 @@
{
void OutputLine(string line);
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Code/Logger.cs b/VAR.Toolbox/Code/Logger.cs
index 71822ba..b84cd18 100644
--- a/VAR.Toolbox/Code/Logger.cs
+++ b/VAR.Toolbox/Code/Logger.cs
@@ -6,19 +6,18 @@ namespace VAR.Toolbox.Code
public class Logger
{
///
- /// Obtiene el StreamWritter de salida
+ /// Obtiene el StreamWriter de salida
///
///
- private static StreamWriter GetOutputStreamWritter()
+ private static StreamWriter GetOutputStreamWriter()
{
try
{
- string location = System.Reflection.Assembly.GetEntryAssembly().Location;
+ string location = System.Reflection.Assembly.GetEntryAssembly()?.Location;
string path = Path.GetDirectoryName(location);
string filenameWithoutExtension = Path.GetFileNameWithoutExtension(location);
- string fileOut = string.Format("{0}/{1}.{2}.txt", path, filenameWithoutExtension,
- DateTime.UtcNow.ToString("yyyy-MM"));
+ string fileOut = $"{path}/{filenameWithoutExtension}.{DateTime.UtcNow:yyyy-MM}.txt";
return File.AppendText(fileOut);
}
catch (Exception)
@@ -28,10 +27,10 @@ namespace VAR.Toolbox.Code
}
///
- /// Cierra el StreamWritter de salida
+ /// Cierra el StreamWriter de salida
///
/// The stream.
- private static void CloseOutputStreamWritter(StreamWriter stream)
+ private static void CloseOutputStreamWriter(StreamWriter stream)
{
if (stream != null)
{
@@ -50,6 +49,7 @@ namespace VAR.Toolbox.Code
{
stream.WriteLine(line);
}
+
Console.Out.WriteLine(line);
}
@@ -61,14 +61,17 @@ namespace VAR.Toolbox.Code
{
try
{
- StreamWriter outStream = GetOutputStreamWritter();
+ StreamWriter outStream = GetOutputStreamWriter();
WriteLine(outStream, string.Empty);
- WriteLine(outStream, string.Format("---------------------------- {0} -----------------------", text));
- WriteLine(outStream, string.Format("\\- Date: {0}", DateTime.UtcNow.ToString("s")));
+ WriteLine(outStream, $"---------------------------- {text} -----------------------");
+ WriteLine(outStream, $"\\- Date: {DateTime.UtcNow:s}");
WriteLine(outStream, string.Empty);
- CloseOutputStreamWritter(outStream);
+ CloseOutputStreamWriter(outStream);
+ }
+ catch (Exception)
+ {
+ /* Nom Nom Nom */
}
- catch (Exception) { /* Nom Nom Nom */}
}
///
@@ -79,38 +82,45 @@ namespace VAR.Toolbox.Code
{
try
{
- StreamWriter outStream = GetOutputStreamWritter();
- WriteLine(outStream, string.Format("{0} -- {1}", DateTime.UtcNow.ToString("s"), text));
- CloseOutputStreamWritter(outStream);
+ StreamWriter outStream = GetOutputStreamWriter();
+ WriteLine(outStream, $"{DateTime.UtcNow:s} -- {text}");
+ CloseOutputStreamWriter(outStream);
+ }
+ catch (Exception)
+ {
+ /* Nom Nom Nom */
}
- catch (Exception) { /* Nom Nom Nom */}
}
///
- /// Logea una excepcion
+ /// Logea una excepción
///
/// The Exception.
public static void Log(Exception ex)
{
try
{
- StreamWriter outStream = GetOutputStreamWritter();
+ StreamWriter outStream = GetOutputStreamWriter();
WriteLine(outStream, string.Empty);
- WriteLine(outStream, string.Format("!!!!!!!!!!!!!!!!!!!!!!!!!!!! {0} !!!!!!!!!!!!!!!!!!!!!!!", "Exception"));
- WriteLine(outStream, string.Format("\\- Date: {0}", DateTime.UtcNow.ToString("s")));
+ WriteLine(outStream,
+ "!!!!!!!!!!!!!!!!!!!!!!!!!!!! Exception !!!!!!!!!!!!!!!!!!!!!!!");
+ WriteLine(outStream, $"\\- Date: {DateTime.UtcNow:s}");
WriteLine(outStream, string.Empty);
Exception exAux = ex;
while (exAux != null)
{
- WriteLine(outStream, string.Format("Message: {0}", exAux.Message));
- WriteLine(outStream, string.Format("Stacktrace: {0}", exAux.StackTrace));
+ WriteLine(outStream, $"Message: {exAux.Message}");
+ WriteLine(outStream, $"Stacktrace: {exAux.StackTrace}");
exAux = exAux.InnerException;
}
- CloseOutputStreamWritter(outStream);
- }
- catch (Exception) { /* Nom Nom Nom */}
- }
+ CloseOutputStreamWriter(outStream);
+ }
+ catch (Exception)
+ {
+ /* Nom Nom Nom */
+ }
+ }
}
}
\ No newline at end of file
diff --git a/VAR.Toolbox/Code/Mouse.cs b/VAR.Toolbox/Code/Mouse.cs
index 8fd46c1..ce0fab0 100644
--- a/VAR.Toolbox/Code/Mouse.cs
+++ b/VAR.Toolbox/Code/Mouse.cs
@@ -39,14 +39,17 @@ namespace VAR.Toolbox.Code
{
input.Data.Mouse.Flags = down ? User32.MOUSEEVENTF_LEFTDOWN : User32.MOUSEEVENTF_LEFTUP;
}
+
if (button == MouseButtons.Middle)
{
input.Data.Mouse.Flags = down ? User32.MOUSEEVENTF_MIDDLEDOWN : User32.MOUSEEVENTF_MIDDLEUP;
}
+
if (button == MouseButtons.Right)
{
input.Data.Mouse.Flags = down ? User32.MOUSEEVENTF_RIGHTDOWN : User32.MOUSEEVENTF_RIGHTUP;
}
+
User32.INPUT[] inputs = new User32.INPUT[] { input };
if (User32.SendInput(1, inputs, Marshal.SizeOf(typeof(User32.INPUT))) == 0)
throw new Exception();
diff --git a/VAR.Toolbox/Code/ProxyCmdExecutors/IProxyCmdExecutor.cs b/VAR.Toolbox/Code/ProxyCmdExecutors/IProxyCmdExecutor.cs
index 86dc772..c21e0bf 100644
--- a/VAR.Toolbox/Code/ProxyCmdExecutors/IProxyCmdExecutor.cs
+++ b/VAR.Toolbox/Code/ProxyCmdExecutors/IProxyCmdExecutor.cs
@@ -4,4 +4,4 @@
{
bool ExecuteCmd(string cmd, IOutputHandler outputHandler);
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Code/ProxyCmdExecutors/ProxyCmdExecutorDummy.cs b/VAR.Toolbox/Code/ProxyCmdExecutors/ProxyCmdExecutorDummy.cs
index e21d3cc..f4c0b95 100644
--- a/VAR.Toolbox/Code/ProxyCmdExecutors/ProxyCmdExecutorDummy.cs
+++ b/VAR.Toolbox/Code/ProxyCmdExecutors/ProxyCmdExecutorDummy.cs
@@ -2,7 +2,8 @@
{
public class ProxyCmdExecutorDummy : IProxyCmdExecutor
{
- public string Name { get { return "Dummy"; } }
+ private readonly string _config;
+ public string Name => "Dummy";
public ProxyCmdExecutorDummy(string config)
{
@@ -10,12 +11,14 @@
{
throw new System.ArgumentNullException(nameof(config));
}
+
+ _config = config;
}
public bool ExecuteCmd(string cmdString, IOutputHandler outputHandler)
{
- outputHandler.OutputLine(string.Format("DummyExecution: {0}", cmdString));
+ outputHandler.OutputLine($"DummyExecution: {cmdString} | {_config}");
return true;
}
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Code/ProxyCmdExecutors/ProxyCmdExecutorFactory.cs b/VAR.Toolbox/Code/ProxyCmdExecutors/ProxyCmdExecutorFactory.cs
index 26637a1..3fcd970 100644
--- a/VAR.Toolbox/Code/ProxyCmdExecutors/ProxyCmdExecutorFactory.cs
+++ b/VAR.Toolbox/Code/ProxyCmdExecutors/ProxyCmdExecutorFactory.cs
@@ -1,6 +1,4 @@
namespace VAR.Toolbox.Code.ProxyCmdExecutors
{
- public class ProxyCmdExecutorFactory : BaseFactory
- {
- }
-}
+ public class ProxyCmdExecutorFactory : BaseFactory { }
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Code/ProxyCmdExecutors/ProxyCmdExecutorThroughSQLServer.cs b/VAR.Toolbox/Code/ProxyCmdExecutors/ProxyCmdExecutorThroughSQLServer.cs
index a9b5c35..66d9b6f 100644
--- a/VAR.Toolbox/Code/ProxyCmdExecutors/ProxyCmdExecutorThroughSQLServer.cs
+++ b/VAR.Toolbox/Code/ProxyCmdExecutors/ProxyCmdExecutorThroughSQLServer.cs
@@ -5,9 +5,9 @@ namespace VAR.Toolbox.Code.ProxyCmdExecutors
{
public class ProxyCmdExecutorThroughSQLServer : IProxyCmdExecutor
{
- public string Name { get { return "SqlServer"; } }
+ public string Name => "SqlServer";
- private readonly string _connectionString = null;
+ private readonly string _connectionString;
public ProxyCmdExecutorThroughSQLServer(string connectionString)
{
@@ -27,8 +27,9 @@ namespace VAR.Toolbox.Code.ProxyCmdExecutors
string output = Convert.ToString(reader[0]);
outputHandler.OutputLine(output);
}
+
cnx.Close();
return true;
}
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Code/ProxyCmdExecutors/ProxyCmdExecutorWMIC.cs b/VAR.Toolbox/Code/ProxyCmdExecutors/ProxyCmdExecutorWMIC.cs
index eb893c6..f109937 100644
--- a/VAR.Toolbox/Code/ProxyCmdExecutors/ProxyCmdExecutorWMIC.cs
+++ b/VAR.Toolbox/Code/ProxyCmdExecutors/ProxyCmdExecutorWMIC.cs
@@ -4,7 +4,7 @@ namespace VAR.Toolbox.Code.ProxyCmdExecutors
{
public class ProxyCmdExecutorWMIC : IProxyCmdExecutor
{
- public string Name { get { return "WMIC"; } }
+ public string Name => "WMIC";
private readonly string _configWMIC;
@@ -15,7 +15,8 @@ namespace VAR.Toolbox.Code.ProxyCmdExecutors
public bool ExecuteCmd(string cmd, IOutputHandler outputHandler)
{
- string parameters = string.Format(" /node:\"{0}\" process call create \"cmd.exe /c \\\"{1}\\\"\"", _configWMIC.Replace("\"", "\\\""), cmd.Replace("\"", "\\\""));
+ string parameters = string.Format(" /node:\"{0}\" process call create \"cmd.exe /c \\\"{1}\\\"\"",
+ _configWMIC.Replace("\"", "\\\""), cmd.Replace("\"", "\\\""));
Process process = new Process();
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
diff --git a/VAR.Toolbox/Code/ReflectionUtils.cs b/VAR.Toolbox/Code/ReflectionUtils.cs
index 711de6c..5ab041a 100644
--- a/VAR.Toolbox/Code/ReflectionUtils.cs
+++ b/VAR.Toolbox/Code/ReflectionUtils.cs
@@ -17,6 +17,5 @@ namespace VAR.Toolbox.Code
interfaceType.IsAssignableFrom(x) &&
true);
}
-
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Code/Screenshooter.cs b/VAR.Toolbox/Code/Screenshoter.cs
similarity index 95%
rename from VAR.Toolbox/Code/Screenshooter.cs
rename to VAR.Toolbox/Code/Screenshoter.cs
index 82a10c0..07b4468 100644
--- a/VAR.Toolbox/Code/Screenshooter.cs
+++ b/VAR.Toolbox/Code/Screenshoter.cs
@@ -6,7 +6,7 @@ using VAR.Toolbox.Code.Windows;
namespace VAR.Toolbox.Code
{
- public class Screenshooter
+ public static class Screenshoter
{
public static Bitmap CaptureScreen(Bitmap bmp = null)
{
@@ -17,7 +17,7 @@ namespace VAR.Toolbox.Code
int screenHeight = SystemInformation.VirtualScreen.Height;
// Create a bitmap of the appropriate size to receive the screenshot.
- if (bmp == null || bmp?.Width != screenWidth || bmp?.Height != screenHeight)
+ if (bmp == null || bmp.Width != screenWidth || bmp.Height != screenHeight)
{
bmp = new Bitmap(screenWidth, screenHeight);
}
@@ -27,6 +27,7 @@ namespace VAR.Toolbox.Code
{
g.CopyFromScreen(screenLeft, screenTop, 0, 0, bmp.Size);
}
+
return bmp;
}
@@ -76,8 +77,5 @@ namespace VAR.Toolbox.Code
return img;
}
-
-
-
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Code/TextCoders/ITextCoder.cs b/VAR.Toolbox/Code/TextCoders/ITextCoder.cs
index a316b86..cfaeb63 100644
--- a/VAR.Toolbox/Code/TextCoders/ITextCoder.cs
+++ b/VAR.Toolbox/Code/TextCoders/ITextCoder.cs
@@ -7,4 +7,4 @@
string Encode(string input, string key);
string Decode(string input, string key);
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Code/TextCoders/TextCoderBase64Ascii.cs b/VAR.Toolbox/Code/TextCoders/TextCoderBase64Ascii.cs
index 9479c85..3af03c6 100644
--- a/VAR.Toolbox/Code/TextCoders/TextCoderBase64Ascii.cs
+++ b/VAR.Toolbox/Code/TextCoders/TextCoderBase64Ascii.cs
@@ -5,9 +5,9 @@ namespace VAR.Toolbox.Code.TextCoders
{
public class TextCoderBase64ToAscii : ITextCoder
{
- public string Name { get { return "Base64ToAscii"; } }
+ public string Name => "Base64ToAscii";
- public bool NeedsKey { get { return false; } }
+ public bool NeedsKey => false;
public string Decode(string input, string key)
{
@@ -23,4 +23,4 @@ namespace VAR.Toolbox.Code.TextCoders
return returnValue;
}
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Code/TextCoders/TextCoderBase64Utf8.cs b/VAR.Toolbox/Code/TextCoders/TextCoderBase64Utf8.cs
index 761ba3f..6fbc42c 100644
--- a/VAR.Toolbox/Code/TextCoders/TextCoderBase64Utf8.cs
+++ b/VAR.Toolbox/Code/TextCoders/TextCoderBase64Utf8.cs
@@ -5,9 +5,9 @@ namespace VAR.Toolbox.Code.TextCoders
{
public class TextCoderBase64ToUtf8 : ITextCoder
{
- public string Name { get { return "Base64ToUtf8"; } }
+ public string Name => "Base64ToUtf8";
- public bool NeedsKey { get { return false; } }
+ public bool NeedsKey => false;
public string Decode(string input, string key)
{
@@ -23,4 +23,4 @@ namespace VAR.Toolbox.Code.TextCoders
return returnValue;
}
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Code/TextCoders/TextCoderFactory.cs b/VAR.Toolbox/Code/TextCoders/TextCoderFactory.cs
index 5404e7b..b1c6530 100644
--- a/VAR.Toolbox/Code/TextCoders/TextCoderFactory.cs
+++ b/VAR.Toolbox/Code/TextCoders/TextCoderFactory.cs
@@ -1,6 +1,4 @@
namespace VAR.Toolbox.Code.TextCoders
{
- public class TextCoderFactory : BaseFactory
- {
- }
-}
+ public class TextCoderFactory : BaseFactory { }
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Code/TextCoders/TextCoderHexToAscii.cs b/VAR.Toolbox/Code/TextCoders/TextCoderHexToAscii.cs
index c866e5c..a89e1db 100644
--- a/VAR.Toolbox/Code/TextCoders/TextCoderHexToAscii.cs
+++ b/VAR.Toolbox/Code/TextCoders/TextCoderHexToAscii.cs
@@ -4,9 +4,9 @@ namespace VAR.Toolbox.Code.TextCoders
{
public class TextCoderHexToAscii : ITextCoder
{
- public string Name { get { return "HexToAscii"; } }
+ public string Name => "HexToAscii";
- public bool NeedsKey { get { return false; } }
+ public bool NeedsKey => false;
public string Decode(string input, string key)
{
@@ -20,6 +20,5 @@ namespace VAR.Toolbox.Code.TextCoders
byte[] toEncodeAsBytes = Encoding.ASCII.GetBytes(input);
return HexUtils.BytesToHexString(toEncodeAsBytes);
}
-
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Code/TextCoders/TextCoderHexToUtf8.cs b/VAR.Toolbox/Code/TextCoders/TextCoderHexToUtf8.cs
index e71d999..ba14d81 100644
--- a/VAR.Toolbox/Code/TextCoders/TextCoderHexToUtf8.cs
+++ b/VAR.Toolbox/Code/TextCoders/TextCoderHexToUtf8.cs
@@ -4,9 +4,9 @@ namespace VAR.Toolbox.Code.TextCoders
{
public class TextCoderHexToUtf8 : ITextCoder
{
- public string Name { get { return "HexToUtf8"; } }
+ public string Name => "HexToUtf8";
- public bool NeedsKey { get { return false; } }
+ public bool NeedsKey => false;
public string Decode(string input, string key)
{
@@ -21,4 +21,4 @@ namespace VAR.Toolbox.Code.TextCoders
return HexUtils.BytesToHexString(toEncodeAsBytes);
}
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Code/WebServicesUtils.cs b/VAR.Toolbox/Code/WebServicesUtils.cs
index 830e203..8b95903 100644
--- a/VAR.Toolbox/Code/WebServicesUtils.cs
+++ b/VAR.Toolbox/Code/WebServicesUtils.cs
@@ -7,11 +7,14 @@ using System.Threading.Tasks;
namespace VAR.Toolbox.Code
{
- public class WebServicesUtils
+ public static class WebServicesUtils
{
private static readonly CookieContainer _cookieJar = new CookieContainer();
- public static string CallApi(string urlService, string urlApiMethod, Dictionary prms, object content, CookieContainer cookieJar = null, string stringContent = null, Dictionary customHeaders = null, string verb = "POST", bool disableCertificateValidation = false)
+ public static string CallApi(string urlService, string urlApiMethod, Dictionary parameters,
+ object content, CookieContainer cookieJar = null, string stringContent = null,
+ Dictionary customHeaders = null, string verb = "POST",
+ bool disableCertificateValidation = false)
{
if (urlService?.StartsWith("!") == true)
{
@@ -20,11 +23,12 @@ namespace VAR.Toolbox.Code
}
if (cookieJar == null) { cookieJar = _cookieJar; }
+
try
{
var sbRequestUrl = new StringBuilder();
sbRequestUrl.Append(urlService);
- if (urlService.EndsWith("/") && urlApiMethod.StartsWith("/"))
+ if (urlService != null && urlService.EndsWith("/") && urlApiMethod.StartsWith("/"))
{
sbRequestUrl.Append(urlApiMethod.Substring(1));
}
@@ -32,23 +36,19 @@ namespace VAR.Toolbox.Code
{
sbRequestUrl.Append(urlApiMethod);
}
- if (prms != null)
+
+ if (parameters != null)
{
- foreach (KeyValuePair pair in prms)
+ foreach (KeyValuePair pair in parameters)
{
- if (pair.Value == null)
- {
- sbRequestUrl.AppendFormat("&{0}={1}", pair.Key, string.Empty);
- }
- else
- {
- sbRequestUrl.AppendFormat("&{0}={1}", pair.Key, HttpServer.HttpUtility.UrlEncode(pair.Value));
- }
+ sbRequestUrl.AppendFormat("&{0}={1}", pair.Key,
+ pair.Value == null ? string.Empty : HttpServer.HttpUtility.UrlEncode(pair.Value));
}
}
+
if (sbRequestUrl.Length > 2048)
{
- throw new Exception(string.Format("CallApi: Request URL longer than 2048: url: \"{0}\"", sbRequestUrl.ToString()));
+ throw new Exception($"CallApi: Request URL longer than 2048: url: \"{sbRequestUrl}\"");
}
var http = (HttpWebRequest)WebRequest.Create(new Uri(sbRequestUrl.ToString()));
@@ -56,7 +56,8 @@ namespace VAR.Toolbox.Code
#if UNIFIKAS_COMMONS
if (disableCertificateValidation)
{
- http.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => { return true; };
+ http.ServerCertificateValidationCallback =
+ (sender, certificate, chain, sslPolicyErrors) => { return true; };
}
#else
if (disableCertificateValidation)
@@ -83,6 +84,7 @@ namespace VAR.Toolbox.Code
{
parsedContent = stringContent;
}
+
UTF8Encoding encoding = new UTF8Encoding();
byte[] bytes = encoding.GetBytes(parsedContent);
@@ -97,40 +99,47 @@ namespace VAR.Toolbox.Code
responseTask.Wait();
WebResponse response = responseTask.Result;
var stream = response.GetResponseStream();
+ if (stream == null) { return null; }
+
var sr = new StreamReader(stream);
return sr.ReadToEnd();
}
catch (Exception ex)
{
+ // ReSharper disable once PossibleIntendedRethrow
throw ex;
}
}
- public static string CallSoapMethod(string url, string method, Dictionary parms, string namespaceUrl = "http://tempuri.org", ICredentials credentials = null)
+ public static string CallSoapMethod(string url, string method, Dictionary parameters,
+ string namespaceUrl = "http://tempuri.org", ICredentials credentials = null)
{
// Los servicios SOAP se llaman siempre a través de HTTP.
if (url.ToLower().StartsWith("https://"))
{
- url = string.Format("http://{0}", url.Substring("https://".Length));
+ url = $"http://{url.Substring("https://".Length)}";
}
// Construir petición
var sbData = new StringBuilder();
sbData.AppendFormat("");
- sbData.AppendFormat("");
+ sbData.AppendFormat(
+ "");
sbData.AppendFormat("");
sbData.AppendFormat("<{0} xmlns=\"{1}\">", method, namespaceUrl);
- foreach (KeyValuePair parm in parms)
+ foreach (KeyValuePair parameter in parameters)
{
- if (parm.Value != null && !(parm.Value is DBNull))
+ if (parameter.Value != null && !(parameter.Value is DBNull))
{
- sbData.AppendFormat("<{0}>{1}{0}>", parm.Key, parm.Value);
+ sbData.AppendFormat("<{0}>{1}{0}>", parameter.Key, parameter.Value);
}
else
{
- sbData.AppendFormat("<{0} i:nil=\"true\" xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\" />", parm.Key);
+ sbData.AppendFormat("<{0} i:nil=\"true\" xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\" />",
+ parameter.Key);
}
}
+
sbData.AppendFormat("{0}>", method);
sbData.AppendFormat("");
sbData.AppendFormat("");
@@ -138,22 +147,20 @@ namespace VAR.Toolbox.Code
byte[] postData = Encoding.UTF8.GetBytes(sbData.ToString());
// Realizar petición
- var client = new System.Net.WebClient();
+ var client = new WebClient();
if (credentials != null)
{
client.Credentials = credentials;
}
+
client.Headers.Add("Accept", "text/xml");
client.Headers.Add("Accept-Charset", "UTF-8");
client.Headers.Add("Content-Type", "text/xml; charset=UTF-8");
- if (namespaceUrl.ToLower().StartsWith("http"))
- {
- client.Headers.Add("SOAPAction", string.Format("\"{0}/{1}\"", namespaceUrl, method));
- }
- else
- {
- client.Headers.Add("SOAPAction", string.Format("\"{0}:{1}\"", namespaceUrl, method));
- }
+ client.Headers.Add("SOAPAction",
+ namespaceUrl.ToLower().StartsWith("http")
+ ? $"\"{namespaceUrl}/{method}\""
+ : $"\"{namespaceUrl}:{method}\"");
+
byte[] data;
try
{
@@ -161,11 +168,11 @@ namespace VAR.Toolbox.Code
}
catch (Exception ex)
{
- throw new Exception(string.Format("Failure calling SoapService: URL: {0}", url), ex);
+ throw new Exception($"Failure calling SoapService: URL: {url}", ex);
}
- string strData = System.Text.Encoding.UTF8.GetString(data);
+
+ string strData = Encoding.UTF8.GetString(data);
return strData;
}
-
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Code/Webcam.cs b/VAR.Toolbox/Code/Webcam.cs
index 7af0374..45fac1a 100644
--- a/VAR.Toolbox/Code/Webcam.cs
+++ b/VAR.Toolbox/Code/Webcam.cs
@@ -1,5 +1,7 @@
#pragma warning disable IDE0018
#pragma warning disable IDE0059
+// ReSharper disable SuspiciousTypeConversion.Global
+// ReSharper disable ConvertToAutoProperty
using System;
using System.Collections.Generic;
@@ -10,26 +12,23 @@ using System.Runtime.InteropServices.ComTypes;
using VAR.Toolbox.Code.DirectShow;
using VAR.Toolbox.Code.Windows;
+
namespace VAR.Toolbox.Code
{
public class Webcam
{
#region Declarations
- private readonly IFilterGraph2 graph;
- private readonly ICaptureGraphBuilder2 capture;
- private readonly IMediaControl control;
- private readonly IBaseFilter sourceFilter;
- private readonly IBaseFilter samplegrabberfilter;
- private readonly IBaseFilter nullrenderer;
+ private readonly IMediaControl _control;
+ private readonly IBaseFilter _sourceFilter;
+ private readonly IBaseFilter _sampleGrabberFilter;
+ private readonly IBaseFilter _nullRenderer;
- private readonly Grabber grabber;
+ private readonly int _width;
+ private readonly int _height;
+ private readonly int _bpp;
- private readonly int width = 0;
- private readonly int height = 0;
- private readonly int bpp = 0;
-
- private bool active = false;
+ private bool _active;
private static Dictionary _deviceDescriptions;
@@ -37,11 +36,13 @@ namespace VAR.Toolbox.Code
#region Properties
- public int Width { get { return width; } }
- public int Height { get { return height; } }
- public int BPP { get { return bpp; } }
+ public int Width => _width;
- public bool Active { get { return active; } }
+ public int Height => _height;
+
+ public int BPP => _bpp;
+
+ public bool Active => _active;
#endregion Properties
@@ -49,33 +50,29 @@ namespace VAR.Toolbox.Code
public Webcam(string monikerString)
{
- int result;
-
- graph = CreateInstanceFromClsid(Clsid.FilterGraph);
- capture = CreateInstanceFromClsid(Clsid.CaptureGraphBuilder2);
- control = (IMediaControl)graph;
+ IFilterGraph2 graph = CreateInstanceFromClsid(Clsid.FilterGraph);
+ ICaptureGraphBuilder2 capture = CreateInstanceFromClsid(Clsid.CaptureGraphBuilder2);
+ _control = (IMediaControl)graph;
capture.SetFiltergraph((IGraphBuilder)graph);
- IBindCtx bindCtx = null;
- IMoniker moniker = null;
-
int n = 0;
- if (Win32.CreateBindCtx(0, out bindCtx) != 0)
+ if (Win32.CreateBindCtx(0, out IBindCtx bindCtx) != 0)
{
throw new Exception("Failed to create binding context");
}
- if (Win32.MkParseDisplayName(bindCtx, monikerString, ref n, out moniker) != 0)
+
+ if (Win32.MkParseDisplayName(bindCtx, monikerString, ref n, out IMoniker moniker) != 0)
{
throw new Exception("Failed to create binding moniker");
}
- graph.AddSourceFilterForMoniker(moniker, bindCtx, monikerString, out sourceFilter);
+ graph.AddSourceFilterForMoniker(moniker, bindCtx, monikerString, out _sourceFilter);
- samplegrabberfilter = CreateInstanceFromClsid(Clsid.SampleGrabber);
- graph.AddFilter(samplegrabberfilter, string.Format("SampleGrabber {0}", monikerString));
+ _sampleGrabberFilter = CreateInstanceFromClsid(Clsid.SampleGrabber);
+ graph.AddFilter(_sampleGrabberFilter, $"SampleGrabber {monikerString}");
- ISampleGrabber sampleGrabber = (ISampleGrabber)samplegrabberfilter;
+ ISampleGrabber sampleGrabber = (ISampleGrabber)_sampleGrabberFilter;
// Set media type
AMMediaType mediaType = new AMMediaType
@@ -85,15 +82,16 @@ namespace VAR.Toolbox.Code
};
sampleGrabber.SetMediaType(mediaType);
- grabber = new Grabber(this);
- result = sampleGrabber.SetCallback(grabber, 1);
+ var grabber = new Grabber(this);
+ int result = sampleGrabber.SetCallback(grabber, 1);
if (result < 0) throw new Exception("Failure creating Webcam device");
//set the null renderer
- nullrenderer = CreateInstanceFromClsid(Clsid.NullRenderer);
- graph.AddFilter(nullrenderer, string.Format("NullRenderer {0}", monikerString));
+ _nullRenderer = CreateInstanceFromClsid(Clsid.NullRenderer);
+ graph.AddFilter(_nullRenderer, $"NullRenderer {monikerString}");
- result = capture.RenderStream(PinCategory.Preview, MediaType.Video, sourceFilter, samplegrabberfilter, nullrenderer);
+ result = capture.RenderStream(PinCategory.Preview, MediaType.Video, _sourceFilter, _sampleGrabberFilter,
+ _nullRenderer);
if (result < 0) throw new Exception("Failure creating Webcam device");
AMMediaType queryMediaType = new AMMediaType();
@@ -102,14 +100,15 @@ namespace VAR.Toolbox.Code
{
if (queryMediaType.FormatType == FormatType.VideoInfo)
{
- VideoInfoHeader videoInfo = (VideoInfoHeader)Marshal.PtrToStructure(queryMediaType.FormatPtr, typeof(VideoInfoHeader));
- width = videoInfo.BmiHeader.Width;
- height = videoInfo.BmiHeader.Height;
- bpp = videoInfo.BmiHeader.BitCount;
+ VideoInfoHeader videoInfo =
+ (VideoInfoHeader)Marshal.PtrToStructure(queryMediaType.FormatPtr, typeof(VideoInfoHeader));
+ _width = videoInfo.BmiHeader.Width;
+ _height = videoInfo.BmiHeader.Height;
+ _bpp = videoInfo.BmiHeader.BitCount;
}
}
- control.Run();
+ _control.Run();
Stop();
}
@@ -119,41 +118,37 @@ namespace VAR.Toolbox.Code
public void Start()
{
- control.Run();
- int result;
- result = nullrenderer.Run(0);
+ _control.Run();
+ int result = _nullRenderer.Run(0);
if (result < 0) throw new Exception("Webcam Start failure");
- result = samplegrabberfilter.Run(0);
+ result = _sampleGrabberFilter.Run(0);
if (result < 0) throw new Exception("Webcam Start failure");
- result = sourceFilter.Run(0);
+ result = _sourceFilter.Run(0);
if (result < 0) throw new Exception("Webcam Start failure");
- active = true;
+ _active = true;
}
public void Stop()
{
- int result;
- result = sourceFilter.Stop();
+ int result = _sourceFilter.Stop();
if (result < 0) throw new Exception("Webcam Stop failure");
- result = samplegrabberfilter.Stop();
+ result = _sampleGrabberFilter.Stop();
if (result < 0) throw new Exception("Webcam Stop failure");
- result = nullrenderer.Stop();
+ result = _nullRenderer.Stop();
if (result < 0) throw new Exception("Webcam Stop failure");
- control.Stop();
- active = false;
+ _control.Stop();
+ _active = false;
}
public static Dictionary ListDevices()
{
if (_deviceDescriptions != null) { return _deviceDescriptions; }
- int result;
Dictionary devices = new Dictionary();
ICreateDevEnum devEnum = CreateInstanceFromClsid(Clsid.SystemDeviceEnum);
- IEnumMoniker enumMon = null;
Guid category = FilterCategory.VideoInputDevice;
- result = devEnum.CreateClassEnumerator(ref category, out enumMon, 0);
+ int result = devEnum.CreateClassEnumerator(ref category, out IEnumMoniker enumMon, 0);
if (result != 0)
throw new ApplicationException("No devices of the category");
@@ -175,6 +170,7 @@ namespace VAR.Toolbox.Code
Marshal.ReleaseComObject(devMoniker[0]);
devMoniker[0] = null;
}
+
_deviceDescriptions = devices;
Marshal.ReleaseComObject(devEnum);
@@ -202,8 +198,7 @@ namespace VAR.Toolbox.Code
//
private static string GetMonikerString(IMoniker moniker)
{
- string str;
- moniker.GetDisplayName(null, null, out str);
+ moniker.GetDisplayName(null, null, out string str);
return str;
}
@@ -213,14 +208,13 @@ namespace VAR.Toolbox.Code
private static string GetMonikerName(IMoniker moniker)
{
Object bagObj = null;
- IPropertyBag bag = null;
try
{
Guid bagId = typeof(IPropertyBag).GUID;
// get property bag of the moniker
moniker.BindToStorage(null, null, ref bagId, out bagObj);
- bag = (IPropertyBag)bagObj;
+ IPropertyBag bag = (IPropertyBag)bagObj;
// read FriendlyName
object val = "";
@@ -242,11 +236,9 @@ namespace VAR.Toolbox.Code
finally
{
// release all COM objects
- bag = null;
if (bagObj != null)
{
Marshal.ReleaseComObject(bagObj);
- bagObj = null;
}
}
}
@@ -267,7 +259,7 @@ namespace VAR.Toolbox.Code
{
private readonly Webcam _parent;
- private readonly Bitmap[] _frames = null;
+ private readonly Bitmap[] _frames;
private readonly int _numFrames = 10;
private int _currentFrameIndex = -1;
@@ -281,11 +273,13 @@ namespace VAR.Toolbox.Code
{
_currentFrameIndex = (_currentFrameIndex + 1) % _numFrames;
Bitmap currentBitmap = _frames[_currentFrameIndex];
- if (currentBitmap == null || currentBitmap?.Width != _parent.width || currentBitmap?.Height != _parent.height)
+ if (currentBitmap == null || currentBitmap.Width != _parent._width ||
+ currentBitmap.Height != _parent._height)
{
- currentBitmap = new Bitmap(_parent.width, _parent.height, PixelFormat.Format24bppRgb);
+ currentBitmap = new Bitmap(_parent._width, _parent._height, PixelFormat.Format24bppRgb);
_frames[_currentFrameIndex] = currentBitmap;
}
+
return currentBitmap;
}
@@ -299,12 +293,12 @@ namespace VAR.Toolbox.Code
if (_parent.NewFrame != null)
{
// create new image
- Bitmap _image = GetNextFrame();
- Rectangle _imageRect = new Rectangle(0, 0, _parent.width, _parent.height);
+ Bitmap image = GetNextFrame();
+ Rectangle imageRect = new Rectangle(0, 0, _parent._width, _parent._height);
// lock bitmap data
- BitmapData imageData = _image.LockBits(
- _imageRect,
+ BitmapData imageData = image.LockBits(
+ imageRect,
ImageLockMode.ReadWrite,
PixelFormat.Format24bppRgb);
@@ -314,10 +308,10 @@ namespace VAR.Toolbox.Code
unsafe
{
- byte* dst = (byte*)imageData.Scan0.ToPointer() + dstStride * (_parent.height - 1);
+ byte* dst = (byte*)imageData.Scan0.ToPointer() + dstStride * (_parent._height - 1);
byte* src = (byte*)buffer.ToPointer();
- for (int y = 0; y < _parent.height; y++)
+ for (int y = 0; y < _parent._height; y++)
{
Win32.memcpy(dst, src, srcStride);
dst -= dstStride;
@@ -326,10 +320,10 @@ namespace VAR.Toolbox.Code
}
// unlock bitmap data
- _image.UnlockBits(imageData);
+ image.UnlockBits(imageData);
// notify parent
- _parent.NewFrame?.Invoke(this, _image);
+ _parent.NewFrame?.Invoke(this, image);
}
return 0;
@@ -338,4 +332,4 @@ namespace VAR.Toolbox.Code
#endregion Grabber
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Code/Windows/GDI32.cs b/VAR.Toolbox/Code/Windows/GDI32.cs
index bc88d66..b74ab73 100644
--- a/VAR.Toolbox/Code/Windows/GDI32.cs
+++ b/VAR.Toolbox/Code/Windows/GDI32.cs
@@ -11,16 +11,21 @@ namespace VAR.Toolbox.Code.Windows
public static extern bool BitBlt(IntPtr hObject, int nXDest, int nYDest,
int nWidth, int nHeight, IntPtr hObjectSource,
int nXSrc, int nYSrc, int dwRop);
+
[DllImport("gdi32.dll")]
public static extern IntPtr CreateCompatibleBitmap(IntPtr hDC, int nWidth,
int nHeight);
+
[DllImport("gdi32.dll")]
public static extern IntPtr CreateCompatibleDC(IntPtr hDC);
+
[DllImport("gdi32.dll")]
public static extern bool DeleteDC(IntPtr hDC);
+
[DllImport("gdi32.dll")]
public static extern bool DeleteObject(IntPtr hObject);
+
[DllImport("gdi32.dll")]
public static extern IntPtr SelectObject(IntPtr hDC, IntPtr hObject);
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Code/Windows/User32.cs b/VAR.Toolbox/Code/Windows/User32.cs
index 70b1b04..54c77e8 100644
--- a/VAR.Toolbox/Code/Windows/User32.cs
+++ b/VAR.Toolbox/Code/Windows/User32.cs
@@ -2,6 +2,11 @@
using System.Runtime.InteropServices;
using System.Text;
+// ReSharper disable InconsistentNaming
+// ReSharper disable MemberCanBePrivate.Global
+// ReSharper disable FieldCanBeMadeReadOnly.Global
+// ReSharper disable IdentifierTypo
+
namespace VAR.Toolbox.Code.Windows
{
public static class User32
@@ -23,14 +28,11 @@ namespace VAR.Toolbox.Code.Windows
[StructLayout(LayoutKind.Explicit)]
public struct MOUSEKEYBDHARDWAREINPUT
{
- [FieldOffset(0)]
- public HARDWAREINPUT Hardware;
+ [FieldOffset(0)] public HARDWAREINPUT Hardware;
- [FieldOffset(0)]
- public KEYBDINPUT Keyboard;
+ [FieldOffset(0)] public KEYBDINPUT Keyboard;
- [FieldOffset(0)]
- public MOUSEINPUT Mouse;
+ [FieldOffset(0)] public MOUSEINPUT Mouse;
}
///
@@ -93,7 +95,7 @@ namespace VAR.Toolbox.Code.Windows
[DllImport("User32.dll")]
public static extern int SendInput(int nInputs, INPUT[] pInputs, int cbSize);
- //
+ ///
/// Struct representing a point.
///
[StructLayout(LayoutKind.Sequential)]
@@ -111,18 +113,16 @@ namespace VAR.Toolbox.Code.Windows
public static extern bool GetCursorPos(out POINT lpPoint);
[DllImport("User32.dll")]
- public static extern Boolean SetCursorPos(UInt32 X, UInt32 Y);
+ public static extern Boolean SetCursorPos(UInt32 x, UInt32 y);
[StructLayout(LayoutKind.Sequential)]
public struct LASTINPUTINFO
{
public static readonly int SizeOf = Marshal.SizeOf(typeof(LASTINPUTINFO));
- [MarshalAs(UnmanagedType.U4)]
- public UInt32 cbSize;
+ [MarshalAs(UnmanagedType.U4)] public UInt32 cbSize;
- [MarshalAs(UnmanagedType.U4)]
- public UInt32 dwTime;
+ [MarshalAs(UnmanagedType.U4)] public UInt32 dwTime;
}
[DllImport("user32.dll")]
@@ -139,7 +139,7 @@ namespace VAR.Toolbox.Code.Windows
public const int HT_CAPTION = 0x2;
[DllImport("user32.dll")]
- public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
+ public static extern int SendMessage(IntPtr hWnd, int msg, int wParam, int lParam);
[DllImport("user32.dll")]
public static extern bool ReleaseCapture();
@@ -177,14 +177,15 @@ namespace VAR.Toolbox.Code.Windows
public static string GetActiveWindowTitle()
{
- const int nChars = 256;
- StringBuilder Buff = new StringBuilder(nChars);
+ const int NChars = 256;
+ StringBuilder buff = new StringBuilder(NChars);
IntPtr handle = GetForegroundWindow();
- if (GetWindowText(handle, Buff, nChars) > 0)
+ if (GetWindowText(handle, buff, NChars) > 0)
{
- return Buff.ToString();
+ return buff.ToString();
}
+
return null;
}
}
diff --git a/VAR.Toolbox/Code/Windows/Win32.cs b/VAR.Toolbox/Code/Windows/Win32.cs
index 21bdd06..eaf9ac3 100644
--- a/VAR.Toolbox/Code/Windows/Win32.cs
+++ b/VAR.Toolbox/Code/Windows/Win32.cs
@@ -4,6 +4,10 @@ using System;
using System.Runtime.InteropServices;
using System.Runtime.InteropServices.ComTypes;
+// ReSharper disable IdentifierTypo
+// ReSharper disable StringLiteralTypo
+// ReSharper disable CommentTypo
+
namespace VAR.Toolbox.Code.Windows
{
public static class Win32
@@ -21,7 +25,7 @@ namespace VAR.Toolbox.Code.Windows
///
[DllImport("ole32.dll")]
public static extern
- int CreateBindCtx(int reserved, out IBindCtx ppbc);
+ int CreateBindCtx(int reserved, out IBindCtx ppbc);
///
/// Converts a string into a moniker that identifies the object named by the string.
@@ -37,8 +41,8 @@ namespace VAR.Toolbox.Code.Windows
///
[DllImport("ole32.dll", CharSet = CharSet.Unicode)]
public static extern
- int MkParseDisplayName(IBindCtx pbc, string szUserName,
- ref int pchEaten, out IMoniker ppmk);
+ int MkParseDisplayName(IBindCtx pbc, string szUserName,
+ ref int pchEaten, out IMoniker ppmk);
///
/// Copy a block of memory.
@@ -51,7 +55,7 @@ namespace VAR.Toolbox.Code.Windows
/// Return's the value of dst - pointer to destination.
///
[DllImport("ntdll.dll", CallingConvention = CallingConvention.Cdecl)]
- public static unsafe extern int memcpy(
+ public static extern unsafe int memcpy(
byte* dst,
byte* src,
int count);
@@ -81,7 +85,7 @@ namespace VAR.Toolbox.Code.Windows
int y,
[MarshalAs(UnmanagedType.LPWStr)] string caption,
int cObjects,
- [MarshalAs( UnmanagedType.Interface, ArraySubType = UnmanagedType.IUnknown )]
+ [MarshalAs(UnmanagedType.Interface, ArraySubType = UnmanagedType.IUnknown)]
ref object ppUnk,
int cPages,
IntPtr lpPageClsID,
@@ -90,7 +94,8 @@ namespace VAR.Toolbox.Code.Windows
IntPtr lpvReserved);
[DllImport("PowrProf.dll")]
- public static extern Boolean SetSuspendState(Boolean Hibernate, Boolean ForceCritical, Boolean DisableWakeEvent);
+ public static extern Boolean
+ SetSuspendState(Boolean hibernate, Boolean forceCritical, Boolean disableWakeEvent);
public static uint GetLastInputTime()
{
@@ -104,6 +109,7 @@ namespace VAR.Toolbox.Code.Windows
uint lastInputTick = lastInputInfo.dwTime;
idleTime = envTicks - lastInputTick;
}
+
return ((idleTime > 0) ? (idleTime / 1000) : 0);
}
}
diff --git a/VAR.Toolbox/Code/WorkLog/IWorkLogImporter.cs b/VAR.Toolbox/Code/WorkLog/IWorkLogImporter.cs
index 8174fdd..3897b13 100644
--- a/VAR.Toolbox/Code/WorkLog/IWorkLogImporter.cs
+++ b/VAR.Toolbox/Code/WorkLog/IWorkLogImporter.cs
@@ -8,4 +8,4 @@ namespace VAR.Toolbox.Code.WorkLog
List Import(Form form);
bool Export(List items, Form form);
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Code/WorkLog/VARTextWorkLogImporter.cs b/VAR.Toolbox/Code/WorkLog/VARTextWorkLogImporter.cs
index a834ebd..8882d88 100644
--- a/VAR.Toolbox/Code/WorkLog/VARTextWorkLogImporter.cs
+++ b/VAR.Toolbox/Code/WorkLog/VARTextWorkLogImporter.cs
@@ -10,7 +10,7 @@ namespace VAR.Toolbox.Code.WorkLog
{
public class VARTextWorkLogImporter : IWorkLogImporter
{
- public string Name { get { return "VARText"; } }
+ public string Name => "VARText";
//TODO: VARTextWorkLogImporter: Export WorkLigItem.Tags
public bool Export(List items, Form form)
@@ -23,6 +23,7 @@ namespace VAR.Toolbox.Code.WorkLog
{
File.Delete(saveFileDialog.FileName);
}
+
using (StreamWriter streamWriter = new StreamWriter(saveFileDialog.FileName))
{
DateTime lastDateTime = DateTime.MinValue;
@@ -30,30 +31,33 @@ namespace VAR.Toolbox.Code.WorkLog
List itemsOrdered = items.OrderBy(x => x.DateStart).ToList();
foreach (WorkLogItem item in itemsOrdered)
{
- int weekOfYear = CultureInfo.InvariantCulture.Calendar.GetWeekOfYear(item.DateStart, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday);
+ int weekOfYear = CultureInfo.InvariantCulture.Calendar.GetWeekOfYear(item.DateStart,
+ CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday);
if (weekOfYear != lastWeekOfYear)
{
streamWriter.WriteLine();
streamWriter.WriteLine();
- streamWriter.WriteLine(string.Format("--- {0:0000}-{1:00}-{2:00}", item.DateStart.Year, item.DateStart.Month, item.DateStart.Day));
+ streamWriter.WriteLine("--- {0:0000}-{1:00}-{2:00}", item.DateStart.Year, item.DateStart.Month,
+ item.DateStart.Day);
lastWeekOfYear = weekOfYear;
}
+
if (lastDateTime.Day != item.DateStart.Day)
{
streamWriter.WriteLine();
lastDateTime = item.DateStart;
}
- streamWriter.WriteLine(string.Format("{0:00}_{1:00}_{2:00} - {3:00}_{4:00}_{5:00} {6}",
- item.DateStart.Day, item.DateStart.Hour, item.DateStart.Minute,
- item.DateEnd.Day, item.DateEnd.Hour, item.DateEnd.Minute,
- item.Activity));
+ streamWriter.WriteLine("{0:00}_{1:00}_{2:00} - {3:00}_{4:00}_{5:00} {6}", item.DateStart.Day,
+ item.DateStart.Hour, item.DateStart.Minute, item.DateEnd.Day, item.DateEnd.Hour,
+ item.DateEnd.Minute, item.Activity);
if (string.IsNullOrEmpty(item.Description) == false)
{
- streamWriter.WriteLine(string.Format(" {0}", item.Description));
+ streamWriter.WriteLine($" {item.Description}");
}
}
}
+
return true;
}
@@ -82,14 +86,13 @@ namespace VAR.Toolbox.Code.WorkLog
{
string strDate = lineAux.Substring(4);
string[] strDateParts = strDate.Split('-');
- if (strDateParts.Length >= 3 && strDateParts[0].Length == 4 && strDateParts[1].Length == 2 && strDateParts[2].Length == 2)
+ if (strDateParts.Length >= 3 && strDateParts[0].Length == 4 && strDateParts[1].Length == 2 &&
+ strDateParts[2].Length == 2)
{
- currentDateStart = new DateTime(Convert.ToInt32(strDateParts[0]), Convert.ToInt32(strDateParts[1]), Convert.ToInt32(strDateParts[2]), 0, 0, 0);
- }
- else
- {
- continue;
+ currentDateStart = new DateTime(Convert.ToInt32(strDateParts[0]),
+ Convert.ToInt32(strDateParts[1]), Convert.ToInt32(strDateParts[2]), 0, 0, 0);
}
+ else { }
}
else if (lineAux.StartsWith("--"))
{
@@ -97,7 +100,6 @@ namespace VAR.Toolbox.Code.WorkLog
{
currentWorkLog.Description += lineAux + "\n";
}
- continue;
}
else
{
@@ -108,8 +110,10 @@ namespace VAR.Toolbox.Code.WorkLog
{
currentWorkLog.Description += lineAux + "\n";
}
+
continue;
}
+
int startDay = Convert.ToInt32(match.Groups[1].Value);
int startHour = Convert.ToInt32(match.Groups[2].Value);
int startMinute = Convert.ToInt32(match.Groups[3].Value);
@@ -138,4 +142,4 @@ namespace VAR.Toolbox.Code.WorkLog
return workLog;
}
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Code/WorkLog/WorkLogImporterFactory.cs b/VAR.Toolbox/Code/WorkLog/WorkLogImporterFactory.cs
index 41ceaf8..4ff2e18 100644
--- a/VAR.Toolbox/Code/WorkLog/WorkLogImporterFactory.cs
+++ b/VAR.Toolbox/Code/WorkLog/WorkLogImporterFactory.cs
@@ -1,6 +1,4 @@
namespace VAR.Toolbox.Code.WorkLog
{
- public class WorkLogImporterFactory : BaseFactory
- {
- }
-}
+ public class WorkLogImporterFactory : BaseFactory { }
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Code/WorkLog/WorkLogItem.cs b/VAR.Toolbox/Code/WorkLog/WorkLogItem.cs
index bddcb2b..b9de119 100644
--- a/VAR.Toolbox/Code/WorkLog/WorkLogItem.cs
+++ b/VAR.Toolbox/Code/WorkLog/WorkLogItem.cs
@@ -12,7 +12,7 @@ namespace VAR.Toolbox.Code.WorkLog
public bool Overlaps(WorkLogItem other)
{
- return (other.DateEnd < this.DateStart || other.DateStart > this.DateEnd) == false;
+ return (other.DateEnd < DateStart || other.DateStart > DateEnd) == false;
}
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Controls/CButton.cs b/VAR.Toolbox/Controls/CButton.cs
index 62b133c..0410d81 100644
--- a/VAR.Toolbox/Controls/CButton.cs
+++ b/VAR.Toolbox/Controls/CButton.cs
@@ -4,16 +4,16 @@ using System.Windows.Forms;
namespace VAR.Toolbox.Controls
{
- public class CButton : System.Windows.Forms.Button
+ public class CButton : Button
{
- private Brush _foreColorBrush;
- private Brush _foreColorDisableBrush;
- private Brush _backColorBrush;
- private Brush _backColorOverBrush;
- private Brush _backColorDownBrush;
+ private readonly Brush _foreColorBrush;
+ private readonly Brush _foreColorDisableBrush;
+ private readonly Brush _backColorBrush;
+ private readonly Brush _backColorOverBrush;
+ private readonly Brush _backColorDownBrush;
- private bool _mouseIsDown = false;
- private bool _mouseIsOver = false;
+ private bool _mouseIsDown;
+ private bool _mouseIsOver;
public CButton()
{
@@ -47,15 +47,9 @@ namespace VAR.Toolbox.Controls
if (mevent.Button != MouseButtons.None)
{
Rectangle r = ClientRectangle;
- if (!r.Contains(mevent.X, mevent.Y))
- {
- _mouseIsDown = false;
- }
- else
- {
- _mouseIsDown = true;
- }
+ _mouseIsDown = r.Contains(mevent.X, mevent.Y);
}
+
base.OnMouseMove(mevent);
}
@@ -71,7 +65,8 @@ namespace VAR.Toolbox.Controls
base.OnMouseUp(mevent);
}
- private StringFormat _stringFormat = new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center };
+ private readonly StringFormat _stringFormat = new StringFormat
+ { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center };
protected override void OnPaint(PaintEventArgs pevent)
{
@@ -84,14 +79,7 @@ namespace VAR.Toolbox.Controls
}
else
{
- if (_mouseIsOver)
- {
- pevent.Graphics.FillRectangle(_backColorOverBrush, rectangle);
- }
- else
- {
- pevent.Graphics.FillRectangle(_backColorBrush, rectangle);
- }
+ pevent.Graphics.FillRectangle(_mouseIsOver ? _backColorOverBrush : _backColorBrush, rectangle);
}
}
else
@@ -99,8 +87,8 @@ namespace VAR.Toolbox.Controls
pevent.Graphics.FillRectangle(_backColorBrush, rectangle);
}
- pevent.Graphics.DrawString(Text, Font, Enabled ? _foreColorBrush : _foreColorDisableBrush, rectangle, _stringFormat);
+ pevent.Graphics.DrawString(Text, Font, Enabled ? _foreColorBrush : _foreColorDisableBrush, rectangle,
+ _stringFormat);
}
-
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Controls/CComboBox.cs b/VAR.Toolbox/Controls/CComboBox.cs
index 69a6e2e..8784ecb 100644
--- a/VAR.Toolbox/Controls/CComboBox.cs
+++ b/VAR.Toolbox/Controls/CComboBox.cs
@@ -3,14 +3,19 @@ using System.Windows.Forms;
namespace VAR.Toolbox.Controls
{
- public class CComboBox : System.Windows.Forms.ComboBox
+ public class CComboBox : ComboBox
{
public CComboBox()
+ {
+ InitializeComponent();
+ }
+
+ private void InitializeComponent()
{
BackColor = Color.FromArgb(255, 0, 0, 0);
ForeColor = Color.FromArgb(255, 192, 192, 192);
- FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ FlatStyle = FlatStyle.Flat;
}
protected override void OnPaint(PaintEventArgs pevent)
@@ -19,4 +24,4 @@ namespace VAR.Toolbox.Controls
pevent.Graphics.FillRectangle(Brushes.CadetBlue, rectangle);
}
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Controls/CDateTimePicker.cs b/VAR.Toolbox/Controls/CDateTimePicker.cs
index f196c08..89ff547 100644
--- a/VAR.Toolbox/Controls/CDateTimePicker.cs
+++ b/VAR.Toolbox/Controls/CDateTimePicker.cs
@@ -5,9 +5,14 @@ namespace VAR.Toolbox.Controls
public class CDateTimePicker : System.Windows.Forms.DateTimePicker
{
public CDateTimePicker()
+ {
+ InitializeComponent();
+ }
+
+ private void InitializeComponent()
{
BackColor = Color.DarkSlateGray;
ForeColor = Color.Gray;
}
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Controls/CGroupBox.cs b/VAR.Toolbox/Controls/CGroupBox.cs
index ceafd90..aa8fea3 100644
--- a/VAR.Toolbox/Controls/CGroupBox.cs
+++ b/VAR.Toolbox/Controls/CGroupBox.cs
@@ -3,26 +3,31 @@ using System.Windows.Forms;
namespace VAR.Toolbox.Controls
{
- public class CGroupBox : System.Windows.Forms.GroupBox
+ public class CGroupBox : GroupBox
{
public CGroupBox()
+ {
+ InitializeComponent();
+ }
+
+ private void InitializeComponent()
{
BackColor = Color.FromArgb(255, 32, 32, 32);
ForeColor = Color.FromArgb(255, 192, 192, 192);
BorderColor = Color.FromArgb(255, 64, 64, 64);
- FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ FlatStyle = FlatStyle.Flat;
}
private Color _borderColor = Color.Black;
public Color BorderColor
{
- get { return this._borderColor; }
- set { this._borderColor = value; }
+ get => _borderColor;
+ set => _borderColor = value;
}
- private SolidBrush _brushBackColor = null;
- private SolidBrush _brushForeColor = null;
+ private SolidBrush _brushBackColor;
+ private SolidBrush _brushForeColor;
protected override void OnPaint(PaintEventArgs e)
{
@@ -30,6 +35,7 @@ namespace VAR.Toolbox.Controls
{
_brushBackColor = new SolidBrush(BackColor);
}
+
if (_brushForeColor == null || _brushForeColor.Color != ForeColor)
{
_brushForeColor = new SolidBrush(ForeColor);
@@ -50,4 +56,4 @@ namespace VAR.Toolbox.Controls
e.Graphics.DrawString(Text, Font, _brushForeColor, textRect);
}
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Controls/CSplitContainer.cs b/VAR.Toolbox/Controls/CSplitContainer.cs
index e169486..c8c7d4b 100644
--- a/VAR.Toolbox/Controls/CSplitContainer.cs
+++ b/VAR.Toolbox/Controls/CSplitContainer.cs
@@ -5,9 +5,14 @@ namespace VAR.Toolbox.Controls
public class CSplitContainer : System.Windows.Forms.SplitContainer
{
public CSplitContainer()
+ {
+ InitializeComponent();
+ }
+
+ private void InitializeComponent()
{
BackColor = Color.FromArgb(255, 32, 32, 32);
ForeColor = Color.FromArgb(255, 192, 192, 192);
}
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Controls/ControlsUtils.cs b/VAR.Toolbox/Controls/ControlsUtils.cs
index 3ece0f2..ba0ae66 100644
--- a/VAR.Toolbox/Controls/ControlsUtils.cs
+++ b/VAR.Toolbox/Controls/ControlsUtils.cs
@@ -23,8 +23,8 @@ namespace VAR.Toolbox.Controls
if (control.InvokeRequired)
{
control.Invoke(new SetControlPropertyThreadSafeDelegate
- (SetControlPropertyThreadSafe),
- new object[] { control, propertyName, propertyValue });
+ (SetControlPropertyThreadSafe),
+ new[] { control, propertyName, propertyValue });
}
else
{
@@ -33,8 +33,8 @@ namespace VAR.Toolbox.Controls
BindingFlags.SetProperty,
null,
control,
- new object[] { propertyValue });
+ new[] { propertyValue });
}
}
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Controls/CtrImageViewer.cs b/VAR.Toolbox/Controls/CtrImageViewer.cs
index 7f6e88f..5e4341a 100644
--- a/VAR.Toolbox/Controls/CtrImageViewer.cs
+++ b/VAR.Toolbox/Controls/CtrImageViewer.cs
@@ -8,7 +8,7 @@ namespace VAR.Toolbox.Controls
{
#region Declarations
- private Image _imageShow = null;
+ private Image _imageShow;
#endregion
@@ -16,7 +16,8 @@ namespace VAR.Toolbox.Controls
public Image ImageShow
{
- get { return _imageShow; }
+ // ReSharper disable once InconsistentlySynchronizedField
+ get => _imageShow;
set
{
lock (this)
@@ -32,6 +33,11 @@ namespace VAR.Toolbox.Controls
#region Control life cycle
public CtrImageViewer()
+ {
+ InitializeComponent();
+ }
+
+ private void InitializeComponent()
{
BackColor = Color.Black;
}
@@ -46,7 +52,7 @@ namespace VAR.Toolbox.Controls
{
base.OnResize(e);
//Redraw(null);
- this.Invalidate();
+ Invalidate();
}
#endregion
@@ -59,11 +65,12 @@ namespace VAR.Toolbox.Controls
{
return;
}
+
lock (_imageShow)
{
if (graph == null)
{
- graph = this.CreateGraphics();
+ graph = CreateGraphics();
}
// Calcular dimensiones a dibujar y centrar
@@ -71,7 +78,7 @@ namespace VAR.Toolbox.Controls
int imgDrawHeight;
float imgDrawX = 0;
float imgDrawY = 0;
- float relation = (float)_imageShow.Width / (float)_imageShow.Height;
+ float relation = _imageShow.Width / (float)_imageShow.Height;
if (relation > 0)
{
// Imagen mas ancha que alta
@@ -110,6 +117,5 @@ namespace VAR.Toolbox.Controls
}
#endregion
-
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Controls/CtrOutput.cs b/VAR.Toolbox/Controls/CtrOutput.cs
index d626b8b..5ee0c55 100644
--- a/VAR.Toolbox/Controls/CtrOutput.cs
+++ b/VAR.Toolbox/Controls/CtrOutput.cs
@@ -16,6 +16,7 @@ namespace VAR.Toolbox.Controls
{
public string Text { get; set; }
public object Data { get; set; }
+
public override string ToString()
{
return Text;
@@ -62,6 +63,7 @@ namespace VAR.Toolbox.Controls
CopyToClipboard();
return true;
}
+
return base.ProcessCmdKey(ref msg, keyData);
}
@@ -80,6 +82,7 @@ namespace VAR.Toolbox.Controls
{
sbText.AppendLine(item.Text);
}
+
if (sbText.Length > 0)
{
Clipboard.SetText(sbText.ToString());
@@ -99,7 +102,7 @@ namespace VAR.Toolbox.Controls
}
}
- private bool _updated = false;
+ private bool _updated;
private readonly List _pendingOutput = new List();
private void UpdatePosition()
@@ -112,6 +115,7 @@ namespace VAR.Toolbox.Controls
{
_listBox.Items.Add(item);
}
+
_pendingOutput.Clear();
_listBox.ResumeLayout();
@@ -124,10 +128,12 @@ namespace VAR.Toolbox.Controls
}
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)]
- private static extern IntPtr SendMessage(HandleRef hWnd, Int32 Msg, IntPtr wParam, IntPtr lParam);
+ private static extern IntPtr SendMessage(HandleRef hWnd, Int32 msg, IntPtr wParam, IntPtr lParam);
private static void EnableRepaint(HandleRef handle, bool enable)
{
+ // ReSharper disable once InconsistentNaming
+ // ReSharper disable once IdentifierTypo
const int WM_SETREDRAW = 0x000B;
SendMessage(handle, WM_SETREDRAW, new IntPtr(enable ? 1 : 0), IntPtr.Zero);
}
@@ -161,6 +167,7 @@ namespace VAR.Toolbox.Controls
public string GetCurrentText()
{
if (_listBox.SelectedItems.Count == 0) { return null; }
+
OutputItem item = (OutputItem)_listBox.SelectedItems[0];
return item?.Text;
}
@@ -168,8 +175,9 @@ namespace VAR.Toolbox.Controls
public object GetCurrentData()
{
if (_listBox.SelectedItems.Count == 0) { return null; }
+
OutputItem item = (OutputItem)_listBox.SelectedItems[0];
return item?.Data;
}
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Controls/Frame.cs b/VAR.Toolbox/Controls/Frame.cs
index db8ba23..c130fb9 100644
--- a/VAR.Toolbox/Controls/Frame.cs
+++ b/VAR.Toolbox/Controls/Frame.cs
@@ -6,10 +6,16 @@ namespace VAR.Toolbox.Controls
{
public Frame()
{
- Font = new System.Drawing.Font(Font.Name, ControlsUtils.GetFontSize(this, 8.25f), Font.Style, Font.Unit, Font.GdiCharSet, Font.GdiVerticalFont);
+ InitializeComponent();
+ }
+
+ private void InitializeComponent()
+ {
+ Font = new Font(Font.Name, ControlsUtils.GetFontSize(this, 8.25f), Font.Style, Font.Unit,
+ Font.GdiCharSet, Font.GdiVerticalFont);
AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
BackColor = Color.FromArgb(255, 32, 32, 32);
ForeColor = Color.FromArgb(255, 192, 192, 192);
}
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Controls/ListBoxMonospace.cs b/VAR.Toolbox/Controls/ListBoxMonospace.cs
index 770baca..a253cdd 100644
--- a/VAR.Toolbox/Controls/ListBoxMonospace.cs
+++ b/VAR.Toolbox/Controls/ListBoxMonospace.cs
@@ -6,6 +6,11 @@ namespace VAR.Toolbox.Controls
public class ListBoxMonospace : ListBox
{
public ListBoxMonospace()
+ {
+ InitializeComponent();
+ }
+
+ private void InitializeComponent()
{
FormattingEnabled = true;
Font = new Font("Consolas", ControlsUtils.GetFontSize(this, 9));
@@ -17,17 +22,17 @@ namespace VAR.Toolbox.Controls
protected override void OnMouseWheel(MouseEventArgs e)
{
- (e as HandledMouseEventArgs).Handled = true;
- const int rows = 5;
+ ((HandledMouseEventArgs)e).Handled = true;
+ const int Rows = 5;
if (e.Delta > 0)
{
- if (TopIndex < rows) { TopIndex = 0; }
- else { TopIndex -= rows; }
+ if (TopIndex < Rows) { TopIndex = 0; }
+ else { TopIndex -= Rows; }
}
else
{
- TopIndex += rows;
+ TopIndex += Rows;
}
}
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Controls/ListBoxNormal.cs b/VAR.Toolbox/Controls/ListBoxNormal.cs
index df5c2b9..5c3a544 100644
--- a/VAR.Toolbox/Controls/ListBoxNormal.cs
+++ b/VAR.Toolbox/Controls/ListBoxNormal.cs
@@ -6,6 +6,11 @@ namespace VAR.Toolbox.Controls
public class ListBoxNormal : ListBox
{
public ListBoxNormal()
+ {
+ InitializeComponent();
+ }
+
+ private void InitializeComponent()
{
FormattingEnabled = true;
Font = new Font("Microsoft Sans Serif", ControlsUtils.GetFontSize(this, 8.25f));
@@ -16,17 +21,17 @@ namespace VAR.Toolbox.Controls
protected override void OnMouseWheel(MouseEventArgs e)
{
- (e as HandledMouseEventArgs).Handled = true;
- const int rows = 5;
+ ((HandledMouseEventArgs)e).Handled = true;
+ const int Rows = 5;
if (e.Delta > 0)
{
- if (TopIndex < rows) { TopIndex = 0; }
- else { TopIndex -= rows; }
+ if (TopIndex < Rows) { TopIndex = 0; }
+ else { TopIndex -= Rows; }
}
else
{
- TopIndex += rows;
+ TopIndex += Rows;
}
}
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Controls/SubFrame.cs b/VAR.Toolbox/Controls/SubFrame.cs
index ce77dd7..aa0ec4d 100644
--- a/VAR.Toolbox/Controls/SubFrame.cs
+++ b/VAR.Toolbox/Controls/SubFrame.cs
@@ -6,10 +6,16 @@ namespace VAR.Toolbox.Controls
{
public SubFrame()
{
- Font = new System.Drawing.Font(Font.Name, ControlsUtils.GetFontSize(this, 8.25f), Font.Style, Font.Unit, Font.GdiCharSet, Font.GdiVerticalFont);
+ InitializeComponent();
+ }
+
+ private void InitializeComponent()
+ {
+ Font = new Font(Font.Name, ControlsUtils.GetFontSize(this, 8.25f), Font.Style, Font.Unit,
+ Font.GdiCharSet, Font.GdiVerticalFont);
AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
BackColor = Color.FromArgb(255, 32, 32, 32);
ForeColor = Color.FromArgb(255, 192, 192, 192);
}
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Controls/TextBoxMonospace.cs b/VAR.Toolbox/Controls/TextBoxMonospace.cs
index 020b0f5..6228b2a 100644
--- a/VAR.Toolbox/Controls/TextBoxMonospace.cs
+++ b/VAR.Toolbox/Controls/TextBoxMonospace.cs
@@ -6,6 +6,11 @@ namespace VAR.Toolbox.Controls
public class TextBoxMonospace : TextBox
{
public TextBoxMonospace()
+ {
+ InitializeComponent();
+ }
+
+ private void InitializeComponent()
{
Font = new Font("Consolas", ControlsUtils.GetFontSize(this, 9.0f));
BackColor = Color.FromArgb(255, 0, 0, 0);
@@ -13,4 +18,4 @@ namespace VAR.Toolbox.Controls
BorderStyle = BorderStyle.FixedSingle;
}
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Controls/TextBoxNormal.cs b/VAR.Toolbox/Controls/TextBoxNormal.cs
index b650a5b..7fc7612 100644
--- a/VAR.Toolbox/Controls/TextBoxNormal.cs
+++ b/VAR.Toolbox/Controls/TextBoxNormal.cs
@@ -6,6 +6,11 @@ namespace VAR.Toolbox.Controls
public class TextBoxNormal : TextBox
{
public TextBoxNormal()
+ {
+ InitializeComponent();
+ }
+
+ private void InitializeComponent()
{
Font = new Font("Microsoft Sans Serif", ControlsUtils.GetFontSize(this, 8.25f));
BackColor = Color.FromArgb(255, 0, 0, 0);
@@ -13,4 +18,4 @@ namespace VAR.Toolbox.Controls
BorderStyle = BorderStyle.FixedSingle;
}
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Images/toolbox.svg b/VAR.Toolbox/Images/toolbox.svg
index 9541c7c..da55612 100644
--- a/VAR.Toolbox/Images/toolbox.svg
+++ b/VAR.Toolbox/Images/toolbox.svg
@@ -2,234 +2,234 @@
diff --git a/VAR.Toolbox/Program.cs b/VAR.Toolbox/Program.cs
index 8c87c0e..ae806e2 100644
--- a/VAR.Toolbox/Program.cs
+++ b/VAR.Toolbox/Program.cs
@@ -23,8 +23,11 @@ namespace VAR.Toolbox
string executingAssemblyPath = Assembly.GetExecutingAssembly().Location;
string dirName = Path.GetDirectoryName(executingAssemblyPath);
string execName = Path.GetFileNameWithoutExtension(executingAssemblyPath);
- string[] assemblyPaths = Directory.GetFiles(dirName, string.Format("{0}*.dll", execName));
- foreach (string assemblyPath in assemblyPaths) { AssemblyLoadFull(assemblyPath); }
+ if (dirName != null)
+ {
+ string[] assemblyPaths = Directory.GetFiles(dirName, $"{execName}*.dll");
+ foreach (string assemblyPath in assemblyPaths) { AssemblyLoadFull(assemblyPath); }
+ }
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
@@ -45,19 +48,25 @@ namespace VAR.Toolbox
Application.Exit();
}
- private static Assembly AssemblyLoadFull(string fullPath, List allAssemblyNames = null)
+ private static void AssemblyLoadFull(string fullPath, List allAssemblyNames = null)
{
if (allAssemblyNames == null)
{
allAssemblyNames = AppDomain.CurrentDomain.GetAssemblies().Select(a => a.GetName().Name).ToList();
}
+
Assembly asm = null;
try
{
asm = Assembly.LoadFrom(fullPath);
}
- catch (Exception) { }
- if (asm == null) { return null; }
+ catch (Exception)
+ {
+ // ignored
+ }
+
+ if (asm == null) { return; }
+
allAssemblyNames.Add(asm.GetName().Name);
// Load dependencies
@@ -67,13 +76,10 @@ namespace VAR.Toolbox
{
if (allAssemblyNames.Contains(asmName.Name) == false)
{
- string fullPathAux = string.Format("{0}/{1}.dll", dirPath, asmName.Name);
- Assembly asmAux = AssemblyLoadFull(fullPathAux, allAssemblyNames);
+ string fullPathAux = $"{dirPath}/{asmName.Name}.dll";
+ AssemblyLoadFull(fullPathAux, allAssemblyNames);
}
}
-
- return asm;
}
-
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/Properties/AssemblyInfo.cs b/VAR.Toolbox/Properties/AssemblyInfo.cs
index 8bd70bc..abb6cd7 100644
--- a/VAR.Toolbox/Properties/AssemblyInfo.cs
+++ b/VAR.Toolbox/Properties/AssemblyInfo.cs
@@ -12,4 +12,4 @@ using System.Runtime.InteropServices;
[assembly: ComVisible(false)]
[assembly: Guid("e8dab98d-4fd0-4d40-b29a-62b4c2fca4d7")]
-[assembly: AssemblyVersion("1.0.0.*")]
+[assembly: AssemblyVersion("1.0.0.*")]
\ No newline at end of file
diff --git a/VAR.Toolbox/UI/FrmDialogString.cs b/VAR.Toolbox/UI/FrmDialogString.cs
index 7f90e08..fafcc55 100644
--- a/VAR.Toolbox/UI/FrmDialogString.cs
+++ b/VAR.Toolbox/UI/FrmDialogString.cs
@@ -11,20 +11,20 @@ namespace VAR.Toolbox.UI
public string Title
{
- get { return base.Text; }
- set { Text = value; }
+ get => base.Text;
+ set => Text = value;
}
public string Description
{
- get { return lblDescription.Text; }
- set { lblDescription.Text = value; }
+ get => lblDescription.Text;
+ set => lblDescription.Text = value;
}
public string Value
{
- get { return txtValue.Text; }
- set { txtValue.Text = value; }
+ get => txtValue.Text;
+ set => txtValue.Text = value;
}
}
-}
+}
\ No newline at end of file
diff --git a/VAR.Toolbox/UI/FrmListBoxDialog.cs b/VAR.Toolbox/UI/FrmListBoxDialog.cs
index ddd91f7..892c935 100644
--- a/VAR.Toolbox/UI/FrmListBoxDialog.cs
+++ b/VAR.Toolbox/UI/FrmListBoxDialog.cs
@@ -1,4 +1,5 @@
using System.Collections.Generic;
+using System.Linq;
using System.Windows.Forms;
using VAR.Toolbox.Controls;
@@ -13,20 +14,17 @@ namespace VAR.Toolbox.UI
public string Title
{
- get { return base.Text; }
- set { Text = value; }
+ get => base.Text;
+ set => Text = value;
}
public void LoadItems(List items)
{
lsbItems.Items.Clear();
- lsbItems.Items.AddRange(items.ToArray());
+ lsbItems.Items.AddRange(items.ToArray