From 74a18fa6b1ff8d6a19227b17c3ca69d20e6ddd93 Mon Sep 17 00:00:00 2001 From: bruceperens Date: Tue, 11 Mar 2014 04:01:35 +0000 Subject: [PATCH] Provide a platform default audio selection. git-svn-id: https://svn.code.sf.net/p/freetel/code@1424 01035d8c-6547-0410-b346-abe4f91aad63 --- freedv-server/source/audio_in_default.cpp | 13 +++++++++++++ freedv-server/source/audio_out_default.cpp | 13 +++++++++++++ freedv-server/source/drivers.h | 9 +++++---- freedv-server/source/interfaces.cpp | 2 +- 4 files changed, 32 insertions(+), 5 deletions(-) create mode 100644 freedv-server/source/audio_in_default.cpp create mode 100644 freedv-server/source/audio_out_default.cpp diff --git a/freedv-server/source/audio_in_default.cpp b/freedv-server/source/audio_in_default.cpp new file mode 100644 index 00000000..816278f7 --- /dev/null +++ b/freedv-server/source/audio_in_default.cpp @@ -0,0 +1,13 @@ +#include "drivers.h" + +namespace FreeDV { + AudioInput * + Driver::AudioInDefault() + { +#if __linux__ + return Driver::AudioInALSA("default"); +#else + #error Please fill in Driver::AudioInDefault for this platform. +#endif + } +} diff --git a/freedv-server/source/audio_out_default.cpp b/freedv-server/source/audio_out_default.cpp new file mode 100644 index 00000000..4e292b66 --- /dev/null +++ b/freedv-server/source/audio_out_default.cpp @@ -0,0 +1,13 @@ +#include "drivers.h" + +namespace FreeDV { + AudioOutput * + Driver::AudioOutDefault() + { +#if __linux__ + return Driver::AudioOutALSA("default"); +#else + #error Please fill in Driver::AudioOutDefault for this platform. +#endif + } +} diff --git a/freedv-server/source/drivers.h b/freedv-server/source/drivers.h index d0d62073..b9998175 100644 --- a/freedv-server/source/drivers.h +++ b/freedv-server/source/drivers.h @@ -699,15 +699,16 @@ namespace FreeDV { return interfaces.print(stream); } - // The functions in the Driver and Enumerator namespaces are normally - // registered with the driver manager at run-time. There isn't a reason - // to reference them directly unless it's in a custom main for an embedded - // program. + // Most of the functions in the Driver and Enumerator namespaces are + // registered with the driver manager at run-time. There won't be many + // reasons to reference them directly. namespace Driver { AudioInput * Tone(const char * parameter); AudioInput * AudioInALSA(const char * parameter); + AudioInput * AudioInDefault(); AudioOutput * AudioSink(const char * parameter); AudioOutput * AudioOutALSA(const char * parameter); + AudioOutput * AudioOutDefault(); Codec * CodecNoOp(const char * parameter); Framer * FramerNoOp(const char * parameter); KeyingOutput * KeyingSink(const char * parameter); diff --git a/freedv-server/source/interfaces.cpp b/freedv-server/source/interfaces.cpp index ea7f279a..387cfebb 100644 --- a/freedv-server/source/interfaces.cpp +++ b/freedv-server/source/interfaces.cpp @@ -16,7 +16,7 @@ namespace FreeDV { keying_output = Driver::KeyingSink(empty); if ( !loudspeaker ) - loudspeaker = Driver::AudioSink(empty); + loudspeaker = Driver::AudioOutDefault(); if ( !microphone ) microphone = Driver::Tone(empty); -- 2.25.1