1
0
mirror of https://codeberg.org/Freeyourgadget/Gadgetbridge synced 2024-06-02 11:26:09 +02:00
Gadgetbridge/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/garmin/messages/MusicControlMessage.java
Daniele Gobbetti 4363f94661 Garmin protocol: initial refactoring and basic functionalities
This commit takes aims to bring many new garmin devices up to a working status, with basic functionalities such as:
- garmin protocol initialization
- basic message exchange
- support for some messages in Garmin own format
- support for some messages in protobuf format
2024-05-01 23:35:15 +01:00

46 lines
1.6 KiB
Java

package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.messages;
import nodomain.freeyourgadget.gadgetbridge.deviceevents.GBDeviceEventMusicControl;
public class MusicControlMessage extends GFDIMessage {
private static final MusicControlCapabilitiesMessage.GarminMusicControlCommand[] commands = MusicControlCapabilitiesMessage.GarminMusicControlCommand.values();
final int messageType;
private final GBDeviceEventMusicControl event;
public MusicControlMessage(int messageType, MusicControlCapabilitiesMessage.GarminMusicControlCommand command) {
this.event = new GBDeviceEventMusicControl();
this.messageType = messageType;
switch (command) {
case TOGGLE_PLAY_PAUSE:
event.event = GBDeviceEventMusicControl.Event.PLAYPAUSE;
break;
case SKIP_TO_NEXT_ITEM:
event.event = GBDeviceEventMusicControl.Event.NEXT;
break;
case SKIP_TO_PREVIOUS_ITEM:
event.event = GBDeviceEventMusicControl.Event.PREVIOUS;
break;
}
this.statusMessage = this.getStatusMessage(messageType);
}
public static MusicControlMessage parseIncoming(MessageReader reader, int messageType) {
MusicControlCapabilitiesMessage.GarminMusicControlCommand command = commands[reader.readByte()];
reader.warnIfLeftover();
return new MusicControlMessage(messageType, command);
}
public GBDeviceEventMusicControl getGBDeviceEvent() {
return event;
}
@Override
protected boolean generateOutgoing() {
return false;
}
}