mirror of
https://github.com/storytold/artcraft.git
synced 2026-11-04 17:38:10 +00:00
drained send
This commit is contained in:
1 parent
089aab7930
commit
592bebe823
2 files changed
+33
-2
No files matched your search
+17
@@ -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
@@ -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> {
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
Reference in new issue
Block a user