From: bruceperens Date: Thu, 12 Dec 2013 21:46:41 +0000 (+0000) Subject: Add keying and audio sink driver skeletons. X-Git-Url: http://git.whiteaudio.com/gitweb/?a=commitdiff_plain;h=6349893483d5d115cd7ec69fb4d2b0edcddee24a;p=freetel-svn-tracking.git Add keying and audio sink driver skeletons. git-svn-id: https://svn.code.sf.net/p/freetel/code@1339 01035d8c-6547-0410-b346-abe4f91aad63 --- diff --git a/freedv-server/CMakeLists.txt b/freedv-server/CMakeLists.txt index 6b72678c..03986e95 100644 --- a/freedv-server/CMakeLists.txt +++ b/freedv-server/CMakeLists.txt @@ -82,7 +82,17 @@ set(CMAKE_CXX_FLAGS, ${Param.cxx-flags}) set(CMAKE_C_FLAGS, ${Param.c-flags}) set(Compile.sources + source/audio_input.cpp + source/audio_output.cpp + source/audio_sink.cpp + source/driver_manager.cpp + source/keying.cpp + source/keying_sink.cpp source/main.cpp + source/ptt_input.cpp + source/text_input.cpp + source/tone.cpp + source/user_interface.cpp ) add_executable(freedv-server ${Compile.sources}) diff --git a/freedv-server/source/audio_sink.cpp b/freedv-server/source/audio_sink.cpp new file mode 100644 index 00000000..77641fed --- /dev/null +++ b/freedv-server/source/audio_sink.cpp @@ -0,0 +1,63 @@ +#include "drivers.h" +#include + +// Audio output "sink", discards the audio, for testing. + +namespace FreeDV { + class AudioSink : public AudioOutput { + public: + + AudioSink(const char *); + ~AudioSink(); + + // Get the current audio level, normalized to the range of 0.0 to 1.0. + float level(); + + // Set the current audio level within the range of 0.0 to 1.0. + float level(float value); + + // Write audio into the "short" type. + size_t write_short(short * array, size_t length); + }; + + AudioSink::AudioSink(const char *) + { + } + + AudioSink::~AudioSink() + { + } + + float + AudioSink::level() + { + return 0; + } + + float + AudioSink::level(float value) + { + return value; + } + + // Write audio into the "short" type. + size_t + AudioSink::write_short(short * array, size_t length) + { + return 0; + } + + static AudioOutput * + creator(const char * parameter) + { + return new AudioSink(parameter); + } + + static bool + initializer() + { + driver_manager.register_audio_output("sink", creator); + return true; + } + static const bool initialized = initializer(); +}; diff --git a/freedv-server/source/keying_sink.cpp b/freedv-server/source/keying_sink.cpp new file mode 100644 index 00000000..8b48f2e8 --- /dev/null +++ b/freedv-server/source/keying_sink.cpp @@ -0,0 +1,43 @@ +#include "drivers.h" +#include + +// Keying output "sink", doesn't key anything. For testing or use with VOX. +namespace FreeDV { + class KeyingSink : public Keying { + public: + + KeyingSink(const char *); + ~KeyingSink(); + + void key(bool value); + + }; + + KeyingSink::KeyingSink(const char *) + { + } + + KeyingSink::~KeyingSink() + { + } + + void + KeyingSink::key(bool value) + { + } + + + static Keying * + creator(const char * parameter) + { + return new KeyingSink(parameter); + } + + static bool + initializer() + { + driver_manager.register_keying("sink", creator); + return true; + } + static const bool initialized = initializer(); +};