*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License.
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
import android.speech.tts.TextToSpeech.OnInitListener;
import android.location.Location;
-import org.altusmetrum.altoslib_8.*;
+import org.altusmetrum.altoslib_11.*;
public class AltosVoice {
private Location last_receiver;
private long last_speak_time;
private int last_flight_tell = TELL_FLIGHT_NONE;
+ private boolean quiet = false;
private long now() {
return System.currentTimeMillis();
public synchronized void speak(String s) {
if (!tts_enabled) return;
last_speak_time = now();
- tts.speak(s, TextToSpeech.QUEUE_ADD, null);
+ if (!quiet)
+ tts.speak(s, TextToSpeech.QUEUE_ADD, null);
}
public synchronized long time_since_speak() {
if (state == null)
return false;
+ AltosDebug.debug("tell_pad lag %b ltm %d\n", last_apogee_good, last_tell_mode);
+
if (state.apogee_voltage != AltosLib.MISSING)
last_apogee_good = tell_gonogo("apogee",
state.apogee_voltage >= AltosLib.ao_igniter_good,
if (last_flight_tell == TELL_FLIGHT_HEIGHT) {
last_flight_tell = TELL_FLIGHT_TRACK;
if (from_receiver != null) {
- speak("bearing %s %d, elevation %d, range %s.",
+ speak("bearing %s %d, elevation %d, distance %s.",
from_receiver.bearing_words(
AltosGreatCircle.BEARING_VOICE),
(int) (from_receiver.bearing + 0.5),
(int) (from_receiver.elevation + 0.5),
- AltosConvert.distance.say(from_receiver.range));
+ AltosConvert.distance.say(from_receiver.distance));
return true;
}
}
if (direction == null)
direction = String.format("Bearing %d", (int) (from_receiver.bearing + 0.5));
- speak("%s, range %s.", direction,
+ speak("%s, distance %s.", direction,
AltosConvert.distance.say_units(from_receiver.distance));
return true;
public void tell(TelemetryState telem_state, AltosState state,
AltosGreatCircle from_receiver, Location receiver,
- AltosDroidTab tab) {
+ AltosDroidTab tab, boolean quiet) {
+
+ this.quiet = quiet;
boolean spoken = false;
int tell_serial = last_tell_serial;
if (state != null)
- tell_serial = state.serial;
+ tell_serial = state.cal_data.serial;
if (tell_serial != last_tell_serial)
reset_last();