public override void ParseMessage(SPPMessage msg) { if (msg.Id != HandledType) { return; } OptionType = TouchOption.ToUniversal(msg.Payload[0]); }
public override void ParseMessage(SPPMessage msg) { if (msg.Id != HandledType) { return; } if (ActiveModel == Model.Buds) { Revision = msg.Payload[0]; EarType = msg.Payload[1]; BatteryL = msg.Payload[2]; BatteryR = msg.Payload[3]; IsCoupled = Convert.ToBoolean(msg.Payload[4]); MainConnection = (DeviceInv)msg.Payload[5]; WearState = (WearStates)msg.Payload[6]; AmbientSoundEnabled = Convert.ToBoolean(msg.Payload[7]); AmbientSoundMode = (AmbientType)msg.Payload[8]; AmbientSoundVolume = msg.Payload[9]; EqualizerEnabled = Convert.ToBoolean(msg.Payload[10]); EqualizerMode = msg.Payload[11]; if (msg.Size > 13) { TouchpadLock = Convert.ToBoolean(msg.Payload[12]); TouchpadOptionL = TouchOption.ToUniversal((msg.Payload[13] & 0xF0) >> 4); TouchpadOptionR = TouchOption.ToUniversal(msg.Payload[13] & 0x0F); if (Revision >= 3) { SeamlessConnectionEnabled = msg.Payload[14] == 0; } } else { TouchpadLock = Convert.ToBoolean((msg.Payload[12] & 0xF0) >> 4); TouchpadOptionL = TouchOption.ToUniversal(msg.Payload[12] & 0x0F); TouchpadOptionR = TouchOption.ToUniversal(msg.Payload[12] & 0x0F); if (Revision >= 3) { SeamlessConnectionEnabled = msg.Payload[13] == 0; } } } else { Revision = msg.Payload[0]; EarType = msg.Payload[1]; BatteryL = msg.Payload[2]; BatteryR = msg.Payload[3]; IsCoupled = Convert.ToBoolean(msg.Payload[4]); MainConnection = (DeviceInv)msg.Payload[5]; PlacementL = (PlacementStates)((msg.Payload[6] & 240) >> 4); PlacementR = (PlacementStates)(msg.Payload[6] & 15); if (PlacementL == PlacementStates.Wearing && PlacementR == PlacementStates.Wearing) { WearState = WearStates.Both; } else if (PlacementL == PlacementStates.Wearing) { WearState = WearStates.L; } else if (PlacementR == PlacementStates.Wearing) { WearState = WearStates.R; } else { WearState = WearStates.None; } BatteryCase = msg.Payload[7]; if (ActiveModel == Model.BudsPlus) { AmbientSoundEnabled = Convert.ToBoolean(msg.Payload[8]); AmbientSoundVolume = msg.Payload[9]; AdjustSoundSync = msg.Payload[10] == 1; EqualizerMode = msg.Payload[11]; TouchpadLock = Convert.ToBoolean(msg.Payload[12]); TouchpadOptionL = TouchOption.ToUniversal((msg.Payload[13] & 240) >> 4); TouchpadOptionR = TouchOption.ToUniversal(msg.Payload[13] & 15); OutsideDoubleTap = msg.Payload[14] == 1; short leftColor = BitConverter.ToInt16(msg.Payload, 15); short rightColor = BitConverter.ToInt16(msg.Payload, 17); DeviceColor = (Color)(leftColor != rightColor ? 0 : leftColor); if (Revision >= 8) { SideToneEnabled = msg.Payload[19] == 1; } if (Revision >= 9) { ExtraHighAmbientEnabled = msg.Payload[20] == 1; } if (Revision >= 11) { SeamlessConnectionEnabled = msg.Payload[21] == 0; } } else if (ActiveModel == Model.BudsLive) { AdjustSoundSync = msg.Payload[8] == 1; EqualizerMode = msg.Payload[9]; TouchpadLock = Convert.ToBoolean(msg.Payload[10]); TouchpadOptionL = TouchOption.ToUniversal((msg.Payload[11] & 240) >> 4); TouchpadOptionR = TouchOption.ToUniversal(msg.Payload[11] & 15); NoiceCancelling = msg.Payload[12] == 1; VoiceWakeUp = msg.Payload[13] == 1; short leftColor = BitConverter.ToInt16(msg.Payload, 14); short rightColor = BitConverter.ToInt16(msg.Payload, 16); DeviceColor = (Color)(leftColor != rightColor ? 0 : leftColor); VoiceWakeUpLang = msg.Payload[18]; if (Revision >= 3) { SeamlessConnectionEnabled = msg.Payload[19] == 0; } if (Revision >= 4) { FmmRevision = msg.Payload[20]; } if (Revision >= 5) { RelieveAmbient = msg.Payload[21] == 1; } } } }