summaryrefslogtreecommitdiffstats
path: root/apps/talk.c
diff options
context:
space:
mode:
authorThomas Martitz <kugel@rockbox.org>2011-08-22 09:56:58 +0000
committerThomas Martitz <kugel@rockbox.org>2011-08-22 09:56:58 +0000
commitb66d07a9e3a27af3a6b4d2cba8e7909b9beab46d (patch)
tree4f5a00e6a14c3f403205145db800d91acde15141 /apps/talk.c
parentc3e5625a7f86f263ca894fb31e4ae3cd54f8f3d3 (diff)
downloadrockbox-b66d07a9e3a27af3a6b4d2cba8e7909b9beab46d.tar.gz
rockbox-b66d07a9e3a27af3a6b4d2cba8e7909b9beab46d.tar.bz2
rockbox-b66d07a9e3a27af3a6b4d2cba8e7909b9beab46d.zip
Fix red on hwcodec.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30338 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/talk.c')
-rw-r--r--apps/talk.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/apps/talk.c b/apps/talk.c
index ed7d55d455..2f15ebce49 100644
--- a/apps/talk.c
+++ b/apps/talk.c
@@ -77,6 +77,10 @@ const char* const file_thumbnail_ext = ".talk";
#define LOADED_MASK 0x80000000 /* MSB */
+/* swcodec: cap p_thumnail to MAX_THUMNAIL_BUFSIZE since audio keeps playing
+ * while voice
+ * hwcodec: just use whatever is left in the audiobuffer, music
+ * playback is impossible => no cap */
#if CONFIG_CODEC == SWCODEC
#define MAX_THUMBNAIL_BUFSIZE 0x10000
#endif
@@ -352,8 +356,10 @@ static void load_voicefile(bool probe, char* buf, size_t bufsize)
}
p_thumbnail = voicebuf.buf + file_size;
p_thumbnail += (long)p_thumbnail % 2; /* 16-bit align */
- size_for_thumbnail =
- MIN(voicebuf.buf + bufsize - p_thumbnail, MAX_THUMBNAIL_BUFSIZE);
+ size_for_thumbnail = voicebuf.buf + bufsize - p_thumbnail;
+#if CONFIG_CODEC == SWCODEC
+ size_for_thumbnail = MIN(size_for_thumbnail, MAX_THUMBNAIL_BUFSIZE);
+#endif
if (size_for_thumbnail <= 0)
p_thumbnail = NULL;
}
@@ -607,7 +613,9 @@ static void alloc_thumbnail_buf(void)
{
/* use the audio buffer now, need to release before loading a voice */
p_thumbnail = voicebuf;
+#if CONFIG_CODEC == SWCODEC
size_for_thumbnail = MAX_THUMBNAIL_BUFSIZE;
+#endif
thumbnail_buf_used = 0;
}