Welcome Sound and Heartbeat
flags related to the availability of the feature
CL_ANN_AMP_TONE_HEARTBEAT CL_ENT_AMP_TONE_WELCOME CL_ANN_AMP_MENU_TONE_HEARTBEAT
TONEID_HEARTBEAT VOLUME_MENU_HEARTBEAT GREY_OUT_POPUP_HEARTBEAT_CHOICE VOLUME_HEARTBEAT_RANGE FOCUS_LISTENER_VOLUME_HEARTBEAT_CHOICE
case 1000034: { return "TONE_HEARTBEAT_MAIN"; }
function that enables the sound?
private boolean isReadinessSoundCoded() { return this.env.getSysConst(4596) == 1; }
function that triggers the sound
@Override public void play() { this.lc.log(-2137614336, "[HeartbeatPlayer.play]"); this.ringTonePlayer.playTone(this.playMode, 10); }
looks like those sound are considered to be ringtones. volume setting might be set to ringtone volume. Or fixed value.
static /* synthetic */ int access$302(Heartbeat heartbeat, int n) { heartbeat.heartbeatVolume = n; return heartbeat.heartbeatVolume; }
Here's the definition of the volume menu:
public void createVolumeMenus() { this.loweredEntMenus[0] = this.loweredEntAps; this.loweredEntMenus[1] = this.loweredEntNav; this.menus[3] = new PhoneRingtoneVolumeRange(this); this.menus[1] = new TAVolumeRange(this); this.menus[2] = new SDSVolumeRange(this); this.menus[0] = new NaviVolumeRange(this); this.menus[4] = this.loweredEntNav; this.menus[5] = this.loweredEntAps; this.menus[6] = new TouchpadVolumeRange(this); this.menus[7] = new SMSBeepVolumeRange(this); this.menus[8] = new HeartbeatVolumeRange(this); this.menus[9] = new RingtoneSelectionVolumeRange(this); this.menus[10] = new PhoneMicGainVolumeRange(this); if (this.env.getSysConst(4162) == 1) { this.menus[11] = new WirelessChargingVolumeRange(this); } this.menus[12] = new InfoAnnouncementVolumeRange(this); }
menu[8]
is for the sound that we are looking for. Let's check how the HeartbeatVolumeRange
class looks like:
public class HeartbeatVolumeRange extends AbstractVolumeRange { private static final int CONNECTION; private final int[] volumeConnections = new int[]{48, 82}; private final int[] greyOutConnections = AudioConnection.GREY_OUT_ALL; private final HeartbeatPlayer player; private final String name;