mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge.git
synced 2026-07-31 07:44:24 +02:00
CMF Buds: Request firmware version on initializing
This commit is contained in:
committed by
José Rebelo
parent
f23ec9e51f
commit
b4bbd0c492
+17
-3
@@ -71,6 +71,7 @@ public class Ear1Support extends AbstractHeadphoneBTBRDeviceSupport {
|
|||||||
protected TransactionBuilder initializeDevice(final TransactionBuilder builder) {
|
protected TransactionBuilder initializeDevice(final TransactionBuilder builder) {
|
||||||
nothingProtocol = new NothingProtocol(getCoordinator().incrementCounter());
|
nothingProtocol = new NothingProtocol(getCoordinator().incrementCounter());
|
||||||
|
|
||||||
|
sendCommand(builder, nothingProtocol.encodeFirmwareVersionReq());
|
||||||
sendCommand(builder, nothingProtocol.encodeBatteryStatusReq());
|
sendCommand(builder, nothingProtocol.encodeBatteryStatusReq());
|
||||||
sendCommand(builder, nothingProtocol.encodeAudioModeStatusReq());
|
sendCommand(builder, nothingProtocol.encodeAudioModeStatusReq());
|
||||||
|
|
||||||
@@ -122,11 +123,14 @@ public class Ear1Support extends AbstractHeadphoneBTBRDeviceSupport {
|
|||||||
byte enabled = (byte) (prefs.getBoolean(DeviceSettingsPreferenceConst.PREF_NOTHING_EAR1_INEAR, true) ? 0x01 : 0x00);
|
byte enabled = (byte) (prefs.getBoolean(DeviceSettingsPreferenceConst.PREF_NOTHING_EAR1_INEAR, true) ? 0x01 : 0x00);
|
||||||
sendCommand("set in ear detection", nothingProtocol.encodeInEarDetection(enabled));
|
sendCommand("set in ear detection", nothingProtocol.encodeInEarDetection(enabled));
|
||||||
// response: 55 20 01 04 70 00 00 00
|
// response: 55 20 01 04 70 00 00 00
|
||||||
|
break;
|
||||||
case DeviceSettingsPreferenceConst.PREF_NOTHING_EAR1_AUDIOMODE:
|
case DeviceSettingsPreferenceConst.PREF_NOTHING_EAR1_AUDIOMODE:
|
||||||
sendCommand("set audio mode", nothingProtocol.encodeAudioMode(prefs.getString(DeviceSettingsPreferenceConst.PREF_NOTHING_EAR1_AUDIOMODE, "off")));
|
sendCommand("set audio mode", nothingProtocol.encodeAudioMode(prefs.getString(DeviceSettingsPreferenceConst.PREF_NOTHING_EAR1_AUDIOMODE, "off")));
|
||||||
// response: 55 20 01 0F 70 00 00 00
|
// response: 55 20 01 0F 70 00 00 00
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
LOG.debug("CONFIG: " + config);
|
LOG.debug("CONFIG: " + config);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
super.onSendConfiguration(config);
|
super.onSendConfiguration(config);
|
||||||
@@ -151,6 +155,7 @@ public class Ear1Support extends AbstractHeadphoneBTBRDeviceSupport {
|
|||||||
//incoming
|
//incoming
|
||||||
private static final short battery_status = (short) 0xe001;
|
private static final short battery_status = (short) 0xe001;
|
||||||
private static final short battery_status2 = (short) 0xc007;
|
private static final short battery_status2 = (short) 0xc007;
|
||||||
|
private static final short firmware_version = (short) 0xc042;
|
||||||
private static final short audio_mode_status = (short) 0xc01e;
|
private static final short audio_mode_status = (short) 0xc01e;
|
||||||
private static final short audio_mode_status2 = (short) 0xe003;
|
private static final short audio_mode_status2 = (short) 0xe003;
|
||||||
|
|
||||||
@@ -204,9 +209,7 @@ public class Ear1Support extends AbstractHeadphoneBTBRDeviceSupport {
|
|||||||
|
|
||||||
if (isFirstExchange) {
|
if (isFirstExchange) {
|
||||||
isFirstExchange = false;
|
isFirstExchange = false;
|
||||||
devEvts.add(new GBDeviceEventVersionInfo()); //TODO: this is a weird hack to make the DBHelper happy. Replace with proper firmware detection
|
|
||||||
devEvts.add(new GBDeviceEventUpdateDeviceState(GBDevice.State.INITIALIZED));
|
devEvts.add(new GBDeviceEventUpdateDeviceState(GBDevice.State.INITIALIZED));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ByteBuffer incoming = ByteBuffer.wrap(responseData);
|
ByteBuffer incoming = ByteBuffer.wrap(responseData);
|
||||||
@@ -254,7 +257,9 @@ public class Ear1Support extends AbstractHeadphoneBTBRDeviceSupport {
|
|||||||
case unk_close_case:
|
case unk_close_case:
|
||||||
LOG.debug("case closed");
|
LOG.debug("case closed");
|
||||||
break;
|
break;
|
||||||
|
case firmware_version:
|
||||||
|
devEvts.add(handleFirmwareVersion(payload));
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
LOG.debug("Incoming message - control:" + control + " requestCommand: " + (getRequestCommand(command) & 0xffff) + "length: " + length + " dump: " + hexdump(responseData));
|
LOG.debug("Incoming message - control:" + control + " requestCommand: " + (getRequestCommand(command) & 0xffff) + "length: " + length + " dump: " + hexdump(responseData));
|
||||||
|
|
||||||
@@ -299,10 +304,19 @@ public class Ear1Support extends AbstractHeadphoneBTBRDeviceSupport {
|
|||||||
return encodeMessage((short) 0x5120, battery_status2, new byte[]{});
|
return encodeMessage((short) 0x5120, battery_status2, new byte[]{});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
byte[] encodeFirmwareVersionReq() {
|
||||||
|
return encodeMessage((short) 0x120, firmware_version, new byte[]{});
|
||||||
|
}
|
||||||
|
|
||||||
byte[] encodeAudioModeStatusReq() {
|
byte[] encodeAudioModeStatusReq() {
|
||||||
return encodeMessage((short) 0x120, audio_mode_status, new byte[]{});
|
return encodeMessage((short) 0x120, audio_mode_status, new byte[]{});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private GBDeviceEventVersionInfo handleFirmwareVersion(byte[] payload) {
|
||||||
|
GBDeviceEventVersionInfo evt = new GBDeviceEventVersionInfo();
|
||||||
|
evt.fwVersion = new String(payload);
|
||||||
|
return evt;
|
||||||
|
}
|
||||||
private GBDeviceEventUpdatePreferences handleAudioModeStatus(byte[] payload) {
|
private GBDeviceEventUpdatePreferences handleAudioModeStatus(byte[] payload) {
|
||||||
final GBDeviceEventUpdatePreferences preferencesEvent = new GBDeviceEventUpdatePreferences();
|
final GBDeviceEventUpdatePreferences preferencesEvent = new GBDeviceEventUpdatePreferences();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user