Merge pull request 'Merge crates' (#17) from merge-crates into main
Reviewed-on: #17
This commit is contained in:
commit
18b882f0f3
|
@ -3,9 +3,6 @@ members = [
|
|||
"apps/magpie",
|
||||
"apps/music-player",
|
||||
"apps/sandbox",
|
||||
"crates/magpie-client",
|
||||
"crates/magpie-types",
|
||||
"crates/music-player-protocol",
|
||||
"crates/script",
|
||||
"crates/types",
|
||||
"scripts/music-player",
|
||||
|
|
|
@ -1,13 +1,23 @@
|
|||
[package]
|
||||
name = "magpie"
|
||||
name = "canary-magpie"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
[[bin]]
|
||||
name = "magpie"
|
||||
path = "src/main.rs"
|
||||
required-features = ["service"]
|
||||
|
||||
[dependencies]
|
||||
canary = { path = "../.." }
|
||||
glium = "0.32"
|
||||
magpie-types = { path = "../../crates/magpie-types" }
|
||||
mio = { version = "0.8", features = ["net", "os-poll"] }
|
||||
mio-signals = "0.2"
|
||||
parking_lot = "0.12"
|
||||
slab = "0.4"
|
||||
byteorder = "1.4"
|
||||
canary = { path = "../..", optional = true }
|
||||
glium = { version = "0.32", optional = true}
|
||||
mio = { version = "0.8", features = ["net", "os-poll"], optional = true }
|
||||
mio-signals = { version = "0.2", optional = true }
|
||||
parking_lot = { version = "0.12", optional = true}
|
||||
serde = { version = "1", features = ["derive"] }
|
||||
serde_json = "1"
|
||||
slab = { version = "0.4", optional = true}
|
||||
|
||||
[features]
|
||||
service = ["dep:canary", "dep:glium", "dep:mio", "dep:mio-signals", "dep:parking_lot", "dep:slab"]
|
||||
|
|
|
@ -1,13 +1,9 @@
|
|||
pub use magpie_types;
|
||||
use serde::Serialize;
|
||||
|
||||
use std::os::unix::net::UnixStream;
|
||||
use std::path::Path;
|
||||
|
||||
use magpie_types::{serde::Serialize, serde_json};
|
||||
use magpie_types::{ClientMessenger, MagpieServerMsg, PanelId, SendMessage};
|
||||
|
||||
/// The name of the Magpie server socket.
|
||||
pub const MAGPIE_SOCK: &str = "magpie.sock";
|
||||
use crate::protocol::{ClientMessenger, MagpieServerMsg, PanelId, SendMessage, MAGPIE_SOCK};
|
||||
|
||||
/// A client to a Magpie server.
|
||||
pub struct MagpieClient {
|
|
@ -0,0 +1,5 @@
|
|||
pub mod client;
|
||||
pub mod protocol;
|
||||
|
||||
#[cfg(feature = "service")]
|
||||
pub mod service;
|
|
@ -1,14 +1,14 @@
|
|||
use glium::glutin::event_loop::EventLoopBuilder;
|
||||
|
||||
pub mod gl;
|
||||
pub mod ipc;
|
||||
pub mod window;
|
||||
use canary_magpie::service::*;
|
||||
use ipc::Ipc;
|
||||
use window::{WindowMessage, WindowStore};
|
||||
|
||||
fn main() -> std::io::Result<()> {
|
||||
let event_loop = EventLoopBuilder::<window::WindowMessage>::with_user_event().build();
|
||||
let event_loop = EventLoopBuilder::<WindowMessage>::with_user_event().build();
|
||||
let window_sender = event_loop.create_proxy();
|
||||
let (ipc, ipc_sender) = ipc::Ipc::new(window_sender)?;
|
||||
let (ipc, ipc_sender) = Ipc::new(window_sender)?;
|
||||
let _ipc_thread = std::thread::spawn(|| ipc.run());
|
||||
let window_store = window::WindowStore::new(ipc_sender);
|
||||
let window_store = WindowStore::new(ipc_sender);
|
||||
window_store.run(event_loop)
|
||||
}
|
||||
|
|
|
@ -5,8 +5,8 @@ use std::path::PathBuf;
|
|||
|
||||
use serde::{de::DeserializeOwned, Deserialize, Serialize};
|
||||
|
||||
pub use serde;
|
||||
pub use serde_json;
|
||||
/// The name of the Magpie server socket.
|
||||
pub const MAGPIE_SOCK: &str = "magpie.sock";
|
||||
|
||||
/// An identifier for a Magpie panel.
|
||||
///
|
|
@ -5,14 +5,14 @@ use std::sync::mpsc::{channel, Receiver, Sender};
|
|||
use std::sync::Arc;
|
||||
use std::time::Duration;
|
||||
|
||||
use magpie_types::{CreatePanel, MagpieServerMsg, SendMessage, ServerMessenger};
|
||||
use mio::net::{UnixListener, UnixStream};
|
||||
use mio::{Events, Interest, Poll, Token, Waker};
|
||||
use mio_signals::{Signal, Signals};
|
||||
use parking_lot::RwLock;
|
||||
use slab::Slab;
|
||||
|
||||
use crate::window::{WindowMessage, WindowMessageSender};
|
||||
use crate::service::window::{WindowMessage, WindowMessageSender};
|
||||
use crate::protocol::{CreatePanel, MagpieServerMsg, SendMessage, ServerMessenger};
|
||||
|
||||
const SOCK_NAME: &str = "magpie.sock";
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
pub mod gl;
|
||||
pub mod ipc;
|
||||
pub mod window;
|
|
@ -9,8 +9,8 @@ use glutin::event::{Event, WindowEvent};
|
|||
use glutin::event_loop::{ControlFlow, EventLoop, EventLoopProxy, EventLoopWindowTarget};
|
||||
use glutin::window::WindowId;
|
||||
|
||||
use crate::gl::Graphics;
|
||||
use crate::ipc::{IpcMessage, IpcMessageSender};
|
||||
use crate::service::gl::Graphics;
|
||||
use crate::service::ipc::{IpcMessage, IpcMessageSender};
|
||||
|
||||
pub enum WindowMessage {
|
||||
OpenWindow { id: usize, script: PathBuf },
|
|
@ -3,7 +3,16 @@ name = "canary-music-player"
|
|||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
[[bin]]
|
||||
name = "canary-music-player"
|
||||
path = "src/main.rs"
|
||||
required-features = ["bin"]
|
||||
|
||||
[dependencies]
|
||||
canary-music-player-protocol = { path = "../../crates/music-player-protocol" }
|
||||
magpie-client = { path = "../../crates/magpie-client" }
|
||||
mpris = "2.0.0-rc3"
|
||||
canary-magpie = { path = "../magpie", optional = true }
|
||||
mpris = { version = "2.0.0-rc3", optional = true }
|
||||
serde = { version = "1", features = ["derive"] }
|
||||
serde_json = "1"
|
||||
|
||||
[features]
|
||||
bin = ["dep:canary-magpie", "dep:mpris"]
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
use serde::{Deserialize, Serialize};
|
||||
|
||||
pub use serde;
|
||||
pub use serde_json;
|
||||
|
||||
#[derive(Clone, Debug, Serialize, Deserialize)]
|
||||
pub enum PlaybackStatus {
|
||||
/// A track is currently playing.
|
|
@ -1,6 +1,6 @@
|
|||
use canary_music_player_protocol::*;
|
||||
use magpie_client::{magpie_types, MagpieClient};
|
||||
use magpie_types::{CreatePanel, MagpieServerMsg};
|
||||
use canary_music_player::*;
|
||||
use canary_magpie::client::MagpieClient;
|
||||
use canary_magpie::protocol::{CreatePanel, MagpieServerMsg};
|
||||
use mpris::PlayerFinder;
|
||||
|
||||
pub struct MetadataTracker {
|
||||
|
|
|
@ -1,7 +0,0 @@
|
|||
[package]
|
||||
name = "magpie-client"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
[dependencies]
|
||||
magpie-types = { path = "../magpie-types" }
|
|
@ -1,9 +0,0 @@
|
|||
[package]
|
||||
name = "magpie-types"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
[dependencies]
|
||||
byteorder = "1.4"
|
||||
serde = { version = "1.0", features = ["derive"] }
|
||||
serde_json = "1"
|
|
@ -1,7 +0,0 @@
|
|||
[package]
|
||||
name = "canary-music-player-protocol"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
[dependencies]
|
||||
serde = { version = "1", features = ["derive"] }
|
|
@ -8,6 +8,5 @@ crate-type = ["cdylib"]
|
|||
|
||||
[dependencies]
|
||||
canary_script = { path = "../../crates/script" }
|
||||
canary-music-player-protocol = { path = "../../crates/music-player-protocol" }
|
||||
serde_json = "1"
|
||||
canary-music-player = { path = "../../apps/music-player" }
|
||||
wee_alloc = "^0.4"
|
||||
|
|
|
@ -44,7 +44,7 @@ impl PanelImpl for MusicPlayerPanel {
|
|||
fn on_cursor_event(&mut self, kind: CursorEventKind, at: Vec2) {}
|
||||
|
||||
fn on_message(&mut self, msg: Message) {
|
||||
use canary_music_player_protocol::InMsg;
|
||||
use canary_music_player::{InMsg, serde_json};
|
||||
let msg = msg.to_vec();
|
||||
let msg = serde_json::from_slice::<InMsg>(&msg);
|
||||
self.label.set_text(format!("{:#?}", msg));
|
||||
|
|
Loading…
Reference in New Issue