diff options
| author | Reiner Herrmann <reiner@reiner-h.de> | 2012-02-10 18:17:39 +0100 |
|---|---|---|
| committer | Reiner Herrmann <reiner@reiner-h.de> | 2012-02-10 18:17:39 +0100 |
| commit | 374045d1f8a5c55301e453d3977f00bdc122fe5c (patch) | |
| tree | ce595a2da9307ca3737b5183a74aef35bb916a34 | |
| parent | 65dd941a1ed670f0e7908a6e3bc28593caef2908 (diff) | |
enable phonetic and reciting mode
| -rw-r--r-- | Makefile | 2 | ||||
| -rw-r--r-- | sam.c | 20 | ||||
| -rw-r--r-- | sam.h | 3 | ||||
| -rw-r--r-- | sam_player.c | 2 | ||||
| -rw-r--r-- | wave.h | 13 | ||||
| -rw-r--r-- | wave_linux.c | 7 |
6 files changed, 22 insertions, 25 deletions
@@ -1,6 +1,6 @@ STRIP = strip
CC = gcc
-CFLAGS = -D__USE_INLINE__ -O3 -ffast-math -finline-functions -funroll-loops -fstrict-aliasing -Wall -I$(SRC)c64
+CFLAGS = -D__USE_INLINE__ -O3 -ffast-math -funroll-loops -Wall -Ic64
LDFLAGS = -lsndfile
TARGET = sam_player
@@ -37,11 +37,11 @@ void sam_init(void) run_to(0xe5cd, 0xe5d5);
feed("LOAD\"SAM.PRG\",1,1\r RUN\rH");
run_to(0xe5cd, 0xe5d5);
- feed("]RE\r");
- run_to(0xe5cd, 0xe5d5);
+ //feed("]RE\r");
+ //run_to(0xe5cd, 0xe5d5);
}
-void sam_say(const char *text, unsigned int frequency, unsigned char *wave_buf, unsigned int *wave_len_ref)
+static void sam_say(const char *text, unsigned int frequency, unsigned char *wave_buf, unsigned int *wave_len_ref)
{
feed("SAY\"");
feed(text);
@@ -51,3 +51,17 @@ void sam_say(const char *text, unsigned int frequency, unsigned char *wave_buf, *wave_len_ref = stop_record();
}
+void sam_recite(const char *text, unsigned int frequency, unsigned char *wave_buf, unsigned int *wave_len_ref)
+{
+ feed("]RECITER\r");
+ run_to(0xe5cd, 0xe5d5);
+ sam_say(text, frequency, wave_buf, wave_len_ref);
+}
+
+void sam_phonetic(const char *text, unsigned int frequency, unsigned char *wave_buf, unsigned int *wave_len_ref)
+{
+ feed("]SAM\r");
+ run_to(0xe5cd, 0xe5d5);
+ sam_say(text, frequency, wave_buf, wave_len_ref);
+}
+
@@ -6,7 +6,8 @@ #define __SAM_H__ 1
void sam_init(void);
-void sam_say(const char *text, unsigned int frequency, unsigned char *wave_buf, unsigned int *wave_len_ref);
+void sam_recite(const char *text, unsigned int frequency, unsigned char *wave_buf, unsigned int *wave_len_ref);
+void sam_phonetic(const char *text, unsigned int frequency, unsigned char *wave_buf, unsigned int *wave_len_ref);
#endif
diff --git a/sam_player.c b/sam_player.c index 43baf40..04207b2 100644 --- a/sam_player.c +++ b/sam_player.c @@ -34,7 +34,7 @@ int main(int argc, char **argv) *p = '\0';
sam_init();
wave_length = sizeof(wave_buffer);
- sam_say(buf, wave.samples_per_sec, wave_buffer, &wave_length);
+ sam_recite(buf, wave.samples_per_sec, wave_buffer, &wave_length);
if(wave_length > 0)
{
if(wave_length > sizeof(wave_buffer))
@@ -3,17 +3,6 @@ #ifndef __WAVE_H__
#define __WAVE_H__ 1
-#define WAVE_ERR_NONE 0
-#define WAVE_ERR_UNKNOWN_ERROR -1
-#define WAVE_ERR_RESOURCE_UNAVAILABLE -2
-#define WAVE_ERR_BAD_DEVICE_ID -3
-#define WAVE_ERR_DEVICE_DRIVER_UNAVAILABLE -4
-#define WAVE_ERR_OUT_OF_MEMORY -5
-#define WAVE_ERR_INVALID_WAVE -6
-#define WAVE_ERR_CANNOT_PLAY -7
-#define WAVE_ERR_INVALID_HANDLE -8
-#define WAVE_ERR_STILL_PLAYING -9
-
typedef struct __wave
{
int channels; // audio channels, mono, stereo, etc...
@@ -26,6 +15,4 @@ typedef struct __wave int wave_out(wave_t *wave);
-const char *wave_err_to_str(int err);
-
#endif
diff --git a/wave_linux.c b/wave_linux.c index 6d04fb7..f960a9b 100644 --- a/wave_linux.c +++ b/wave_linux.c @@ -1,6 +1,5 @@ #include "wave.h" -#include <stdio.h> #include <sndfile.h> int wave_out(wave_t *wave) @@ -16,11 +15,7 @@ int wave_out(wave_t *wave) sf_write_raw(out, wave->frame_data, wave->frame_size); sf_close(out); - printf("channels: %d, samples_per_sec: %d, bits_per_sample: %d, frame_size: %d, frame_count: %d\n", wave->channels, wave->samples_per_sec, wave->bits_per_sample, wave->frame_size, wave->frame_count); + //printf("channels: %d, samples_per_sec: %d, bits_per_sample: %d, frame_size: %d, frame_count: %d\n", wave->channels, wave->samples_per_sec, wave->bits_per_sample, wave->frame_size, wave->frame_count); return 0; } -const char *wave_err_to_str(int err) -{ - return "unknown error"; -} |
