diff options
-rw-r--r-- | apps/talk.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/apps/talk.c b/apps/talk.c index a11f830665..ed262b8094 100644 --- a/apps/talk.c +++ b/apps/talk.c | |||
@@ -778,6 +778,7 @@ void talk_buffer_steal(void) | |||
778 | int talk_id(int32_t id, bool enqueue) | 778 | int talk_id(int32_t id, bool enqueue) |
779 | { | 779 | { |
780 | long clipsize; | 780 | long clipsize; |
781 | size_t temp; | ||
781 | unsigned char* clipbuf; | 782 | unsigned char* clipbuf; |
782 | int32_t unit; | 783 | int32_t unit; |
783 | int decimals; | 784 | int decimals; |
@@ -789,8 +790,12 @@ int talk_id(int32_t id, bool enqueue) | |||
789 | return -1; | 790 | return -1; |
790 | #endif | 791 | #endif |
791 | 792 | ||
793 | /* try to get audio buffer until talkbuf_init() is called */ | ||
794 | if (!voicebuf) | ||
795 | voicebuf = audio_get_buffer(true, &temp); | ||
796 | |||
792 | if (p_voicefile == NULL && has_voicefile) | 797 | if (p_voicefile == NULL && has_voicefile) |
793 | load_voicefile(false, voicebuf, voicefile_size); /* reload needed */ | 798 | load_voicefile(false, voicebuf, MIN(voicefile_size,temp)); /* reload needed */ |
794 | 799 | ||
795 | if (p_voicefile == NULL) /* still no voices? */ | 800 | if (p_voicefile == NULL) /* still no voices? */ |
796 | return -1; | 801 | return -1; |