├── .gitattributes
├── .gitignore
├── App.config
├── Program.cs
├── Properties
├── AssemblyInfo.cs
├── Resources.Designer.cs
├── Resources.resx
├── Settings.Designer.cs
└── Settings.settings
├── README.md
├── RGBSync.csproj
├── RGBSyncV2.sln
├── Resources
└── RGBSyncLogo1.png
├── Settings.Designer.cs
├── Settings.cs
├── Settings.resx
├── SyncAuraBrush.cs
├── icon.ico
├── packages.config
└── screenshot.png
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | ## Ignore Visual Studio temporary files, build results, and
2 | ## files generated by popular Visual Studio add-ons.
3 | ##
4 | ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
5 |
6 | # User-specific files
7 | *.suo
8 | *.user
9 | *.userosscache
10 | *.sln.docstates
11 |
12 | # User-specific files (MonoDevelop/Xamarin Studio)
13 | *.userprefs
14 |
15 | # Build results
16 | [Dd]ebug/
17 | [Dd]ebugPublic/
18 | [Rr]elease/
19 | [Rr]eleases/
20 | x64/
21 | x86/
22 | bld/
23 | [Bb]in/
24 | [Oo]bj/
25 | [Ll]og/
26 |
27 | # Visual Studio 2015/2017 cache/options directory
28 | .vs/
29 | # Uncomment if you have tasks that create the project's static files in wwwroot
30 | #wwwroot/
31 |
32 | # Visual Studio 2017 auto generated files
33 | Generated\ Files/
34 |
35 | # MSTest test Results
36 | [Tt]est[Rr]esult*/
37 | [Bb]uild[Ll]og.*
38 |
39 | # NUNIT
40 | *.VisualState.xml
41 | TestResult.xml
42 |
43 | # Build Results of an ATL Project
44 | [Dd]ebugPS/
45 | [Rr]eleasePS/
46 | dlldata.c
47 |
48 | # Benchmark Results
49 | BenchmarkDotNet.Artifacts/
50 |
51 | # .NET Core
52 | project.lock.json
53 | project.fragment.lock.json
54 | artifacts/
55 | **/Properties/launchSettings.json
56 |
57 | # StyleCop
58 | StyleCopReport.xml
59 |
60 | # Files built by Visual Studio
61 | *_i.c
62 | *_p.c
63 | *_i.h
64 | *.ilk
65 | *.meta
66 | *.obj
67 | *.pch
68 | *.pdb
69 | *.pgc
70 | *.pgd
71 | *.rsp
72 | *.sbr
73 | *.tlb
74 | *.tli
75 | *.tlh
76 | *.tmp
77 | *.tmp_proj
78 | *.log
79 | *.vspscc
80 | *.vssscc
81 | .builds
82 | *.pidb
83 | *.svclog
84 | *.scc
85 |
86 | # Chutzpah Test files
87 | _Chutzpah*
88 |
89 | # Visual C++ cache files
90 | ipch/
91 | *.aps
92 | *.ncb
93 | *.opendb
94 | *.opensdf
95 | *.sdf
96 | *.cachefile
97 | *.VC.db
98 | *.VC.VC.opendb
99 |
100 | # Visual Studio profiler
101 | *.psess
102 | *.vsp
103 | *.vspx
104 | *.sap
105 |
106 | # Visual Studio Trace Files
107 | *.e2e
108 |
109 | # TFS 2012 Local Workspace
110 | $tf/
111 |
112 | # Guidance Automation Toolkit
113 | *.gpState
114 |
115 | # ReSharper is a .NET coding add-in
116 | _ReSharper*/
117 | *.[Rr]e[Ss]harper
118 | *.DotSettings.user
119 |
120 | # JustCode is a .NET coding add-in
121 | .JustCode
122 |
123 | # TeamCity is a build add-in
124 | _TeamCity*
125 |
126 | # DotCover is a Code Coverage Tool
127 | *.dotCover
128 |
129 | # AxoCover is a Code Coverage Tool
130 | .axoCover/*
131 | !.axoCover/settings.json
132 |
133 | # Visual Studio code coverage results
134 | *.coverage
135 | *.coveragexml
136 |
137 | # NCrunch
138 | _NCrunch_*
139 | .*crunch*.local.xml
140 | nCrunchTemp_*
141 |
142 | # MightyMoose
143 | *.mm.*
144 | AutoTest.Net/
145 |
146 | # Web workbench (sass)
147 | .sass-cache/
148 |
149 | # Installshield output folder
150 | [Ee]xpress/
151 |
152 | # DocProject is a documentation generator add-in
153 | DocProject/buildhelp/
154 | DocProject/Help/*.HxT
155 | DocProject/Help/*.HxC
156 | DocProject/Help/*.hhc
157 | DocProject/Help/*.hhk
158 | DocProject/Help/*.hhp
159 | DocProject/Help/Html2
160 | DocProject/Help/html
161 |
162 | # Click-Once directory
163 | publish/
164 |
165 | # Publish Web Output
166 | *.[Pp]ublish.xml
167 | *.azurePubxml
168 | # Note: Comment the next line if you want to checkin your web deploy settings,
169 | # but database connection strings (with potential passwords) will be unencrypted
170 | *.pubxml
171 | *.publishproj
172 |
173 | # Microsoft Azure Web App publish settings. Comment the next line if you want to
174 | # checkin your Azure Web App publish settings, but sensitive information contained
175 | # in these scripts will be unencrypted
176 | PublishScripts/
177 |
178 | # NuGet Packages
179 | *.nupkg
180 | # The packages folder can be ignored because of Package Restore
181 | **/[Pp]ackages/*
182 | # except build/, which is used as an MSBuild target.
183 | !**/[Pp]ackages/build/
184 | # Uncomment if necessary however generally it will be regenerated when needed
185 | #!**/[Pp]ackages/repositories.config
186 | # NuGet v3's project.json files produces more ignorable files
187 | *.nuget.props
188 | *.nuget.targets
189 |
190 | # Microsoft Azure Build Output
191 | csx/
192 | *.build.csdef
193 |
194 | # Microsoft Azure Emulator
195 | ecf/
196 | rcf/
197 |
198 | # Windows Store app package directories and files
199 | AppPackages/
200 | BundleArtifacts/
201 | Package.StoreAssociation.xml
202 | _pkginfo.txt
203 | *.appx
204 |
205 | # Visual Studio cache files
206 | # files ending in .cache can be ignored
207 | *.[Cc]ache
208 | # but keep track of directories ending in .cache
209 | !*.[Cc]ache/
210 |
211 | # Others
212 | ClientBin/
213 | ~$*
214 | *~
215 | *.dbmdl
216 | *.dbproj.schemaview
217 | *.jfm
218 | *.pfx
219 | *.publishsettings
220 | orleans.codegen.cs
221 |
222 | # Including strong name files can present a security risk
223 | # (https://github.com/github/gitignore/pull/2483#issue-259490424)
224 | #*.snk
225 |
226 | # Since there are multiple workflows, uncomment next line to ignore bower_components
227 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
228 | #bower_components/
229 |
230 | # RIA/Silverlight projects
231 | Generated_Code/
232 |
233 | # Backup & report files from converting an old project file
234 | # to a newer Visual Studio version. Backup files are not needed,
235 | # because we have git ;-)
236 | _UpgradeReport_Files/
237 | Backup*/
238 | UpgradeLog*.XML
239 | UpgradeLog*.htm
240 |
241 | # SQL Server files
242 | *.mdf
243 | *.ldf
244 | *.ndf
245 |
246 | # Business Intelligence projects
247 | *.rdl.data
248 | *.bim.layout
249 | *.bim_*.settings
250 |
251 | # Microsoft Fakes
252 | FakesAssemblies/
253 |
254 | # GhostDoc plugin setting file
255 | *.GhostDoc.xml
256 |
257 | # Node.js Tools for Visual Studio
258 | .ntvs_analysis.dat
259 | node_modules/
260 |
261 | # TypeScript v1 declaration files
262 | typings/
263 |
264 | # Visual Studio 6 build log
265 | *.plg
266 |
267 | # Visual Studio 6 workspace options file
268 | *.opt
269 |
270 | # Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
271 | *.vbw
272 |
273 | # Visual Studio LightSwitch build output
274 | **/*.HTMLClient/GeneratedArtifacts
275 | **/*.DesktopClient/GeneratedArtifacts
276 | **/*.DesktopClient/ModelManifest.xml
277 | **/*.Server/GeneratedArtifacts
278 | **/*.Server/ModelManifest.xml
279 | _Pvt_Extensions
280 |
281 | # Paket dependency manager
282 | .paket/paket.exe
283 | paket-files/
284 |
285 | # FAKE - F# Make
286 | .fake/
287 |
288 | # JetBrains Rider
289 | .idea/
290 | *.sln.iml
291 |
292 | # CodeRush
293 | .cr/
294 |
295 | # Python Tools for Visual Studio (PTVS)
296 | __pycache__/
297 | *.pyc
298 |
299 | # Cake - Uncomment if you are using it
300 | # tools/**
301 | # !tools/packages.config
302 |
303 | # Tabs Studio
304 | *.tss
305 |
306 | # Telerik's JustMock configuration file
307 | *.jmconfig
308 |
309 | # BizTalk build output
310 | *.btp.cs
311 | *.btm.cs
312 | *.odx.cs
313 | *.xsd.cs
314 |
315 | # OpenCover UI analysis results
316 | OpenCover/
317 |
318 | # Azure Stream Analytics local run output
319 | ASALocalRun/
320 |
321 | # MSBuild Binary and Structured Log
322 | *.binlog
323 |
324 |
--------------------------------------------------------------------------------
/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 | False
32 |
33 |
34 | False
35 |
36 |
37 | False
38 |
39 |
40 | False
41 |
42 |
43 | False
44 |
45 |
46 |
47 |
48 |
49 | True
50 |
51 |
52 | True
53 |
54 |
55 | False
56 |
57 |
58 | False
59 |
60 |
61 | False
62 |
63 |
64 | True
65 |
66 |
67 | False
68 |
69 |
70 | False
71 |
72 |
73 |
74 |
75 | True
76 |
77 |
78 | True
79 |
80 |
81 | True
82 |
83 |
84 | True
85 |
86 |
87 | False
88 |
89 |
90 |
91 |
92 |
93 | True
94 |
95 |
96 | True
97 |
98 |
99 | False
100 |
101 |
102 | False
103 |
104 |
105 | False
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
--------------------------------------------------------------------------------
/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Configuration;
4 | using System.Linq;
5 | using System.Threading;
6 | using System.Threading.Tasks;
7 | using System.Windows.Forms;
8 |
9 | namespace RGBSync
10 | {
11 | static class Program
12 | {
13 |
14 | private static Mutex mutex = null;
15 |
16 | ///
17 | /// The main entry point for the application.
18 | ///
19 | [STAThread]
20 | static void Main()
21 | {
22 | const string appName = "RGBSyncV2";
23 | bool createdNew;
24 | mutex = new Mutex(true, appName, out createdNew);
25 |
26 | if (!createdNew)
27 | {
28 | //app is already running! Exiting the application
29 | return;
30 | }
31 | Application.EnableVisualStyles();
32 | Application.SetCompatibleTextRenderingDefault(false);
33 | Application.Run(new Settings());
34 | }
35 | }
36 |
37 |
38 | }
39 |
--------------------------------------------------------------------------------
/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("RGBSync")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("Cyanlabs")]
12 | [assembly: AssemblyProduct("RGBSync")]
13 | [assembly: AssemblyCopyright("Copyright © Cyanlabs 2017")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("33fb2fc0-9778-4a46-913a-d870c2d4c37c")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.4.1.0")]
36 | [assembly: AssemblyFileVersion("1.4.1.0")]
37 |
--------------------------------------------------------------------------------
/Properties/Resources.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.42000
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace RGBSync.Properties {
12 | using System;
13 |
14 |
15 | ///
16 | /// A strongly-typed resource class, for looking up localized strings, etc.
17 | ///
18 | // This class was auto-generated by the StronglyTypedResourceBuilder
19 | // class via a tool like ResGen or Visual Studio.
20 | // To add or remove a member, edit your .ResX file then rerun ResGen
21 | // with the /str option, or rebuild your VS project.
22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")]
23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
25 | internal class Resources {
26 |
27 | private static global::System.Resources.ResourceManager resourceMan;
28 |
29 | private static global::System.Globalization.CultureInfo resourceCulture;
30 |
31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
32 | internal Resources() {
33 | }
34 |
35 | ///
36 | /// Returns the cached ResourceManager instance used by this class.
37 | ///
38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
39 | internal static global::System.Resources.ResourceManager ResourceManager {
40 | get {
41 | if (object.ReferenceEquals(resourceMan, null)) {
42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("RGBSync.Properties.Resources", typeof(Resources).Assembly);
43 | resourceMan = temp;
44 | }
45 | return resourceMan;
46 | }
47 | }
48 |
49 | ///
50 | /// Overrides the current thread's CurrentUICulture property for all
51 | /// resource lookups using this strongly typed resource class.
52 | ///
53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
54 | internal static global::System.Globalization.CultureInfo Culture {
55 | get {
56 | return resourceCulture;
57 | }
58 | set {
59 | resourceCulture = value;
60 | }
61 | }
62 |
63 | ///
64 | /// Looks up a localized resource of type System.Drawing.Bitmap.
65 | ///
66 | internal static System.Drawing.Bitmap RGBSyncLogo1 {
67 | get {
68 | object obj = ResourceManager.GetObject("RGBSyncLogo1", resourceCulture);
69 | return ((System.Drawing.Bitmap)(obj));
70 | }
71 | }
72 | }
73 | }
74 |
--------------------------------------------------------------------------------
/Properties/Resources.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
121 |
122 | ..\Resources\RGBSyncLogo1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
123 |
124 |
--------------------------------------------------------------------------------
/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.42000
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace RGBSync.Properties {
12 |
13 |
14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.5.0.0")]
16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
17 |
18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
19 |
20 | public static Settings Default {
21 | get {
22 | return defaultInstance;
23 | }
24 | }
25 |
26 | [global::System.Configuration.UserScopedSettingAttribute()]
27 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
28 | [global::System.Configuration.DefaultSettingValueAttribute("False")]
29 | public bool UseCorsairCue {
30 | get {
31 | return ((bool)(this["UseCorsairCue"]));
32 | }
33 | set {
34 | this["UseCorsairCue"] = value;
35 | }
36 | }
37 |
38 | [global::System.Configuration.UserScopedSettingAttribute()]
39 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
40 | [global::System.Configuration.DefaultSettingValueAttribute("False")]
41 | public bool UseCorsairLink {
42 | get {
43 | return ((bool)(this["UseCorsairLink"]));
44 | }
45 | set {
46 | this["UseCorsairLink"] = value;
47 | }
48 | }
49 |
50 | [global::System.Configuration.UserScopedSettingAttribute()]
51 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
52 | [global::System.Configuration.DefaultSettingValueAttribute("False")]
53 | public bool UseLogitech {
54 | get {
55 | return ((bool)(this["UseLogitech"]));
56 | }
57 | set {
58 | this["UseLogitech"] = value;
59 | }
60 | }
61 |
62 | [global::System.Configuration.UserScopedSettingAttribute()]
63 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
64 | [global::System.Configuration.DefaultSettingValueAttribute("False")]
65 | public bool UseAura {
66 | get {
67 | return ((bool)(this["UseAura"]));
68 | }
69 | set {
70 | this["UseAura"] = value;
71 | }
72 | }
73 |
74 | [global::System.Configuration.UserScopedSettingAttribute()]
75 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
76 | [global::System.Configuration.DefaultSettingValueAttribute("False")]
77 | public bool UsePhilips {
78 | get {
79 | return ((bool)(this["UsePhilips"]));
80 | }
81 | set {
82 | this["UsePhilips"] = value;
83 | }
84 | }
85 |
86 | [global::System.Configuration.UserScopedSettingAttribute()]
87 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
88 | [global::System.Configuration.DefaultSettingValueAttribute("")]
89 | public string PhilipsIP {
90 | get {
91 | return ((string)(this["PhilipsIP"]));
92 | }
93 | set {
94 | this["PhilipsIP"] = value;
95 | }
96 | }
97 |
98 | [global::System.Configuration.UserScopedSettingAttribute()]
99 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
100 | [global::System.Configuration.DefaultSettingValueAttribute("True")]
101 | public bool UseCorsairLinkCh1 {
102 | get {
103 | return ((bool)(this["UseCorsairLinkCh1"]));
104 | }
105 | set {
106 | this["UseCorsairLinkCh1"] = value;
107 | }
108 | }
109 |
110 | [global::System.Configuration.UserScopedSettingAttribute()]
111 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
112 | [global::System.Configuration.DefaultSettingValueAttribute("True")]
113 | public bool UseCorsairLinkCh2 {
114 | get {
115 | return ((bool)(this["UseCorsairLinkCh2"]));
116 | }
117 | set {
118 | this["UseCorsairLinkCh2"] = value;
119 | }
120 | }
121 |
122 | [global::System.Configuration.UserScopedSettingAttribute()]
123 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
124 | [global::System.Configuration.DefaultSettingValueAttribute("False")]
125 | public bool UseCM {
126 | get {
127 | return ((bool)(this["UseCM"]));
128 | }
129 | set {
130 | this["UseCM"] = value;
131 | }
132 | }
133 |
134 | [global::System.Configuration.UserScopedSettingAttribute()]
135 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
136 | [global::System.Configuration.DefaultSettingValueAttribute("False")]
137 | public bool UseNovation {
138 | get {
139 | return ((bool)(this["UseNovation"]));
140 | }
141 | set {
142 | this["UseNovation"] = value;
143 | }
144 | }
145 |
146 | [global::System.Configuration.UserScopedSettingAttribute()]
147 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
148 | [global::System.Configuration.DefaultSettingValueAttribute("False")]
149 | public bool UseMSI {
150 | get {
151 | return ((bool)(this["UseMSI"]));
152 | }
153 | set {
154 | this["UseMSI"] = value;
155 | }
156 | }
157 |
158 | [global::System.Configuration.UserScopedSettingAttribute()]
159 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
160 | [global::System.Configuration.DefaultSettingValueAttribute("True")]
161 | public bool ShowNotification {
162 | get {
163 | return ((bool)(this["ShowNotification"]));
164 | }
165 | set {
166 | this["ShowNotification"] = value;
167 | }
168 | }
169 |
170 | [global::System.Configuration.UserScopedSettingAttribute()]
171 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
172 | [global::System.Configuration.DefaultSettingValueAttribute("False")]
173 | public bool UseRazor {
174 | get {
175 | return ((bool)(this["UseRazor"]));
176 | }
177 | set {
178 | this["UseRazor"] = value;
179 | }
180 | }
181 |
182 | [global::System.Configuration.UserScopedSettingAttribute()]
183 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
184 | [global::System.Configuration.DefaultSettingValueAttribute("False")]
185 | public bool UseRazer {
186 | get {
187 | return ((bool)(this["UseRazer"]));
188 | }
189 | set {
190 | this["UseRazer"] = value;
191 | }
192 | }
193 | }
194 | }
195 |
--------------------------------------------------------------------------------
/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | False
7 |
8 |
9 | False
10 |
11 |
12 | False
13 |
14 |
15 | False
16 |
17 |
18 | False
19 |
20 |
21 |
22 |
23 |
24 | True
25 |
26 |
27 | True
28 |
29 |
30 | False
31 |
32 |
33 | False
34 |
35 |
36 | False
37 |
38 |
39 | True
40 |
41 |
42 | False
43 |
44 |
45 | False
46 |
47 |
48 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # RGBSync
2 |
3 | # This application is no longer being developed, Darth is working on a project called RGBSync+ (https://github.com/DarthAffe/RGBSyncPlus) which is much better than this, this was only made as a quick example and for my own use.
4 |
5 | A ready to use application for syncing RGB.NET capable devices. it uses Aura as the master and mimics that to all other RGB.NET capable devices and Corsair Link Lighting Node Pro / Commander Pro.
6 |
7 | PLEASE NOTE RGBSYNC DOES NOT WORK ON RYZEN BOARDS (ALL THE ONES TESTED ATLEAST) DUE TO THIS BUG - https://rog.asus.com/forum/showthread.php?97533-Calling-GetMBColor-returns-only-white
8 |
9 | ANY RYZEN MOTHERBOARD BUG REPORTS STATING IT'S ONLY WHITE/BLACK WILL BE CLOSED.
10 |
11 | 
12 |
13 | RGB.NET = https://github.com/DarthAffe/RGB.NET/
14 |
15 | HidSharp = https://github.com/jcoenraadts/hid-sharp
16 |
17 | Thanks to Zenairo for the bases of the code to control Corsair Link Lighting Node Pro / Commander Pro
18 |
19 | Supported Devices
20 |
21 | - Corsair Cue
22 | - Corsair Link
23 | - Asus Aura (SyncBack Source)
24 | - MSI
25 | - Cooler Master
26 | - Logitech
27 | - Novation
28 |
29 | Any RGB.NET supported devices can be added relatively easily, just raise a issue.
30 |
--------------------------------------------------------------------------------
/RGBSync.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {33FB2FC0-9778-4A46-913A-D870C2D4C37C}
8 | WinExe
9 | RGBSync
10 | RGBSync
11 | v4.5.2
12 | 512
13 |
14 |
15 |
16 |
17 |
18 | x86
19 | true
20 | full
21 | false
22 | bin\Debug\
23 | DEBUG;TRACE
24 | prompt
25 | 4
26 |
27 |
28 | x86
29 | pdbonly
30 | true
31 | bin\Release\
32 | TRACE
33 | prompt
34 | 4
35 |
36 |
37 | icon.ico
38 |
39 |
40 |
41 | packages\HIDSharp.Standard.1.5.0\lib\net35\HidSharp.dll
42 |
43 |
44 | packages\RGB.NET.Brushes.0.0.1.51\lib\net45\RGB.NET.Brushes.dll
45 |
46 |
47 | packages\RGB.NET.Core.0.0.1.51\lib\net45\RGB.NET.Core.dll
48 |
49 |
50 | packages\RGB.NET.Decorators.0.0.1.51\lib\net45\RGB.NET.Decorators.dll
51 |
52 |
53 | packages\RGB.NET.Devices.Asus.0.0.1.51\lib\net45\RGB.NET.Devices.Asus.dll
54 |
55 |
56 | packages\RGB.NET.Devices.CoolerMaster.0.0.1.51\lib\net45\RGB.NET.Devices.CoolerMaster.dll
57 |
58 |
59 | packages\RGB.NET.Devices.Corsair.0.0.1.51\lib\net45\RGB.NET.Devices.Corsair.dll
60 |
61 |
62 | packages\RGB.NET.Devices.Logitech.0.0.1.50\lib\net45\RGB.NET.Devices.Logitech.dll
63 |
64 |
65 | packages\RGB.NET.Devices.Msi.0.0.1.35\lib\net45\RGB.NET.Devices.Msi.dll
66 |
67 |
68 | packages\RGB.NET.Devices.Novation.0.0.1.51\lib\net45\RGB.NET.Devices.Novation.dll
69 |
70 |
71 | packages\RGB.NET.Devices.Razer.0.0.1.51\lib\net45\RGB.NET.Devices.Razer.dll
72 |
73 |
74 | packages\RGB.NET.Groups.0.0.1.51\lib\net45\RGB.NET.Groups.dll
75 |
76 |
77 | packages\Sanford.Multimedia.Midi.6.6.0\lib\net20\Sanford.Multimedia.Midi.dll
78 |
79 |
80 |
81 |
82 |
83 | packages\System.ValueTuple.4.4.0\lib\netstandard1.0\System.ValueTuple.dll
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 | Form
97 |
98 |
99 | Settings.cs
100 |
101 |
102 |
103 |
104 |
105 | Settings.cs
106 |
107 |
108 | ResXFileCodeGenerator
109 | Resources.Designer.cs
110 | Designer
111 |
112 |
113 | True
114 | Resources.resx
115 | True
116 |
117 |
118 |
119 | SettingsSingleFileGenerator
120 | Settings.Designer.cs
121 |
122 |
123 | True
124 | Settings.settings
125 | True
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 | {670a630b-a2d1-459b-9a4a-e44d09f13dc7}
138 | RGB.NET.Devices.CorsairLink
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 | This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
154 |
155 |
156 |
157 |
158 |
--------------------------------------------------------------------------------
/RGBSyncV2.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 15
4 | VisualStudioVersion = 15.0.26730.10
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RGBSync", "RGBSync.csproj", "{33FB2FC0-9778-4A46-913A-D870C2D4C37C}"
7 | EndProject
8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RGB.NET.Devices.CorsairLink", "..\RGB.NET.Devices.CorsairLink\RGB.NET.Devices.CorsairLink.csproj", "{670A630B-A2D1-459B-9A4A-E44D09F13DC7}"
9 | EndProject
10 | Global
11 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
12 | Debug|Any CPU = Debug|Any CPU
13 | Release|Any CPU = Release|Any CPU
14 | EndGlobalSection
15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
16 | {33FB2FC0-9778-4A46-913A-D870C2D4C37C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
17 | {33FB2FC0-9778-4A46-913A-D870C2D4C37C}.Debug|Any CPU.Build.0 = Debug|Any CPU
18 | {33FB2FC0-9778-4A46-913A-D870C2D4C37C}.Release|Any CPU.ActiveCfg = Release|Any CPU
19 | {33FB2FC0-9778-4A46-913A-D870C2D4C37C}.Release|Any CPU.Build.0 = Release|Any CPU
20 | {670A630B-A2D1-459B-9A4A-E44D09F13DC7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
21 | {670A630B-A2D1-459B-9A4A-E44D09F13DC7}.Debug|Any CPU.Build.0 = Debug|Any CPU
22 | {670A630B-A2D1-459B-9A4A-E44D09F13DC7}.Release|Any CPU.ActiveCfg = Release|Any CPU
23 | {670A630B-A2D1-459B-9A4A-E44D09F13DC7}.Release|Any CPU.Build.0 = Release|Any CPU
24 | EndGlobalSection
25 | GlobalSection(SolutionProperties) = preSolution
26 | HideSolutionNode = FALSE
27 | EndGlobalSection
28 | GlobalSection(ExtensibilityGlobals) = postSolution
29 | SolutionGuid = {1CE94F3B-18E3-4710-B280-4E4A1C6AB3B7}
30 | EndGlobalSection
31 | EndGlobal
32 |
--------------------------------------------------------------------------------
/Resources/RGBSyncLogo1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cyanlabs/RGBSync/bfd3dba4a97fc3a0b08f1112a20886a6f5f9613e/Resources/RGBSyncLogo1.png
--------------------------------------------------------------------------------
/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace RGBSync
2 | {
3 | partial class Settings
4 | {
5 | ///
6 | /// Required designer variable.
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// Clean up any resources being used.
12 | ///
13 | /// true if managed resources should be disposed; otherwise, false.
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region Windows Form Designer generated code
24 |
25 | ///
26 | /// Required method for Designer support - do not modify
27 | /// the contents of this method with the code editor.
28 | ///
29 | private void InitializeComponent()
30 | {
31 | this.components = new System.ComponentModel.Container();
32 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Settings));
33 | this.notifyIcon1 = new System.Windows.Forms.NotifyIcon(this.components);
34 | this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components);
35 | this.settiingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
36 | this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
37 | this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
38 | this.pictureBox1 = new System.Windows.Forms.PictureBox();
39 | this.BtnSave = new System.Windows.Forms.Button();
40 | this.tabControl1 = new System.Windows.Forms.TabControl();
41 | this.tabGeneral = new System.Windows.Forms.TabPage();
42 | this.tabCorsairLink = new System.Windows.Forms.TabPage();
43 | this.GrpLink1 = new System.Windows.Forms.GroupBox();
44 | this.LblLinkChDesc = new System.Windows.Forms.Label();
45 | this.GrpLink2 = new System.Windows.Forms.GroupBox();
46 | this.NumLinkCh1Amount = new System.Windows.Forms.NumericUpDown();
47 | this.LblLinkCh1Amount = new System.Windows.Forms.Label();
48 | this.LblLinkCh1Type = new System.Windows.Forms.Label();
49 | this.DDLinkCh1Type = new System.Windows.Forms.ComboBox();
50 | this.GrpLink3 = new System.Windows.Forms.GroupBox();
51 | this.NumLinkCh2Amount = new System.Windows.Forms.NumericUpDown();
52 | this.LblLinkCh2Amount = new System.Windows.Forms.Label();
53 | this.LblLinkCh2Type = new System.Windows.Forms.Label();
54 | this.DDLinkCh2Type = new System.Windows.Forms.ComboBox();
55 | this.LblCopyright = new System.Windows.Forms.Label();
56 | this.chkRazer = new System.Windows.Forms.CheckBox();
57 | this.chkCM = new System.Windows.Forms.CheckBox();
58 | this.chkMSI = new System.Windows.Forms.CheckBox();
59 | this.chkShowNotification = new System.Windows.Forms.CheckBox();
60 | this.chkNovation = new System.Windows.Forms.CheckBox();
61 | this.chkCorsairCue = new System.Windows.Forms.CheckBox();
62 | this.chkLogitech = new System.Windows.Forms.CheckBox();
63 | this.chkCorsairLink = new System.Windows.Forms.CheckBox();
64 | this.ChkLinkCh2 = new System.Windows.Forms.CheckBox();
65 | this.ChkLinkCh1 = new System.Windows.Forms.CheckBox();
66 | this.contextMenuStrip1.SuspendLayout();
67 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
68 | this.tabControl1.SuspendLayout();
69 | this.tabGeneral.SuspendLayout();
70 | this.tabCorsairLink.SuspendLayout();
71 | this.GrpLink1.SuspendLayout();
72 | this.GrpLink2.SuspendLayout();
73 | ((System.ComponentModel.ISupportInitialize)(this.NumLinkCh1Amount)).BeginInit();
74 | this.GrpLink3.SuspendLayout();
75 | ((System.ComponentModel.ISupportInitialize)(this.NumLinkCh2Amount)).BeginInit();
76 | this.SuspendLayout();
77 | //
78 | // notifyIcon1
79 | //
80 | this.notifyIcon1.BalloonTipIcon = System.Windows.Forms.ToolTipIcon.Info;
81 | this.notifyIcon1.BalloonTipText = "RGBSync is active";
82 | this.notifyIcon1.BalloonTipTitle = "RGBSync";
83 | this.notifyIcon1.ContextMenuStrip = this.contextMenuStrip1;
84 | this.notifyIcon1.Icon = ((System.Drawing.Icon)(resources.GetObject("notifyIcon1.Icon")));
85 | this.notifyIcon1.Text = "RGBSync";
86 | this.notifyIcon1.Visible = true;
87 | this.notifyIcon1.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.notifyIcon1_MouseDoubleClick);
88 | //
89 | // contextMenuStrip1
90 | //
91 | this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
92 | this.settiingsToolStripMenuItem,
93 | this.toolStripSeparator1,
94 | this.exitToolStripMenuItem});
95 | this.contextMenuStrip1.Name = "contextMenuStrip1";
96 | this.contextMenuStrip1.Size = new System.Drawing.Size(117, 54);
97 | //
98 | // settiingsToolStripMenuItem
99 | //
100 | this.settiingsToolStripMenuItem.Name = "settiingsToolStripMenuItem";
101 | this.settiingsToolStripMenuItem.Size = new System.Drawing.Size(116, 22);
102 | this.settiingsToolStripMenuItem.Text = "&Settings";
103 | this.settiingsToolStripMenuItem.Click += new System.EventHandler(this.settiingsToolStripMenuItem_Click);
104 | //
105 | // toolStripSeparator1
106 | //
107 | this.toolStripSeparator1.Name = "toolStripSeparator1";
108 | this.toolStripSeparator1.Size = new System.Drawing.Size(113, 6);
109 | //
110 | // exitToolStripMenuItem
111 | //
112 | this.exitToolStripMenuItem.Name = "exitToolStripMenuItem";
113 | this.exitToolStripMenuItem.Size = new System.Drawing.Size(116, 22);
114 | this.exitToolStripMenuItem.Text = "E&xit";
115 | this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click);
116 | //
117 | // pictureBox1
118 | //
119 | this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
120 | this.pictureBox1.Image = global::RGBSync.Properties.Resources.RGBSyncLogo1;
121 | this.pictureBox1.Location = new System.Drawing.Point(12, 12);
122 | this.pictureBox1.Name = "pictureBox1";
123 | this.pictureBox1.Size = new System.Drawing.Size(388, 82);
124 | this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
125 | this.pictureBox1.TabIndex = 0;
126 | this.pictureBox1.TabStop = false;
127 | //
128 | // BtnSave
129 | //
130 | this.BtnSave.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
131 | this.BtnSave.Location = new System.Drawing.Point(270, 387);
132 | this.BtnSave.Name = "BtnSave";
133 | this.BtnSave.Size = new System.Drawing.Size(125, 26);
134 | this.BtnSave.TabIndex = 2;
135 | this.BtnSave.Text = "Save Settings";
136 | this.BtnSave.UseVisualStyleBackColor = true;
137 | this.BtnSave.Click += new System.EventHandler(this.BtnSave_Click);
138 | //
139 | // tabControl1
140 | //
141 | this.tabControl1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
142 | | System.Windows.Forms.AnchorStyles.Left)
143 | | System.Windows.Forms.AnchorStyles.Right)));
144 | this.tabControl1.Controls.Add(this.tabGeneral);
145 | this.tabControl1.Controls.Add(this.tabCorsairLink);
146 | this.tabControl1.Location = new System.Drawing.Point(12, 100);
147 | this.tabControl1.Name = "tabControl1";
148 | this.tabControl1.SelectedIndex = 0;
149 | this.tabControl1.Size = new System.Drawing.Size(386, 287);
150 | this.tabControl1.TabIndex = 3;
151 | //
152 | // tabGeneral
153 | //
154 | this.tabGeneral.Controls.Add(this.chkRazer);
155 | this.tabGeneral.Controls.Add(this.chkCM);
156 | this.tabGeneral.Controls.Add(this.chkMSI);
157 | this.tabGeneral.Controls.Add(this.chkShowNotification);
158 | this.tabGeneral.Controls.Add(this.chkNovation);
159 | this.tabGeneral.Controls.Add(this.chkCorsairCue);
160 | this.tabGeneral.Controls.Add(this.chkLogitech);
161 | this.tabGeneral.Controls.Add(this.chkCorsairLink);
162 | this.tabGeneral.Location = new System.Drawing.Point(4, 22);
163 | this.tabGeneral.Name = "tabGeneral";
164 | this.tabGeneral.Padding = new System.Windows.Forms.Padding(3);
165 | this.tabGeneral.Size = new System.Drawing.Size(378, 261);
166 | this.tabGeneral.TabIndex = 0;
167 | this.tabGeneral.Text = "General";
168 | this.tabGeneral.UseVisualStyleBackColor = true;
169 | //
170 | // tabCorsairLink
171 | //
172 | this.tabCorsairLink.Controls.Add(this.GrpLink1);
173 | this.tabCorsairLink.Controls.Add(this.GrpLink2);
174 | this.tabCorsairLink.Controls.Add(this.GrpLink3);
175 | this.tabCorsairLink.Location = new System.Drawing.Point(4, 22);
176 | this.tabCorsairLink.Name = "tabCorsairLink";
177 | this.tabCorsairLink.Padding = new System.Windows.Forms.Padding(3);
178 | this.tabCorsairLink.Size = new System.Drawing.Size(378, 261);
179 | this.tabCorsairLink.TabIndex = 1;
180 | this.tabCorsairLink.Text = "WIP";
181 | this.tabCorsairLink.UseVisualStyleBackColor = true;
182 | //
183 | // GrpLink1
184 | //
185 | this.GrpLink1.Controls.Add(this.LblLinkChDesc);
186 | this.GrpLink1.Controls.Add(this.ChkLinkCh2);
187 | this.GrpLink1.Controls.Add(this.ChkLinkCh1);
188 | this.GrpLink1.Location = new System.Drawing.Point(6, 6);
189 | this.GrpLink1.Name = "GrpLink1";
190 | this.GrpLink1.Size = new System.Drawing.Size(366, 67);
191 | this.GrpLink1.TabIndex = 1;
192 | this.GrpLink1.TabStop = false;
193 | this.GrpLink1.Text = "Channels";
194 | //
195 | // LblLinkChDesc
196 | //
197 | this.LblLinkChDesc.AutoSize = true;
198 | this.LblLinkChDesc.Location = new System.Drawing.Point(25, 23);
199 | this.LblLinkChDesc.Name = "LblLinkChDesc";
200 | this.LblLinkChDesc.Size = new System.Drawing.Size(137, 13);
201 | this.LblLinkChDesc.TabIndex = 0;
202 | this.LblLinkChDesc.Text = "Which channels to enable?";
203 | this.LblLinkChDesc.Visible = false;
204 | //
205 | // GrpLink2
206 | //
207 | this.GrpLink2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
208 | this.GrpLink2.Controls.Add(this.NumLinkCh1Amount);
209 | this.GrpLink2.Controls.Add(this.LblLinkCh1Amount);
210 | this.GrpLink2.Controls.Add(this.LblLinkCh1Type);
211 | this.GrpLink2.Controls.Add(this.DDLinkCh1Type);
212 | this.GrpLink2.Enabled = false;
213 | this.GrpLink2.Location = new System.Drawing.Point(6, 76);
214 | this.GrpLink2.Name = "GrpLink2";
215 | this.GrpLink2.Size = new System.Drawing.Size(366, 88);
216 | this.GrpLink2.TabIndex = 0;
217 | this.GrpLink2.TabStop = false;
218 | this.GrpLink2.Text = "Channel 1";
219 | this.GrpLink2.Visible = false;
220 | //
221 | // NumLinkCh1Amount
222 | //
223 | this.NumLinkCh1Amount.Location = new System.Drawing.Point(286, 59);
224 | this.NumLinkCh1Amount.Maximum = new decimal(new int[] {
225 | 6,
226 | 0,
227 | 0,
228 | 0});
229 | this.NumLinkCh1Amount.Minimum = new decimal(new int[] {
230 | 1,
231 | 0,
232 | 0,
233 | 0});
234 | this.NumLinkCh1Amount.Name = "NumLinkCh1Amount";
235 | this.NumLinkCh1Amount.Size = new System.Drawing.Size(74, 20);
236 | this.NumLinkCh1Amount.TabIndex = 3;
237 | this.NumLinkCh1Amount.Value = new decimal(new int[] {
238 | 1,
239 | 0,
240 | 0,
241 | 0});
242 | //
243 | // LblLinkCh1Amount
244 | //
245 | this.LblLinkCh1Amount.AutoSize = true;
246 | this.LblLinkCh1Amount.Location = new System.Drawing.Point(23, 61);
247 | this.LblLinkCh1Amount.Name = "LblLinkCh1Amount";
248 | this.LblLinkCh1Amount.Size = new System.Drawing.Size(233, 13);
249 | this.LblLinkCh1Amount.TabIndex = 2;
250 | this.LblLinkCh1Amount.Text = "How many of the above device are connected?\r\n";
251 | //
252 | // LblLinkCh1Type
253 | //
254 | this.LblLinkCh1Type.AutoSize = true;
255 | this.LblLinkCh1Type.Location = new System.Drawing.Point(23, 26);
256 | this.LblLinkCh1Type.Name = "LblLinkCh1Type";
257 | this.LblLinkCh1Type.Size = new System.Drawing.Size(210, 13);
258 | this.LblLinkCh1Type.TabIndex = 1;
259 | this.LblLinkCh1Type.Text = "What device is connected to this channel?";
260 | //
261 | // DDLinkCh1Type
262 | //
263 | this.DDLinkCh1Type.FormattingEnabled = true;
264 | this.DDLinkCh1Type.Items.AddRange(new object[] {
265 | "HD Fans",
266 | "LED Strips"});
267 | this.DDLinkCh1Type.Location = new System.Drawing.Point(239, 23);
268 | this.DDLinkCh1Type.Name = "DDLinkCh1Type";
269 | this.DDLinkCh1Type.Size = new System.Drawing.Size(121, 21);
270 | this.DDLinkCh1Type.TabIndex = 0;
271 | //
272 | // GrpLink3
273 | //
274 | this.GrpLink3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
275 | this.GrpLink3.Controls.Add(this.NumLinkCh2Amount);
276 | this.GrpLink3.Controls.Add(this.LblLinkCh2Amount);
277 | this.GrpLink3.Controls.Add(this.LblLinkCh2Type);
278 | this.GrpLink3.Controls.Add(this.DDLinkCh2Type);
279 | this.GrpLink3.Enabled = false;
280 | this.GrpLink3.Location = new System.Drawing.Point(6, 167);
281 | this.GrpLink3.Name = "GrpLink3";
282 | this.GrpLink3.Size = new System.Drawing.Size(366, 88);
283 | this.GrpLink3.TabIndex = 1;
284 | this.GrpLink3.TabStop = false;
285 | this.GrpLink3.Text = "Channel 2";
286 | this.GrpLink3.Visible = false;
287 | //
288 | // NumLinkCh2Amount
289 | //
290 | this.NumLinkCh2Amount.Location = new System.Drawing.Point(286, 59);
291 | this.NumLinkCh2Amount.Maximum = new decimal(new int[] {
292 | 6,
293 | 0,
294 | 0,
295 | 0});
296 | this.NumLinkCh2Amount.Minimum = new decimal(new int[] {
297 | 1,
298 | 0,
299 | 0,
300 | 0});
301 | this.NumLinkCh2Amount.Name = "NumLinkCh2Amount";
302 | this.NumLinkCh2Amount.Size = new System.Drawing.Size(74, 20);
303 | this.NumLinkCh2Amount.TabIndex = 3;
304 | this.NumLinkCh2Amount.Value = new decimal(new int[] {
305 | 1,
306 | 0,
307 | 0,
308 | 0});
309 | //
310 | // LblLinkCh2Amount
311 | //
312 | this.LblLinkCh2Amount.AutoSize = true;
313 | this.LblLinkCh2Amount.Location = new System.Drawing.Point(23, 61);
314 | this.LblLinkCh2Amount.Name = "LblLinkCh2Amount";
315 | this.LblLinkCh2Amount.Size = new System.Drawing.Size(233, 13);
316 | this.LblLinkCh2Amount.TabIndex = 2;
317 | this.LblLinkCh2Amount.Text = "How many of the above device are connected?\r\n";
318 | //
319 | // LblLinkCh2Type
320 | //
321 | this.LblLinkCh2Type.AutoSize = true;
322 | this.LblLinkCh2Type.Location = new System.Drawing.Point(23, 26);
323 | this.LblLinkCh2Type.Name = "LblLinkCh2Type";
324 | this.LblLinkCh2Type.Size = new System.Drawing.Size(210, 13);
325 | this.LblLinkCh2Type.TabIndex = 1;
326 | this.LblLinkCh2Type.Text = "What device is connected to this channel?";
327 | //
328 | // DDLinkCh2Type
329 | //
330 | this.DDLinkCh2Type.FormattingEnabled = true;
331 | this.DDLinkCh2Type.Items.AddRange(new object[] {
332 | "HD Fans",
333 | "LED Strips"});
334 | this.DDLinkCh2Type.Location = new System.Drawing.Point(239, 23);
335 | this.DDLinkCh2Type.Name = "DDLinkCh2Type";
336 | this.DDLinkCh2Type.Size = new System.Drawing.Size(121, 21);
337 | this.DDLinkCh2Type.TabIndex = 0;
338 | //
339 | // LblCopyright
340 | //
341 | this.LblCopyright.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
342 | this.LblCopyright.AutoSize = true;
343 | this.LblCopyright.Location = new System.Drawing.Point(9, 394);
344 | this.LblCopyright.Name = "LblCopyright";
345 | this.LblCopyright.Size = new System.Drawing.Size(252, 13);
346 | this.LblCopyright.TabIndex = 5;
347 | this.LblCopyright.Text = "Copyright © Cyanlabs 2017 - Powered by RGB.NET";
348 | //
349 | // chkRazer
350 | //
351 | this.chkRazer.AutoSize = true;
352 | this.chkRazer.Checked = global::RGBSync.Properties.Settings.Default.UseRazer;
353 | this.chkRazer.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::RGBSync.Properties.Settings.Default, "UseRazer", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
354 | this.chkRazer.Location = new System.Drawing.Point(6, 75);
355 | this.chkRazer.Name = "chkRazer";
356 | this.chkRazer.Size = new System.Drawing.Size(118, 17);
357 | this.chkRazer.TabIndex = 5;
358 | this.chkRazer.Text = "Use Razer Devices";
359 | this.chkRazer.UseVisualStyleBackColor = true;
360 | //
361 | // chkCM
362 | //
363 | this.chkCM.AutoSize = true;
364 | this.chkCM.Checked = global::RGBSync.Properties.Settings.Default.UseCM;
365 | this.chkCM.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::RGBSync.Properties.Settings.Default, "UseCM", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
366 | this.chkCM.Location = new System.Drawing.Point(187, 52);
367 | this.chkCM.Name = "chkCM";
368 | this.chkCM.Size = new System.Drawing.Size(152, 17);
369 | this.chkCM.TabIndex = 4;
370 | this.chkCM.Text = "Use CoolerMaster Devices";
371 | this.chkCM.UseVisualStyleBackColor = true;
372 | //
373 | // chkMSI
374 | //
375 | this.chkMSI.AutoSize = true;
376 | this.chkMSI.Checked = global::RGBSync.Properties.Settings.Default.UseMSI;
377 | this.chkMSI.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::RGBSync.Properties.Settings.Default, "UseMSI", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
378 | this.chkMSI.Location = new System.Drawing.Point(187, 29);
379 | this.chkMSI.Name = "chkMSI";
380 | this.chkMSI.Size = new System.Drawing.Size(109, 17);
381 | this.chkMSI.TabIndex = 4;
382 | this.chkMSI.Text = "Use MSI Devices";
383 | this.chkMSI.UseVisualStyleBackColor = true;
384 | //
385 | // chkShowNotification
386 | //
387 | this.chkShowNotification.AutoSize = true;
388 | this.chkShowNotification.Checked = global::RGBSync.Properties.Settings.Default.ShowNotification;
389 | this.chkShowNotification.CheckState = System.Windows.Forms.CheckState.Checked;
390 | this.chkShowNotification.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::RGBSync.Properties.Settings.Default, "ShowNotification", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
391 | this.chkShowNotification.Location = new System.Drawing.Point(93, 110);
392 | this.chkShowNotification.Name = "chkShowNotification";
393 | this.chkShowNotification.Size = new System.Drawing.Size(161, 17);
394 | this.chkShowNotification.TabIndex = 4;
395 | this.chkShowNotification.Text = "Show Notifcation On Startup";
396 | this.chkShowNotification.UseVisualStyleBackColor = true;
397 | //
398 | // chkNovation
399 | //
400 | this.chkNovation.AutoSize = true;
401 | this.chkNovation.Checked = global::RGBSync.Properties.Settings.Default.UseNovation;
402 | this.chkNovation.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::RGBSync.Properties.Settings.Default, "UseNovation", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
403 | this.chkNovation.Location = new System.Drawing.Point(187, 6);
404 | this.chkNovation.Name = "chkNovation";
405 | this.chkNovation.Size = new System.Drawing.Size(133, 17);
406 | this.chkNovation.TabIndex = 4;
407 | this.chkNovation.Text = "Use Novation Devices";
408 | this.chkNovation.UseVisualStyleBackColor = true;
409 | //
410 | // chkCorsairCue
411 | //
412 | this.chkCorsairCue.AutoSize = true;
413 | this.chkCorsairCue.Checked = global::RGBSync.Properties.Settings.Default.UseCorsairCue;
414 | this.chkCorsairCue.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::RGBSync.Properties.Settings.Default, "UseCorsairCue", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
415 | this.chkCorsairCue.Location = new System.Drawing.Point(6, 6);
416 | this.chkCorsairCue.Name = "chkCorsairCue";
417 | this.chkCorsairCue.Size = new System.Drawing.Size(144, 17);
418 | this.chkCorsairCue.TabIndex = 0;
419 | this.chkCorsairCue.Text = "Use Corsair Cue Devices";
420 | this.chkCorsairCue.UseVisualStyleBackColor = true;
421 | //
422 | // chkLogitech
423 | //
424 | this.chkLogitech.AutoSize = true;
425 | this.chkLogitech.Checked = global::RGBSync.Properties.Settings.Default.UseLogitech;
426 | this.chkLogitech.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::RGBSync.Properties.Settings.Default, "UseLogitech", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
427 | this.chkLogitech.Location = new System.Drawing.Point(6, 52);
428 | this.chkLogitech.Name = "chkLogitech";
429 | this.chkLogitech.Size = new System.Drawing.Size(131, 17);
430 | this.chkLogitech.TabIndex = 2;
431 | this.chkLogitech.Text = "Use Logitech Devices";
432 | this.chkLogitech.UseVisualStyleBackColor = true;
433 | //
434 | // chkCorsairLink
435 | //
436 | this.chkCorsairLink.AutoSize = true;
437 | this.chkCorsairLink.Checked = global::RGBSync.Properties.Settings.Default.UseCorsairLink;
438 | this.chkCorsairLink.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::RGBSync.Properties.Settings.Default, "UseCorsairLink", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
439 | this.chkCorsairLink.Location = new System.Drawing.Point(6, 29);
440 | this.chkCorsairLink.Name = "chkCorsairLink";
441 | this.chkCorsairLink.Size = new System.Drawing.Size(145, 17);
442 | this.chkCorsairLink.TabIndex = 1;
443 | this.chkCorsairLink.Text = "Use Corsair Link Devices";
444 | this.chkCorsairLink.UseVisualStyleBackColor = true;
445 | //
446 | // ChkLinkCh2
447 | //
448 | this.ChkLinkCh2.AutoSize = true;
449 | this.ChkLinkCh2.Checked = global::RGBSync.Properties.Settings.Default.UseCorsairLinkCh2;
450 | this.ChkLinkCh2.CheckState = System.Windows.Forms.CheckState.Checked;
451 | this.ChkLinkCh2.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::RGBSync.Properties.Settings.Default, "UseCorsairLinkCh2", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
452 | this.ChkLinkCh2.Location = new System.Drawing.Point(266, 23);
453 | this.ChkLinkCh2.Name = "ChkLinkCh2";
454 | this.ChkLinkCh2.Size = new System.Drawing.Size(74, 17);
455 | this.ChkLinkCh2.TabIndex = 1;
456 | this.ChkLinkCh2.Text = "Channel 2";
457 | this.ChkLinkCh2.UseVisualStyleBackColor = true;
458 | this.ChkLinkCh2.Visible = false;
459 | //
460 | // ChkLinkCh1
461 | //
462 | this.ChkLinkCh1.AutoSize = true;
463 | this.ChkLinkCh1.Checked = global::RGBSync.Properties.Settings.Default.UseCorsairLinkCh1;
464 | this.ChkLinkCh1.CheckState = System.Windows.Forms.CheckState.Checked;
465 | this.ChkLinkCh1.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::RGBSync.Properties.Settings.Default, "UseCorsairLinkCh1", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
466 | this.ChkLinkCh1.Location = new System.Drawing.Point(181, 23);
467 | this.ChkLinkCh1.Name = "ChkLinkCh1";
468 | this.ChkLinkCh1.Size = new System.Drawing.Size(74, 17);
469 | this.ChkLinkCh1.TabIndex = 0;
470 | this.ChkLinkCh1.Text = "Channel 1";
471 | this.ChkLinkCh1.UseVisualStyleBackColor = true;
472 | this.ChkLinkCh1.Visible = false;
473 | //
474 | // Settings
475 | //
476 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
477 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
478 | this.ClientSize = new System.Drawing.Size(410, 416);
479 | this.Controls.Add(this.LblCopyright);
480 | this.Controls.Add(this.tabControl1);
481 | this.Controls.Add(this.BtnSave);
482 | this.Controls.Add(this.pictureBox1);
483 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
484 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
485 | this.MaximizeBox = false;
486 | this.MinimizeBox = false;
487 | this.Name = "Settings";
488 | this.Opacity = 0D;
489 | this.ShowIcon = false;
490 | this.ShowInTaskbar = false;
491 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
492 | this.Text = "RGB Sync";
493 | this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Settings_FormClosing);
494 | this.Load += new System.EventHandler(this.Form1_Load);
495 | this.contextMenuStrip1.ResumeLayout(false);
496 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
497 | this.tabControl1.ResumeLayout(false);
498 | this.tabGeneral.ResumeLayout(false);
499 | this.tabGeneral.PerformLayout();
500 | this.tabCorsairLink.ResumeLayout(false);
501 | this.GrpLink1.ResumeLayout(false);
502 | this.GrpLink1.PerformLayout();
503 | this.GrpLink2.ResumeLayout(false);
504 | this.GrpLink2.PerformLayout();
505 | ((System.ComponentModel.ISupportInitialize)(this.NumLinkCh1Amount)).EndInit();
506 | this.GrpLink3.ResumeLayout(false);
507 | this.GrpLink3.PerformLayout();
508 | ((System.ComponentModel.ISupportInitialize)(this.NumLinkCh2Amount)).EndInit();
509 | this.ResumeLayout(false);
510 | this.PerformLayout();
511 |
512 | }
513 |
514 | #endregion
515 |
516 | private System.Windows.Forms.NotifyIcon notifyIcon1;
517 | private System.Windows.Forms.PictureBox pictureBox1;
518 | private System.Windows.Forms.CheckBox chkLogitech;
519 | private System.Windows.Forms.CheckBox chkCorsairLink;
520 | private System.Windows.Forms.CheckBox chkCorsairCue;
521 | private System.Windows.Forms.Button BtnSave;
522 | private System.Windows.Forms.TabControl tabControl1;
523 | private System.Windows.Forms.TabPage tabGeneral;
524 | private System.Windows.Forms.TabPage tabCorsairLink;
525 | private System.Windows.Forms.GroupBox GrpLink1;
526 | private System.Windows.Forms.Label LblLinkChDesc;
527 | private System.Windows.Forms.CheckBox ChkLinkCh2;
528 | private System.Windows.Forms.CheckBox ChkLinkCh1;
529 | private System.Windows.Forms.GroupBox GrpLink3;
530 | private System.Windows.Forms.NumericUpDown NumLinkCh2Amount;
531 | private System.Windows.Forms.Label LblLinkCh2Amount;
532 | private System.Windows.Forms.Label LblLinkCh2Type;
533 | private System.Windows.Forms.ComboBox DDLinkCh2Type;
534 | private System.Windows.Forms.GroupBox GrpLink2;
535 | private System.Windows.Forms.NumericUpDown NumLinkCh1Amount;
536 | private System.Windows.Forms.Label LblLinkCh1Amount;
537 | private System.Windows.Forms.Label LblLinkCh1Type;
538 | private System.Windows.Forms.ComboBox DDLinkCh1Type;
539 | private System.Windows.Forms.CheckBox chkCM;
540 | private System.Windows.Forms.CheckBox chkNovation;
541 | private System.Windows.Forms.CheckBox chkMSI;
542 | private System.Windows.Forms.ContextMenuStrip contextMenuStrip1;
543 | private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem;
544 | private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
545 | private System.Windows.Forms.ToolStripMenuItem settiingsToolStripMenuItem;
546 | private System.Windows.Forms.CheckBox chkShowNotification;
547 | private System.Windows.Forms.Label LblCopyright;
548 | private System.Windows.Forms.CheckBox chkRazer;
549 | }
550 | }
551 |
552 |
--------------------------------------------------------------------------------
/Settings.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Linq;
3 | using System.Windows.Forms;
4 | using RGB.NET.Core;
5 | using RGB.NET.Devices.Corsair;
6 | using RGB.NET.Devices.Logitech;
7 | using RGB.NET.Devices.Asus;
8 | using RGB.NET.Devices.Razer;
9 | using RGB.NET.Devices.CorsairLink;
10 | using RGB.NET.Groups;
11 | using RGB.NET.Devices.CoolerMaster;
12 | using RGB.NET.Devices.Novation;
13 | using RGB.NET.Devices.Msi;
14 | using System.Diagnostics;
15 | using System.Threading;
16 |
17 | namespace RGBSync
18 | {
19 | public partial class Settings : Form
20 | {
21 | private ILedGroup _ledGroup;
22 | private const LedId SYNC_LED = LedId.Mainboard1;
23 |
24 | public Settings()
25 | {
26 | InitializeComponent();
27 | }
28 |
29 | private void Form1_Load(object sender, EventArgs e)
30 | {
31 | this.ShowInTaskbar = false;
32 | this.WindowState = FormWindowState.Minimized;
33 | this.FormBorderStyle = FormBorderStyle.FixedToolWindow;
34 | if (chkShowNotification.Checked) notifyIcon1.ShowBalloonTip(5000, "RGBSync", "Click the notification icon to configure RGB Devices.", ToolTipIcon.Info);
35 | //Process.Start("C:\\Program Files (x86)\\ASUS\\AURA\\AURA.exe");
36 | //Thread.Sleep(1000);
37 | //Process.GetProcessesByName("Aura")[0].Kill();
38 |
39 | tabCorsairLink.Enabled = false;
40 | try
41 | {
42 |
43 | RGBSurface.Instance.LoadDevices(AsusDeviceProvider.Instance, RGBDeviceType.Mainboard, throwExceptions: true);
44 | if (chkCorsairCue.Checked) { RGBSurface.Instance.LoadDevices(CorsairDeviceProvider.Instance, exclusiveAccessIfPossible: true, throwExceptions: true); }
45 | if (chkLogitech.Checked) { RGBSurface.Instance.LoadDevices(LogitechDeviceProvider.Instance, exclusiveAccessIfPossible: true, throwExceptions: true); }
46 | if (chkCM.Checked) { RGBSurface.Instance.LoadDevices(CoolerMasterDeviceProvider.Instance, exclusiveAccessIfPossible: true, throwExceptions: true); }
47 | if (chkNovation.Checked) { RGBSurface.Instance.LoadDevices(NovationDeviceProvider.Instance, exclusiveAccessIfPossible: true, throwExceptions: true); }
48 | if (chkCorsairLink.Checked) { RGBSurface.Instance.LoadDevices(CorsairLinkDeviceProvider.Instance, exclusiveAccessIfPossible: false, throwExceptions: true); }
49 | if (chkMSI.Checked) { RGBSurface.Instance.LoadDevices(MsiDeviceProvider.Instance, exclusiveAccessIfPossible: true, throwExceptions: true); }
50 | if (chkRazer.Checked) { RGBSurface.Instance.LoadDevices(RazerDeviceProvider.Instance, exclusiveAccessIfPossible: true, throwExceptions: true); }
51 |
52 |
53 | AsusMainboardRGBDevice mainboard = RGBSurface.Instance.GetDevices().FirstOrDefault();
54 | if (mainboard == null)
55 | throw new ApplicationException("No mainboard to sync with is loaded.");
56 |
57 | mainboard.UpdateMode = DeviceUpdateMode.SyncBack;
58 |
59 | _ledGroup = new ListLedGroup(RGBSurface.Instance.Leds).Exclude(mainboard.ToArray());
60 | _ledGroup.Brush = new SyncBrush(((IRGBDevice)mainboard)[SYNC_LED]);
61 | TimerUpdateTrigger TimerTrigger = new TimerUpdateTrigger();
62 | TimerTrigger.UpdateFrequency = 0.05;
63 | RGBSurface.Instance.RegisterUpdateTrigger(TimerTrigger);
64 | TimerTrigger.Start();
65 |
66 |
67 | }
68 | catch (Exception ex)
69 | {
70 | throw ex;
71 | }
72 | }
73 |
74 | private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e)
75 | {
76 | this.Opacity = 100;
77 | this.WindowState = FormWindowState.Normal;
78 | this.Show();
79 | this.Focus();
80 | this.BringToFront();
81 | }
82 |
83 | private void BtnSave_Click(object sender, EventArgs e)
84 | {
85 | Properties.Settings.Default.Save();
86 | Application.Restart();
87 | }
88 |
89 | bool allowClosing = false;
90 |
91 | private void Settings_FormClosing(object sender, FormClosingEventArgs e)
92 | {
93 | if (e.CloseReason == CloseReason.UserClosing)
94 | {
95 | if (!allowClosing)
96 | {
97 | notifyIcon1.ShowBalloonTip(3000);
98 | this.Hide();
99 | e.Cancel = true;
100 | }
101 |
102 | }
103 | }
104 |
105 | private void exitToolStripMenuItem_Click(object sender, EventArgs e)
106 | {
107 | allowClosing = true;
108 | Application.Exit();
109 | }
110 |
111 | private void settiingsToolStripMenuItem_Click(object sender, EventArgs e)
112 | {
113 | this.Opacity = 100;
114 | this.WindowState = FormWindowState.Normal;
115 | this.Show();
116 | this.Focus();
117 | this.BringToFront();
118 | }
119 | }
120 | }
121 |
--------------------------------------------------------------------------------
/SyncAuraBrush.cs:
--------------------------------------------------------------------------------
1 | using RGB.NET.Core;
2 | using System.Diagnostics;
3 |
4 | namespace RGBSync
5 | {
6 | public class SyncBrush : AbstractBrush
7 | {
8 | #region Properties & Fields
9 |
10 | private readonly Led _syncLed;
11 |
12 | #endregion
13 |
14 | #region Constructors
15 |
16 | public SyncBrush(Led syncLed)
17 | {
18 | this._syncLed = syncLed;
19 | }
20 |
21 | #endregion
22 |
23 | #region Methods
24 |
25 | protected override Color GetColorAtPoint(Rectangle rectangle, BrushRenderTarget renderTarget)
26 | {
27 |
28 | return _syncLed.Color;
29 | }
30 |
31 | #endregion
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/icon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cyanlabs/RGBSync/bfd3dba4a97fc3a0b08f1112a20886a6f5f9613e/icon.ico
--------------------------------------------------------------------------------
/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/cyanlabs/RGBSync/bfd3dba4a97fc3a0b08f1112a20886a6f5f9613e/screenshot.png
--------------------------------------------------------------------------------