using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace SharpOSC { public struct RGBA { public byte R; public byte G; public byte B; public byte A; public RGBA(byte red, byte green, byte blue, byte alpha) { this.R = red; this.G = green; this.B = blue; this.A = alpha; } public override bool Equals(System.Object obj) { if (obj.GetType() == typeof(RGBA)) { if (this.R == ((RGBA)obj).R && this.G == ((RGBA)obj).G && this.B == ((RGBA)obj).B && this.A == ((RGBA)obj).A) return true; else return false; } else if (obj.GetType() == typeof(byte[])) { if (this.R == ((byte[])obj)[0] && this.G == ((byte[])obj)[1] && this.B == ((byte[])obj)[2] && this.A == ((byte[])obj)[3]) return true; else return false; } else return false; } public static bool operator ==(RGBA a, RGBA b) { if (a.Equals(b)) return true; else return false; } public static bool operator !=(RGBA a, RGBA b) { if (!a.Equals(b)) return true; else return false; } public override int GetHashCode() { return (R << 24) + (G << 16) + (B << 8) + (A); } } }