summaryrefslogtreecommitdiff
path: root/apps/talk.h
diff options
context:
space:
mode:
authorJörg Hohensohn <hohensoh@rockbox.org>2004-03-19 22:15:53 +0000
committerJörg Hohensohn <hohensoh@rockbox.org>2004-03-19 22:15:53 +0000
commitfa97f161abc45bfd5db86bceb8803d2661e65447 (patch)
tree1e06ac8c47bd9165e46e85235f059372ddad2b90 /apps/talk.h
parent239b70fad38be55075dd14ea8e3c0f6f54a1f35b (diff)
downloadrockbox-fa97f161abc45bfd5db86bceb8803d2661e65447.zip
rockbox-fa97f161abc45bfd5db86bceb8803d2661e65447.tar.gz
rockbox-fa97f161abc45bfd5db86bceb8803d2661e65447.tar.bz2
rockbox-fa97f161abc45bfd5db86bceb8803d2661e65447.tar.xz
Third step of the voice-UI: numerical settings are spoken (composed at runtime), needs new voicefont at the new location ".rockbox/langs/english.voice"
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4414 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/talk.h')
-rw-r--r--apps/talk.h61
1 files changed, 61 insertions, 0 deletions
diff --git a/apps/talk.h b/apps/talk.h
new file mode 100644
index 0000000..4851e7b
--- /dev/null
+++ b/apps/talk.h
@@ -0,0 +1,61 @@
+/***************************************************************************
+ * __________ __ ___.
+ * Open \______ \ ____ ____ | | _\_ |__ _______ ___
+ * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
+ * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
+ * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
+ * \/ \/ \/ \/ \/
+ * $Id$
+ *
+ * Copyright (C) 2004 Jörg Hohensohn
+ *
+ * This module collects the Talkbox and voice UI functions.
+ * (Talkbox reads directory names from mp3 clips called thumbnails,
+ * the voice UI lets menus and screens "talk" from a voicefont in memory.
+ *
+ * All files in this archive are subject to the GNU General Public License.
+ * See the file COPYING in the source tree root for full license agreement.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ****************************************************************************/
+
+#ifndef __TALK_H__
+#define __TALK_H__
+
+#include <stdbool.h>
+
+enum {
+ UNIT_INT = 1, /* plain number */
+ UNIT_SIGNED, /* number with mandatory sign (even if positive) */
+ UNIT_MS, /* milliseconds */
+ UNIT_SEC, /* seconds */
+ UNIT_MIN, /* minutes */
+ UNIT_HOUR, /* hours */
+ UNIT_KHZ, /* kHz */
+ UNIT_DB, /* dB, mandatory sign */
+ UNIT_PERCENT, /* % */
+ UNIT_MB, /* megabyte */
+ UNIT_GB, /* gigabyte */
+ UNIT_LAST /* END MARKER */
+};
+
+#define UNIT_SHIFT (32-4) /* this many bits left from UNIT_xx enum */
+
+/* make a "talkable" ID from number + unit
+ unit is upper 4 bits, number the remaining (in regular 2's complement) */
+#define TALK_ID(n,u) ((u)<<UNIT_SHIFT | ((n) & ~(-1<<UNIT_SHIFT)))
+
+/* convenience macro to have both string and ID as arguments */
+#define STR(id) str(id), id
+
+
+void talk_init(void);
+int talk_buffer_steal(void); /* claim the mp3 buffer e.g. for play/record */
+int talk_id(int id, bool enqueue); /* play a voice ID from voicefont */
+int talk_file(char* filename, bool enqueue); /* play a thumbnail from file */
+int talk_number(int n, bool enqueue); /* say a number */
+int talk_value(int n, int unit, bool enqueue); /* say a numeric value */
+
+#endif /* __TALK_H__ */