mirror of
https://github.com/Dangoware/dango-music-player.git
synced 2025-04-19 01:52:53 -05:00
moved the queue back into dmp-core
This commit is contained in:
parent
41c7820dfb
commit
d88c6e07d5
15 changed files with 10 additions and 100 deletions
|
@ -3,7 +3,6 @@ resolver = "2"
|
||||||
members = [
|
members = [
|
||||||
"src-tauri",
|
"src-tauri",
|
||||||
"dmp-core",
|
"dmp-core",
|
||||||
"kushi-queue",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[workspace.package]
|
[workspace.package]
|
||||||
|
|
|
@ -12,7 +12,6 @@ keywords = []
|
||||||
categories = []
|
categories = []
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
kushi = { path = "../kushi-queue" }
|
|
||||||
file-format = { version = "0.26", features = ["reader"] }
|
file-format = { version = "0.26", features = ["reader"] }
|
||||||
lofty = "0.21"
|
lofty = "0.21"
|
||||||
serde = { version = "1.0.195", features = ["derive"] }
|
serde = { version = "1.0.195", features = ["derive"] }
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
#![allow(while_true)]
|
#![allow(while_true)]
|
||||||
pub mod music_storage {
|
pub mod music_storage {
|
||||||
pub mod library;
|
pub mod library;
|
||||||
|
pub mod queue;
|
||||||
pub mod music_collection;
|
pub mod music_collection;
|
||||||
pub mod playlist;
|
pub mod playlist;
|
||||||
mod utils;
|
mod utils;
|
||||||
|
|
|
@ -5,8 +5,6 @@
|
||||||
use chrono::TimeDelta;
|
use chrono::TimeDelta;
|
||||||
use crossbeam::atomic::AtomicCell;
|
use crossbeam::atomic::AtomicCell;
|
||||||
use crossbeam_channel::{Receiver, Sender};
|
use crossbeam_channel::{Receiver, Sender};
|
||||||
use kushi::Queue;
|
|
||||||
use kushi::{QueueError, QueueItem};
|
|
||||||
use parking_lot::RwLock;
|
use parking_lot::RwLock;
|
||||||
use prismriver::{Error as PrismError, Prismriver};
|
use prismriver::{Error as PrismError, Prismriver};
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
|
@ -23,6 +21,7 @@ use crate::config::ConfigError;
|
||||||
use crate::music_controller::connections::handle_connections;
|
use crate::music_controller::connections::handle_connections;
|
||||||
use crate::music_storage::library::Song;
|
use crate::music_storage::library::Song;
|
||||||
use crate::music_storage::playlist::{ExternalPlaylist, Playlist};
|
use crate::music_storage::playlist::{ExternalPlaylist, Playlist};
|
||||||
|
use crate::music_storage::queue::{Queue, QueueError, QueueItem};
|
||||||
use crate::{config::Config, music_storage::library::MusicLibrary};
|
use crate::{config::Config, music_storage::library::MusicLibrary};
|
||||||
|
|
||||||
use super::connections::{ConnectionsNotification, ControllerConnections};
|
use super::connections::{ConnectionsNotification, ControllerConnections};
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
use std::path::PathBuf;
|
use std::path::PathBuf;
|
||||||
|
|
||||||
use async_channel::{Receiver, Sender};
|
use async_channel::{Receiver, Sender};
|
||||||
use kushi::{QueueError, QueueItem};
|
|
||||||
use uuid::Uuid;
|
use uuid::Uuid;
|
||||||
|
|
||||||
use crate::music_storage::{library::Song, playlist::ExternalPlaylist};
|
use crate::music_storage::{library::Song, playlist::ExternalPlaylist, queue::{QueueError, QueueItem}};
|
||||||
|
|
||||||
use super::{
|
use super::{
|
||||||
controller::{
|
controller::{
|
||||||
|
|
|
@ -1,12 +1,11 @@
|
||||||
use chrono::TimeDelta;
|
use chrono::TimeDelta;
|
||||||
use crossbeam_channel::Sender;
|
use crossbeam_channel::Sender;
|
||||||
use kushi::{QueueItem, QueueItemType};
|
|
||||||
use prismriver::{Prismriver, Volume};
|
use prismriver::{Prismriver, Volume};
|
||||||
|
|
||||||
use crate::music_controller::{
|
use crate::{music_controller::{
|
||||||
controller::{LibraryCommand, LibraryResponse},
|
controller::{LibraryCommand, LibraryResponse},
|
||||||
queue::QueueSong,
|
queue::QueueSong,
|
||||||
};
|
}, music_storage::queue::{QueueItem, QueueItemType}};
|
||||||
|
|
||||||
use super::{
|
use super::{
|
||||||
connections::ConnectionsNotification,
|
connections::ConnectionsNotification,
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
use kushi::{Queue, QueueError, QueueItemType};
|
use crate::music_storage::queue::{Queue, QueueError, QueueItemType};
|
||||||
|
|
||||||
use super::{
|
use super::{
|
||||||
controller::{Controller, QueueCommand, QueueResponse},
|
controller::{Controller, QueueCommand, QueueResponse},
|
||||||
|
|
1
kushi-queue/.gitignore
vendored
1
kushi-queue/.gitignore
vendored
|
@ -1 +0,0 @@
|
||||||
/target
|
|
65
kushi-queue/Cargo.lock
generated
65
kushi-queue/Cargo.lock
generated
|
@ -1,65 +0,0 @@
|
||||||
# This file is automatically @generated by Cargo.
|
|
||||||
# It is not intended for manual editing.
|
|
||||||
version = 3
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "kushi"
|
|
||||||
version = "0.1.2"
|
|
||||||
dependencies = [
|
|
||||||
"thiserror",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "proc-macro2"
|
|
||||||
version = "1.0.85"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "22244ce15aa966053a896d1accb3a6e68469b97c7f33f284b99f0d576879fc23"
|
|
||||||
dependencies = [
|
|
||||||
"unicode-ident",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "quote"
|
|
||||||
version = "1.0.36"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
|
|
||||||
dependencies = [
|
|
||||||
"proc-macro2",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "syn"
|
|
||||||
version = "2.0.66"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5"
|
|
||||||
dependencies = [
|
|
||||||
"proc-macro2",
|
|
||||||
"quote",
|
|
||||||
"unicode-ident",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "thiserror"
|
|
||||||
version = "1.0.61"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709"
|
|
||||||
dependencies = [
|
|
||||||
"thiserror-impl",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "thiserror-impl"
|
|
||||||
version = "1.0.61"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533"
|
|
||||||
dependencies = [
|
|
||||||
"proc-macro2",
|
|
||||||
"quote",
|
|
||||||
"syn",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "unicode-ident"
|
|
||||||
version = "1.0.12"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
|
|
|
@ -1,16 +0,0 @@
|
||||||
[package]
|
|
||||||
name = "kushi"
|
|
||||||
version = "0.1.3"
|
|
||||||
license = "MIT OR Apache-2.0"
|
|
||||||
description = "A queue built for the Dango Music Player and Oden Music Bot"
|
|
||||||
homepage = "https://github.com/Dangoware/kushi-queue"
|
|
||||||
edition = "2021"
|
|
||||||
readme = "README.md"
|
|
||||||
repository = "https://github.com/Dangoware/kushi-queue"
|
|
||||||
keywords = ["queue","music","vec", "dmp"]
|
|
||||||
categories = ["data-structures"]
|
|
||||||
|
|
||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
|
||||||
|
|
||||||
[dependencies]
|
|
||||||
thiserror = "1.0.61"
|
|
|
@ -1 +0,0 @@
|
||||||
a queue built for the [Dango Music Player](https://github.com/Dangoware/dango-music-player) and [Oden Music Bot](https://github.com/Dangoware/oden-music-bot)
|
|
|
@ -19,7 +19,6 @@ tauri-build = { version = "2", features = [] }
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
dmp-core = { path = "../dmp-core" }
|
dmp-core = { path = "../dmp-core" }
|
||||||
kushi = { path = "../kushi-queue" }
|
|
||||||
tauri = { version = "2", features = [ "protocol-asset", "unstable"] }
|
tauri = { version = "2", features = [ "protocol-asset", "unstable"] }
|
||||||
tauri-plugin-shell = "2"
|
tauri-plugin-shell = "2"
|
||||||
serde = { version = "1", features = ["derive"] }
|
serde = { version = "1", features = ["derive"] }
|
||||||
|
|
|
@ -1,9 +1,8 @@
|
||||||
use std::{fs::OpenOptions, io::Write};
|
use std::{fs::OpenOptions, io::Write};
|
||||||
|
|
||||||
use dmp_core::music_controller::{
|
use dmp_core::{music_controller::{
|
||||||
connections::LastFMAuth, controller::{ControllerHandle, PlayerLocation}, queue::QueueSong
|
connections::LastFMAuth, controller::{ControllerHandle, PlayerLocation}, queue::QueueSong
|
||||||
};
|
}, music_storage::queue::{QueueItem, QueueItemType}};
|
||||||
use kushi::QueueItem;
|
|
||||||
use tauri::{AppHandle, Emitter, State, Wry};
|
use tauri::{AppHandle, Emitter, State, Wry};
|
||||||
use tempfile::TempDir;
|
use tempfile::TempDir;
|
||||||
use uuid::Uuid;
|
use uuid::Uuid;
|
||||||
|
@ -20,7 +19,7 @@ pub async fn add_song_to_queue(
|
||||||
dbg!(&location);
|
dbg!(&location);
|
||||||
let (song, _) = ctrl_handle.lib_get_song(uuid).await;
|
let (song, _) = ctrl_handle.lib_get_song(uuid).await;
|
||||||
match ctrl_handle
|
match ctrl_handle
|
||||||
.queue_append(QueueItem::from_item_type(kushi::QueueItemType::Single(
|
.queue_append(QueueItem::from_item_type(QueueItemType::Single(
|
||||||
QueueSong { song, location },
|
QueueSong { song, location },
|
||||||
)))
|
)))
|
||||||
.await
|
.await
|
||||||
|
|
|
@ -4,10 +4,9 @@ use chrono::{serde::ts_milliseconds_option, DateTime, Utc};
|
||||||
use crossbeam::channel::Sender;
|
use crossbeam::channel::Sender;
|
||||||
use dmp_core::{
|
use dmp_core::{
|
||||||
music_controller::controller::{ControllerHandle, PlayerLocation},
|
music_controller::controller::{ControllerHandle, PlayerLocation},
|
||||||
music_storage::library::{Song, Tag, URI},
|
music_storage::{library::{Song, Tag, URI}, queue::QueueItemType},
|
||||||
};
|
};
|
||||||
use itertools::Itertools;
|
use itertools::Itertools;
|
||||||
use kushi::QueueItemType;
|
|
||||||
use serde::Serialize;
|
use serde::Serialize;
|
||||||
use tauri::{AppHandle, Emitter, State, Wry};
|
use tauri::{AppHandle, Emitter, State, Wry};
|
||||||
use uuid::Uuid;
|
use uuid::Uuid;
|
||||||
|
|
Loading…
Reference in a new issue