Compare commits

...

3 commits

Author SHA1 Message Date
Ell
887eb922e9 1.2.7 2022-11-24 21:03:29 +01:00
Ell
e3cc7e30f0 propagate chroma exceptions to the application 2022-11-24 21:02:51 +01:00
Ell
acffc054bf don't dispose lighting systems in the destructors 2022-11-24 21:01:07 +01:00
4 changed files with 16 additions and 24 deletions

View file

@ -11,7 +11,7 @@
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageReadmeFile>README.md</PackageReadmeFile>
<PackageIcon>Logo.png</PackageIcon>
<VersionPrefix>1.2.6</VersionPrefix>
<VersionPrefix>1.2.7</VersionPrefix>
<NoWarn>NU1701</NoWarn>
</PropertyGroup>

View file

@ -5,10 +5,6 @@ namespace Illumilib.System {
public abstract LightingType Type { get; }
~LightingSystem() {
this.Dispose();
}
public abstract bool Initialize();
public abstract void SetAllLighting(float r, float g, float b);
@ -23,9 +19,7 @@ namespace Illumilib.System {
public abstract void SetMouseLighting(float r, float g, float b);
public virtual void Dispose() {
GC.SuppressFinalize(this);
}
public virtual void Dispose() {}
}
}

View file

@ -18,7 +18,6 @@ namespace Illumilib.System {
}
public override void Dispose() {
base.Dispose();
this.ClearBitmap();
try {
LogitechGsdk.LogiLedShutdown();

View file

@ -20,32 +20,31 @@ namespace Illumilib.System {
}
}
public override void Dispose() {
base.Dispose();
public override async void Dispose() {
try {
this.chroma?.UninitializeAsync();
await this.chroma?.UninitializeAsync();
} catch {
// ignored
}
this.effectOutdated = true;
}
public override void SetAllLighting(float r, float g, float b) {
this.chroma.SetAllAsync(new Color(r, g, b));
public override async void SetAllLighting(float r, float g, float b) {
await this.chroma.SetAllAsync(new Color(r, g, b));
this.effectOutdated = true;
}
public override void SetKeyboardLighting(float r, float g, float b) {
this.chroma.Keyboard?.SetAllAsync(new Color(r, g, b));
public override async void SetKeyboardLighting(float r, float g, float b) {
await this.chroma.Keyboard?.SetAllAsync(new Color(r, g, b));
this.effectOutdated = true;
}
public override void SetKeyboardLighting(int x, int y, float r, float g, float b) {
this.chroma.Keyboard?.SetPositionAsync(y, x, new Color(r, g, b));
public override async void SetKeyboardLighting(int x, int y, float r, float g, float b) {
await this.chroma.Keyboard?.SetPositionAsync(y, x, new Color(r, g, b));
this.effectOutdated = true;
}
public override void SetKeyboardLighting(int x, int y, int width, int height, float r, float g, float b) {
public override async void SetKeyboardLighting(int x, int y, int width, int height, float r, float g, float b) {
if (this.chroma.Keyboard == null)
return;
if (this.effectOutdated) {
@ -59,16 +58,16 @@ namespace Illumilib.System {
for (var yAdd = 0; yAdd < height; yAdd++)
this.effect[y + yAdd, x + xAdd] = new Color(r, g, b);
}
this.chroma.Keyboard.SetCustomAsync(this.effect);
await this.chroma.Keyboard.SetCustomAsync(this.effect);
}
public override void SetKeyboardLighting(KeyboardKeys key, float r, float g, float b) {
this.chroma.Keyboard?.SetKeyAsync(RazerLighting.ConvertKey(key), new Color(r, g, b));
public override async void SetKeyboardLighting(KeyboardKeys key, float r, float g, float b) {
await this.chroma.Keyboard?.SetKeyAsync(RazerLighting.ConvertKey(key), new Color(r, g, b));
this.effectOutdated = true;
}
public override void SetMouseLighting(float r, float g, float b) {
this.chroma.Mouse?.SetAllAsync(new Color(r, g, b));
public override async void SetMouseLighting(float r, float g, float b) {
await this.chroma.Mouse?.SetAllAsync(new Color(r, g, b));
}
private static Key ConvertKey(KeyboardKeys key) {