drained send

This commit is contained in:
Brandon Thomas committed 2019-10-13 21:35:43 -04:00
1 parent 089aab7930
commit 592bebe823
2 files changed
+33 -2

No files matched your search

+17
View File
@@ -36,6 +36,23 @@ impl AudioQueue {
},
}
}
pub fn drain_size(&self, size: usize) -> Option<Vec<i16>> {
match self.queue.write() {
Ok(mut queue) => {
if queue.len() < size {
return None;
}
let vec = queue.drain(0..size)
.collect::<Vec<_>>();
return Some(vec);
},
Err(_) => {
unreachable!("This shouldn't happen (drain)");
},
}
}
}
pub struct QueueSender {
+16 -2
View File
@@ -60,10 +60,23 @@ fn run_audio() -> Result<(), AudioError> {
let mut fail_count = 0;
loop {
let mut drained = audio_queue_2.drain();
let mut drained = match audio_queue_2.drain_size(1000) {
None => { continue; },
Some(d) => d,
};
println!("Len drained: {}", drained.len());
let mut bytes: Vec<u8> = Vec::with_capacity(drained.len()*2);
for val in drained {
let byte_pair = val.to_be_bytes();
bytes.push(byte_pair[0]);
bytes.push(byte_pair[1]);
}
socket.send(bytes, 0);
/*for val in drained {
let bytes = val.to_be_bytes();
loop {
if reconnect {
@@ -98,7 +111,8 @@ fn run_audio() -> Result<(), AudioError> {
},
}
}
}
}*/
}
});