mum-rs / mum Goto Github PK
View Code? Open in Web Editor NEWDaemon/cli mumble client
License: MIT License
Daemon/cli mumble client
License: MIT License
Call mumctl-commands so we can e.g. tab through servers, channels, usernames.
We could do something ourselves but I'd rather wait for clap (or some other library) to solve something automatic.
Everything doesn't need to be handled but it's still nice to have all these in one place.
https://docs.rs/mumble-protocol/0.4.1/mumble_protocol/control/msgs/index.html:
This double run_until
feels a bit weird. Should we look at putting the entire run_until
::Disconnected
around the outermost join
(in tcp::handle
) since all of the join
ed futures share the same form of run_until
?
Originally posted by @sornas in #58 (comment)
@default-username-852 says:
The code for pinging amount of users on a server can now be cleaned up because Johni0702/rust-mumble-protocol#3 is merged.
Something like alsa-mixer (?)
How should we communicate between processes? Persistent channels? dbus? Skip entirely and bake into mumd?
External sound files instead of baked into binary.
${XDG_DATA_HOME}/mum
#75 ideally wants to report when the supplied password is wrong. Currently we use a hard-to-maintain homegrown event queue to report connection status. We should consider if there's a better way.
--version
error: failed to run custom build command for glib-sys v0.5.0
Caused by:
process didn't exit successfully: /tmp/cargo-install3kZc2w/release/build/glib-sys-255260c710c5480b/build-script-build
(exit code: 1)
--- stdout
cargo:rerun-if-env-changed=GLIB_2.0_NO_PKG_CONFIG
cargo:rerun-if-env-changed=PKG_CONFIG
cargo:rerun-if-env-changed=GLIB_2.0_STATIC
cargo:rerun-if-env-changed=GLIB_2.0_DYNAMIC
cargo:rerun-if-env-changed=PKG_CONFIG_ALL_STATIC
cargo:rerun-if-env-changed=PKG_CONFIG_ALL_DYNAMIC
cargo:rerun-if-env-changed=PKG_CONFIG_PATH_arm-unknown-linux-gnueabihf
cargo:rerun-if-env-changed=PKG_CONFIG_PATH_arm_unknown_linux_gnueabihf
cargo:rerun-if-env-changed=HOST_PKG_CONFIG_PATH
cargo:rerun-if-env-changed=PKG_CONFIG_PATH
cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_arm-unknown-linux-gnueabihf
cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_arm_unknown_linux_gnueabihf
cargo:rerun-if-env-changed=HOST_PKG_CONFIG_LIBDIR
cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_arm-unknown-linux-gnueabihf
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_arm_unknown_linux_gnueabihf
cargo:rerun-if-env-changed=HOST_PKG_CONFIG_SYSROOT_DIR
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR
--- stderr
"pkg-config" "--libs" "--cflags" "glib-2.0" "glib-2.0 >= 2.32"
did not exit successfully: exit code: 1
--- stderr
Package glib-2.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing glib-2.0.pc' to the PKG_CONFIG_PATH environment variable No package 'glib-2.0' found Package glib-2.0 was not found in the pkg-config search path. Perhaps you should add the directory containing
glib-2.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'glib-2.0' found
warning: build failed, waiting for other jobs to finish...
error: failed to compile mumd v0.3.0
, intermediate artifacts can be found at /tmp/cargo-install3kZc2w
Caused by:
build failed
pi@raspberrypi:~/mum $
At least some would be nice. We can at least simulate received packages and test the resulting state.
We desperately need them.
We should be able to write audio data into a [f32; N]
and compare, but it'll be hard to check microphone and speaker output automatically.
We could run two instances and stream known audio between them and see that mute/deafen works. Here we can yoink the output buffer and see if audio reaches the other side as expected.
Sometimes we use an Arc<Mutex<State>>
as a way of passing around fields that are completely separate from other parts of the state. These should be reworked since they are potential deadlocks as well as a bit too close to monolithic.
The following is an example but more such locks probably exist.
Originally posted by @sornas in #58 (comment)
Current timeout is way too long. (1 minute?) It can easily be something like 2 seconds.
Maybe also #13
[..] we probably want to clarify names like these so that they are more descriptive sometime in the future.
Originally posted by @default-username-852 in #49 (comment)
Currently waiting on some dependency.
We want to do something here. Probably nothing more than mixing together properly.
Compiling futures v0.3.13
Compiling toml v0.5.8
Compiling bincode v1.3.2
Compiling ipc-channel v0.14.1
Compiling mumlib v0.3.0
error[E0603]: module export
is private
--> /home/pi/.cargo/registry/src/github.com-1ecc6299db9ec823/mumlib-0.3.0/src/error.rs:1:12
|
1 | use serde::export::Formatter;
| ^^^^^^
error[E0603]: module export
is private
--> /home/pi/.cargo/registry/src/github.com-1ecc6299db9ec823/mumlib-0.3.0/src/state.rs:1:12
|
1 | use serde::export::Formatter;
| ^^^^^^
error: aborting due to 2 previous errors
For more information about this error, try rustc --explain E0603
.
error: could not compile mumlib
.
warning: build failed, waiting for other jobs to finish...
^C Building [=====================================================> ] 173/175
"Noise gate."
Other clients could instead get audio as a stream of floats (sync or async?).
Funky addition: regex rules
E.g. you're on a big server but want to know only when a specific person joins.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.