Add keying and audio sink driver skeletons.
authorbruceperens <bruceperens@01035d8c-6547-0410-b346-abe4f91aad63>
Thu, 12 Dec 2013 21:46:41 +0000 (21:46 +0000)
committerbruceperens <bruceperens@01035d8c-6547-0410-b346-abe4f91aad63>
Thu, 12 Dec 2013 21:46:41 +0000 (21:46 +0000)
git-svn-id: https://svn.code.sf.net/p/freetel/code@1339 01035d8c-6547-0410-b346-abe4f91aad63

freedv-server/CMakeLists.txt
freedv-server/source/audio_sink.cpp [new file with mode: 0644]
freedv-server/source/keying_sink.cpp [new file with mode: 0644]

index 6b72678c6f4fa57a92e694c27ac9cf6b2b193a8e..03986e95bf830bdbf7519a7b0f46fc5ac3a35ab1 100644 (file)
@@ -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 (file)
index 0000000..77641fe
--- /dev/null
@@ -0,0 +1,63 @@
+#include "drivers.h"
+#include <iostream>
+
+// 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 (file)
index 0000000..8b48f2e
--- /dev/null
@@ -0,0 +1,43 @@
+#include "drivers.h"
+#include <iostream>
+
+// 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();
+};