AC_ARG_ENABLE(fcplay,
AS_HELP_STRING([--enable-fcplay], [enable the fcplay component]),
[build_fcplay="$enableval"], [build_fcplay="no"])
+AC_ARG_ENABLE(pcm,
+ AS_HELP_STRING([--enable-pcm], [enable PCM compress playback support(used for debugging)]),
+ [enable_pcm="$enableval"], [enable_pcm="no"])
AM_CONDITIONAL([BUILD_FCPLAY], [test x$build_fcplay = xyes])
+AM_CONDITIONAL([ENABLE_PCM], [test x$enable_pcm = xyes])
#if test "$build_fcplay" = "yes"; then
# AC_DEFINE([BUILD_FCPLAY], "1", [Build Fcplay component])
#fi
+if test "$enable_pcm" = "yes"; then
+ AC_DEFINE([ENABLE_PCM], 1, [Enable PCM compress playback support (used for debugging)])
+fi
+
# Checks for programs.
AC_PROG_CXX
AC_PROG_CC
#include <stdbool.h>
#include <getopt.h>
#include <sys/time.h>
+#include <config.h>
#define __force
#define __bitwise
#define __user
#include "sound/compress_params.h"
#include "tinycompress/tinycompress.h"
#include "tinycompress/tinymp3.h"
+#include "tinycompress/tinywave.h"
static int verbose;
static const unsigned int DEFAULT_CODEC_ID = SND_AUDIOCODEC_PCM;
exit(EXIT_SUCCESS);
}
+#if ENABLE_PCM
+void get_codec_pcm(FILE *file, struct compr_config *config,
+ struct snd_codec *codec)
+{
+ size_t read;
+ struct wave_header header;
+ unsigned int channels, rate, format;
+
+ read = fread(&header, 1, sizeof(header), file);
+ if (read != sizeof(header)) {
+ fprintf(stderr, "Unable to read header \n");
+ fclose(file);
+ exit(EXIT_FAILURE);
+ }
+
+ if (parse_wave_header(&header, &channels, &rate, &format) == -1) {
+ fclose(file);
+ exit(EXIT_FAILURE);
+ }
+
+ codec->id = SND_AUDIOCODEC_PCM;
+ codec->ch_in = channels;
+ codec->ch_out = channels;
+ codec->sample_rate = rate;
+ if (!codec->sample_rate) {
+ fprintf(stderr, "invalid sample rate %d\n", rate);
+ fclose(file);
+ exit(EXIT_FAILURE);
+ }
+ codec->bit_rate = 0;
+ codec->rate_control = 0;
+ codec->profile = SND_AUDIOCODEC_PCM;
+ codec->level = 0;
+ codec->ch_mode = 0;
+ codec->format = format;
+}
+#endif
+
void get_codec_mp3(FILE *file, struct compr_config *config,
struct snd_codec *codec)
{
}
switch (codec_id) {
+#if ENABLE_PCM
+ case SND_AUDIOCODEC_PCM:
+ get_codec_pcm(file, &config, &codec);
+ break;
+#endif
case SND_AUDIOCODEC_MP3:
get_codec_mp3(file, &config, &codec);
break;