Quellcode durchsuchen

Change the stdout backend to work with arbitrary files.

Paul Lietar vor 8 Jahren
Ursprung
Commit
9c3541c41b
4 geänderte Dateien mit 3 neuen und 42 gelöschten Zeilen
  1. 0 1
      .travis.yml
  2. 0 1
      Cargo.toml
  3. 3 7
      src/audio_backend/mod.rs
  4. 0 33
      src/audio_backend/stdout.rs

+ 0 - 1
.travis.yml

@@ -31,7 +31,6 @@ script:
     - cargo build --no-default-features --features "with-syntex facebook"
     - cargo build --no-default-features --features "with-syntex portaudio-backend"
     - cargo build --no-default-features --features "with-syntex pulseaudio-backend"
-    - cargo build --no-default-features --features "with-syntex stdout-backend"
     - cargo build --no-default-features --features "with-syntex alsa-backend"
     - cargo build --no-default-features --features "with-syntex" --target armv7-unknown-linux-gnueabihf
 

+ 0 - 1
Cargo.toml

@@ -71,7 +71,6 @@ nightly           = ["serde_macros"]
 
 with-tremor       = ["tremor"]
 facebook          = ["hyper/ssl", "openssl"]
-stdout-backend    = []
 alsa-backend      = ["alsa"]
 portaudio-backend = ["portaudio"]
 pulseaudio-backend= ["libpulse-sys"]

+ 3 - 7
src/audio_backend/mod.rs

@@ -54,11 +54,6 @@ fn mk_sink<S: Sink + Open + 'static>(device: Option<&str>) -> Box<Sink> {
     Box::new(S::open(device))
 }
 
-#[cfg(feature = "stdout-backend")]
-mod stdout;
-#[cfg(feature = "stdout-backend")]
-use self::stdout::StdoutSink;
-
 #[cfg(feature = "alsa-backend")]
 mod alsa;
 #[cfg(feature = "alsa-backend")]
@@ -74,19 +69,20 @@ mod pulseaudio;
 #[cfg(feature = "pulseaudio-backend")]
 use self::pulseaudio::PulseAudioSink;
 
+mod pipe;
+use self::pipe::StdoutSink;
 
 declare_backends! {
     pub const BACKENDS : &'static [
         (&'static str,
          &'static (Fn(Option<&str>) -> Box<Sink> + Sync + Send + 'static))
     ] = &[
-        #[cfg(feature = "stdout-backend")]
-        ("stdout", &mk_sink::<StdoutSink>),
         #[cfg(feature = "alsa-backend")]
         ("alsa", &mk_sink::<AlsaSink>),
         #[cfg(feature = "portaudio-backend")]
         ("portaudio", &mk_sink::<PortAudioSink>),
         #[cfg(feature = "pulseaudio-backend")]
         ("pulseaudio", &mk_sink::<PulseAudioSink>),
+        ("pipe", &mk_sink::<StdoutSink>),
     ];
 }

+ 0 - 33
src/audio_backend/stdout.rs

@@ -1,33 +0,0 @@
-use super::{Open, Sink};
-use std::io::{self, Write};
-use std::slice;
-use std::mem;
-
-
-pub struct StdoutSink;//Option<PCM>, String);
-
-impl Open for StdoutSink {
-    fn open(_: Option<&str>) -> StdoutSink {
-        StdoutSink
-    }
-}
-
-impl Sink for StdoutSink {
-    fn start(&mut self) -> io::Result<()> {
-        Ok(())
-    }
-
-    fn stop(&mut self) -> io::Result<()> {
-        Ok(())
-    }
-
-    fn write(&mut self, data: &[i16]) -> io::Result<()> {
-// http://stackoverflow.com/questions/30838358/writing-vecu16-to-a-file
-        let slice_u8: &[u8] = unsafe { slice::from_raw_parts(data.as_ptr() as *const u8, data.len() * mem::size_of::<i16>()) };
-		try!(io::stdout().write_all(slice_u8));
-		try!(io::stdout().flush());
-
-        Ok(())
-    }
-}
-