From c49e7c34ba6b970f14cfb5e41677844e15e6793f Mon Sep 17 00:00:00 2001 From: XMLHexagram <52130356+XMLHexagram@users.noreply.github.com> Date: Mon, 2 Dec 2024 17:15:03 +0100 Subject: [PATCH 01/17] ci: add linter Signed-off-by: XMLHexagram <52130356+XMLHexagram@users.noreply.github.com> --- .github/workflows/main.yml | 56 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 000000000..d1c027008 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,56 @@ +name: Lint + +on: + push: + branches: + - main + pull_request: + branches: + - main + workflow_dispatch: + +jobs: + rust-analyze: + name: Rust Analyze + runs-on: ubuntu-latest + + steps: + - name: Check Out + - uses: actions/checkout@v4 + + - name: Setup Rust toolchain + uses: dtolnay/rust-toolchain@stable + with: + components: rustfmt, clippy + + - name: Run Rust Linter + uses: wearerequired/lint-action@v2 + with: + clippy: true + rustfmt: true + + flutter-analyze: + name: Flutter analyze + runs-on: ubuntu-latest + + steps: + - name: Check Out + - uses: actions/checkout@v4 + + - name: Set up Flutter + uses: subosito/flutter-action@v2 + with: + flutter-version: '3.19.0' + channel: 'stable' + + - name: Install dependencies + run: flutter pub get + + - name: Analyze Flutter/Dart code + run: | + flutter analyze . + dart analyze . + + + + From 8b626cd9bb47978e8f7aa4ba5e8320a27a455bb2 Mon Sep 17 00:00:00 2001 From: XMLHexagram <52130356+XMLHexagram@users.noreply.github.com> Date: Mon, 2 Dec 2024 17:21:20 +0100 Subject: [PATCH 02/17] Update and rename main.yml to linter.yml Signed-off-by: XMLHexagram <52130356+XMLHexagram@users.noreply.github.com> --- .github/workflows/{main.yml => linter.yml} | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) rename .github/workflows/{main.yml => linter.yml} (91%) diff --git a/.github/workflows/main.yml b/.github/workflows/linter.yml similarity index 91% rename from .github/workflows/main.yml rename to .github/workflows/linter.yml index d1c027008..c95482464 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/linter.yml @@ -9,6 +9,10 @@ on: - main workflow_dispatch: +permissions: + checks: write + pull-requests: write + jobs: rust-analyze: name: Rust Analyze @@ -35,7 +39,7 @@ jobs: steps: - name: Check Out - - uses: actions/checkout@v4 + uses: actions/checkout@v4 - name: Set up Flutter uses: subosito/flutter-action@v2 From ff10432fb55de4b4940ff39e2ff03c91dc16cc15 Mon Sep 17 00:00:00 2001 From: XMLHexagram <52130356+XMLHexagram@users.noreply.github.com> Date: Mon, 2 Dec 2024 17:22:27 +0100 Subject: [PATCH 03/17] Update linter.yml Signed-off-by: XMLHexagram <52130356+XMLHexagram@users.noreply.github.com> --- .github/workflows/linter.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml index c95482464..733959d04 100644 --- a/.github/workflows/linter.yml +++ b/.github/workflows/linter.yml @@ -20,7 +20,7 @@ jobs: steps: - name: Check Out - - uses: actions/checkout@v4 + uses: actions/checkout@v4 - name: Setup Rust toolchain uses: dtolnay/rust-toolchain@stable From 5b0a2d55a30c2e58f15fd042aa1da8ce1f48b9a0 Mon Sep 17 00:00:00 2001 From: XMLHexagram <52130356+XMLHexagram@users.noreply.github.com> Date: Mon, 2 Dec 2024 17:24:14 +0100 Subject: [PATCH 04/17] Update linter.yml Signed-off-by: XMLHexagram <52130356+XMLHexagram@users.noreply.github.com> --- .github/workflows/linter.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml index 733959d04..29e7516ce 100644 --- a/.github/workflows/linter.yml +++ b/.github/workflows/linter.yml @@ -3,10 +3,10 @@ name: Lint on: push: branches: - - main + - master pull_request: branches: - - main + - master workflow_dispatch: permissions: From db2b8a99c0a8a61b3477b611eb67517d7f4f6243 Mon Sep 17 00:00:00 2001 From: XMLHexagram <52130356+XMLHexagram@users.noreply.github.com> Date: Mon, 2 Dec 2024 17:26:09 +0100 Subject: [PATCH 05/17] Update linter.yml Signed-off-by: XMLHexagram <52130356+XMLHexagram@users.noreply.github.com> --- .github/workflows/linter.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml index 29e7516ce..7a501e357 100644 --- a/.github/workflows/linter.yml +++ b/.github/workflows/linter.yml @@ -44,7 +44,6 @@ jobs: - name: Set up Flutter uses: subosito/flutter-action@v2 with: - flutter-version: '3.19.0' channel: 'stable' - name: Install dependencies From 4e2dd4466f759c8d4d388dbe133be072f9cc04b0 Mon Sep 17 00:00:00 2001 From: XMLHexagram <52130356+XMLHexagram@users.noreply.github.com> Date: Mon, 2 Dec 2024 17:31:42 +0100 Subject: [PATCH 06/17] Update linter.yml Signed-off-by: XMLHexagram <52130356+XMLHexagram@users.noreply.github.com> --- .github/workflows/linter.yml | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml index 7a501e357..8814bc019 100644 --- a/.github/workflows/linter.yml +++ b/.github/workflows/linter.yml @@ -27,11 +27,11 @@ jobs: with: components: rustfmt, clippy - - name: Run Rust Linter - uses: wearerequired/lint-action@v2 - with: - clippy: true - rustfmt: true + - name: Run cargo fmt + run: cargo fmt -- --check + + - name: Run cargo clippy + run: cargo clippy -- -D warnings flutter-analyze: name: Flutter analyze @@ -49,9 +49,12 @@ jobs: - name: Install dependencies run: flutter pub get - - name: Analyze Flutter/Dart code + - name: Analyze Flutter run: | flutter analyze . + + - name: Dart Flutter + run: | dart analyze . From 36846f4768561c9ab714918e910d63720d531fab Mon Sep 17 00:00:00 2001 From: XMLHexagram <52130356+XMLHexagram@users.noreply.github.com> Date: Mon, 2 Dec 2024 17:37:14 +0100 Subject: [PATCH 07/17] Update linter.yml Signed-off-by: XMLHexagram <52130356+XMLHexagram@users.noreply.github.com> --- .github/workflows/linter.yml | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml index 8814bc019..e8647f464 100644 --- a/.github/workflows/linter.yml +++ b/.github/workflows/linter.yml @@ -41,13 +41,31 @@ jobs: - name: Check Out uses: actions/checkout@v4 - - name: Set up Flutter + - name: Setup Flutter Toolchain uses: subosito/flutter-action@v2 with: channel: 'stable' - - - name: Install dependencies + + - name: Setup Rust Toolchain + uses: dtolnay/rust-toolchain@stable + + - name: Install Protoc + uses: arduino/setup-protoc@v3 + with: + version: "26.x" + repo-token: ${{ secrets.GITHUB_TOKEN }} + + - name: Install the Rust dependencies + run: cargo install 'flutter_rust_bridge_codegen' rinf protoc-gen-prost + + - name: Activate Protobuf + run: flutter pub global activate protoc_plugin + + - name: Flutter pub get run: flutter pub get + + - name: Generate message files + run: rinf message - name: Analyze Flutter run: | From 53e63d0807d987366917ace2e22c3c74cc0440b3 Mon Sep 17 00:00:00 2001 From: XMLHexagram Date: Mon, 2 Dec 2024 17:39:19 +0100 Subject: [PATCH 08/17] cargo fmt --- analysis/src/analyzer/cpu_sub_analyzer.rs | 5 +++-- analysis/src/analyzer/gpu_sub_analyzer.rs | 3 ++- analysis/src/shared_utils/computing_device.rs | 2 +- cli/src/lib.rs | 2 +- cli/src/main.rs | 10 ++++++++-- database/src/actions/file.rs | 5 ++++- database/src/actions/index.rs | 8 +++----- database/src/actions/metadata.rs | 2 +- database/src/connection.rs | 2 +- database/src/entities/mod.rs | 2 +- metadata/src/artist.rs | 3 ++- metadata/src/lib.rs | 6 +++--- metadata/src/reader.rs | 19 +++++++++++++------ ...0230701_000001_create_media_files_table.rs | 6 +----- ...728_000008_create_media_cover_art_table.rs | 14 +++++++++++--- .../m20230806_000009_create_artists_table.rs | 6 +----- .../m20230806_000011_create_albums_table.rs | 6 +----- .../m20231029_000017_create_search_index.rs | 2 +- native/hub/build.rs | 2 +- native/hub/src/directory.rs | 1 - native/hub/src/lib.rs | 2 +- native/hub/src/license.rs | 2 +- native/hub/src/sfx.rs | 5 ++++- playback/src/android_utils.rs | 4 ++-- playback/src/dummy_souvlaki.rs | 1 - playback/src/lib.rs | 6 +++--- playback/src/output_stream.rs | 6 +++++- 27 files changed, 75 insertions(+), 57 deletions(-) diff --git a/analysis/src/analyzer/cpu_sub_analyzer.rs b/analysis/src/analyzer/cpu_sub_analyzer.rs index 25ed4b2c1..e855aadee 100644 --- a/analysis/src/analyzer/cpu_sub_analyzer.rs +++ b/analysis/src/analyzer/cpu_sub_analyzer.rs @@ -52,8 +52,9 @@ impl SubAnalyzer for CpuSubAnalyzer { core_analyzer.total_zcr += zcr(resampled_chunk); core_analyzer.total_energy += energy(resampled_chunk); - let start_idx = self.batch_cache_buffer_count * core_analyzer.window_size; - let buffer_slice = &mut self.fft_input_buffer[start_idx..start_idx + core_analyzer.window_size]; + let start_idx = self.batch_cache_buffer_count * core_analyzer.window_size; + let buffer_slice = + &mut self.fft_input_buffer[start_idx..start_idx + core_analyzer.window_size]; for (i, sample) in buffer_slice.iter_mut().enumerate() { *sample = resampled_chunk[i] * self.hanning_window[i]; } diff --git a/analysis/src/analyzer/gpu_sub_analyzer.rs b/analysis/src/analyzer/gpu_sub_analyzer.rs index aac98cb67..2d230d6b9 100644 --- a/analysis/src/analyzer/gpu_sub_analyzer.rs +++ b/analysis/src/analyzer/gpu_sub_analyzer.rs @@ -43,7 +43,8 @@ impl SubAnalyzer for GpuSubAnalyzer { core_analyzer.total_energy += energy(resampled_chunk); let start_idx = self.batch_cache_buffer_count * core_analyzer.window_size; - let buffer_slice = &mut self.batch_fft_buffer[start_idx..start_idx + core_analyzer.window_size]; + let buffer_slice = + &mut self.batch_fft_buffer[start_idx..start_idx + core_analyzer.window_size]; for (i, sample) in buffer_slice.iter_mut().enumerate() { *sample = Complex::new(resampled_chunk[i] * self.hanning_window[i], 0.0); } diff --git a/analysis/src/shared_utils/computing_device.rs b/analysis/src/shared_utils/computing_device.rs index fe5b80032..013d31f0a 100644 --- a/analysis/src/shared_utils/computing_device.rs +++ b/analysis/src/shared_utils/computing_device.rs @@ -23,4 +23,4 @@ impl From<&str> for ComputingDevice { _ => ComputingDevice::Gpu, } } -} \ No newline at end of file +} diff --git a/cli/src/lib.rs b/cli/src/lib.rs index ae8429c1e..1760852d3 100644 --- a/cli/src/lib.rs +++ b/cli/src/lib.rs @@ -1,5 +1,5 @@ pub mod analysis; pub mod index; +pub mod mix; pub mod playback; pub mod recommend; -pub mod mix; diff --git a/cli/src/main.rs b/cli/src/main.rs index 7e507d006..dfec28d48 100644 --- a/cli/src/main.rs +++ b/cli/src/main.rs @@ -170,7 +170,13 @@ async fn main() { index_audio_library(&main_db).await; } Commands::Analyze { computing_device } => { - analyze_audio_library(computing_device.as_str().into(), &main_db, &analysis_db, &path).await; + analyze_audio_library( + computing_device.as_str().into(), + &main_db, + &analysis_db, + &path, + ) + .await; } Commands::Info { file_ids } => { match get_metadata_summary_by_file_ids(&main_db, file_ids.to_vec()).await { @@ -263,4 +269,4 @@ async fn main() { } }, } -} \ No newline at end of file +} diff --git a/database/src/actions/file.rs b/database/src/actions/file.rs index 5513b64d4..ee6ba9614 100644 --- a/database/src/actions/file.rs +++ b/database/src/actions/file.rs @@ -5,7 +5,10 @@ use anyhow::Result; use metadata::describe::FileDescription; use rust_decimal::prelude::ToPrimitive; use sea_orm::entity::prelude::*; -use sea_orm::{ColumnTrait, EntityTrait, FromQueryResult, Order, QueryFilter, QueryOrder, QuerySelect, QueryTrait}; +use sea_orm::{ + ColumnTrait, EntityTrait, FromQueryResult, Order, QueryFilter, QueryOrder, QuerySelect, + QueryTrait, +}; use migration::{Func, SimpleExpr}; diff --git a/database/src/actions/index.rs b/database/src/actions/index.rs index d4d74889e..88ccd6e56 100644 --- a/database/src/actions/index.rs +++ b/database/src/actions/index.rs @@ -1,4 +1,4 @@ -use anyhow::{Result, Error}; +use anyhow::{Error, Result}; use log::{error, info}; use sea_orm::{prelude::*, ActiveValue}; use sea_orm::{DatabaseConnection, Set, TransactionTrait}; @@ -167,10 +167,8 @@ pub async fn index_audio_library( let producer = async { loop { // Fetch the next batch of files - let files: Vec = cursor - .first(batch_size.try_into()?) - .all(main_db) - .await?; + let files: Vec = + cursor.first(batch_size.try_into()?).all(main_db).await?; if files.is_empty() { info!("No more files to process. Exiting loop."); diff --git a/database/src/actions/metadata.rs b/database/src/actions/metadata.rs index bdc1ed90a..97b95b2f5 100644 --- a/database/src/actions/metadata.rs +++ b/database/src/actions/metadata.rs @@ -1,9 +1,9 @@ use std::collections::HashMap; use std::path::{Path, PathBuf}; -use regex::Regex; use anyhow::{bail, Context, Result}; use log::{debug, error, info}; +use regex::Regex; use rust_decimal::prelude::{FromPrimitive, ToPrimitive}; use sea_orm::entity::prelude::*; use sea_orm::{ActiveValue, ColumnTrait, EntityTrait, QueryFilter}; diff --git a/database/src/connection.rs b/database/src/connection.rs index 4064c85cf..27bc5b82a 100644 --- a/database/src/connection.rs +++ b/database/src/connection.rs @@ -131,7 +131,7 @@ pub fn get_storage_info(lib_path: &str, db_path: Option<&str>) -> Result = vec![", ", "; ", " × ", " x ", " / ", " ft.", " ft. ", " feat. " , " & "]; + static ref SPLITTERS: Vec<&'static str> = + vec![", ", "; ", " × ", " x ", " / ", " ft.", " ft. ", " feat. ", " & "]; static ref WHITELIST: Vec<&'static str> = vec![]; static ref SPLITTERS_REGEX: Regex = { let splitters_pattern = SPLITTERS diff --git a/metadata/src/lib.rs b/metadata/src/lib.rs index 5bbe4beb0..a9ee8d430 100644 --- a/metadata/src/lib.rs +++ b/metadata/src/lib.rs @@ -1,6 +1,6 @@ +pub mod artist; +pub mod cover_art; pub mod crc; +pub mod describe; pub mod reader; pub mod scanner; -pub mod artist; -pub mod describe; -pub mod cover_art; \ No newline at end of file diff --git a/metadata/src/reader.rs b/metadata/src/reader.rs index 0f0886a38..313a71a2f 100644 --- a/metadata/src/reader.rs +++ b/metadata/src/reader.rs @@ -183,7 +183,11 @@ pub fn string_to_standard_tag_key(s: &str) -> Option { STRING_TO_STANDARD_TAG_KEY.get(s).cloned() } -fn push_tags(revision: &MetadataRevision, metadata_list: &mut Vec<(String, String)>, field_blacklist: &[&str]) { +fn push_tags( + revision: &MetadataRevision, + metadata_list: &mut Vec<(String, String)>, + field_blacklist: &[&str], +) { for tag in revision.tags() { let std_key = match tag.std_key { Some(standard_key) => standard_tag_key_to_string(standard_key), @@ -207,7 +211,10 @@ fn push_tags(revision: &MetadataRevision, metadata_list: &mut Vec<(String, Strin } } -pub fn get_metadata(file_path: &str, field_blacklist: Option>) -> Result> { +pub fn get_metadata( + file_path: &str, + field_blacklist: Option>, +) -> Result> { if !Path::new(file_path).exists() { bail!("File not found"); } @@ -228,13 +235,13 @@ pub fn get_metadata(file_path: &str, field_blacklist: Option>) -> Resu let meta_opts: MetadataOptions = Default::default(); // Probe the media source. - let mut probed = symphonia::default::get_probe() - .format(&hint, mss, &fmt_opts, &meta_opts)?; + let mut probed = symphonia::default::get_probe().format(&hint, mss, &fmt_opts, &meta_opts)?; let mut format = probed.format; let mut metadata_list = Vec::new(); - let blacklist = field_blacklist.unwrap_or(vec!["encoded_by", "encoder", "comment", "description"]); + let blacklist = + field_blacklist.unwrap_or(vec!["encoded_by", "encoder", "comment", "description"]); if let Some(metadata_rev) = format.metadata().current() { push_tags(metadata_rev, &mut metadata_list, &blacklist); @@ -243,4 +250,4 @@ pub fn get_metadata(file_path: &str, field_blacklist: Option>) -> Resu } Ok(metadata_list) -} \ No newline at end of file +} diff --git a/migration/src/m20230701_000001_create_media_files_table.rs b/migration/src/m20230701_000001_create_media_files_table.rs index 025b68907..253beb0e9 100644 --- a/migration/src/m20230701_000001_create_media_files_table.rs +++ b/migration/src/m20230701_000001_create_media_files_table.rs @@ -34,11 +34,7 @@ impl MigrationTrait for Migration { .not_null(), ) .col(ColumnDef::new(MediaFiles::CoverArtId).integer().null()) - .col( - ColumnDef::new(MediaFiles::SampleRate) - .integer() - .not_null(), - ) + .col(ColumnDef::new(MediaFiles::SampleRate).integer().not_null()) .col(ColumnDef::new(MediaFiles::Duration).double().not_null()) .foreign_key( ForeignKey::create() diff --git a/migration/src/m20230728_000008_create_media_cover_art_table.rs b/migration/src/m20230728_000008_create_media_cover_art_table.rs index b67c7c3f9..facfa6d79 100644 --- a/migration/src/m20230728_000008_create_media_cover_art_table.rs +++ b/migration/src/m20230728_000008_create_media_cover_art_table.rs @@ -22,8 +22,16 @@ impl MigrationTrait for Migration { .auto_increment() .primary_key(), ) - .col(ColumnDef::new(MediaCoverArt::FileHash).char_len(64).not_null()) - .col(ColumnDef::new(MediaCoverArt::Binary).var_binary(16777216).not_null()) + .col( + ColumnDef::new(MediaCoverArt::FileHash) + .char_len(64) + .not_null(), + ) + .col( + ColumnDef::new(MediaCoverArt::Binary) + .var_binary(16777216) + .not_null(), + ) .to_owned(), ) .await @@ -42,5 +50,5 @@ pub enum MediaCoverArt { Id, FileHash, Binary, - PrimaryColor + PrimaryColor, } diff --git a/migration/src/m20230806_000009_create_artists_table.rs b/migration/src/m20230806_000009_create_artists_table.rs index 8cd5c5d72..7cadafaff 100644 --- a/migration/src/m20230806_000009_create_artists_table.rs +++ b/migration/src/m20230806_000009_create_artists_table.rs @@ -28,11 +28,7 @@ impl MigrationTrait for Migration { .not_null() .unique_key(), ) - .col( - ColumnDef::new(Artists::Group) - .string() - .not_null(), - ) + .col(ColumnDef::new(Artists::Group).string().not_null()) .to_owned(), ) .await diff --git a/migration/src/m20230806_000011_create_albums_table.rs b/migration/src/m20230806_000011_create_albums_table.rs index 9c53e90fc..e97bca26c 100644 --- a/migration/src/m20230806_000011_create_albums_table.rs +++ b/migration/src/m20230806_000011_create_albums_table.rs @@ -28,11 +28,7 @@ impl MigrationTrait for Migration { .not_null() .unique_key(), ) - .col( - ColumnDef::new(Albums::Group) - .string() - .not_null(), - ) + .col(ColumnDef::new(Albums::Group).string().not_null()) .to_owned(), ) .await diff --git a/migration/src/m20231029_000017_create_search_index.rs b/migration/src/m20231029_000017_create_search_index.rs index b00601fbe..c8386ea23 100644 --- a/migration/src/m20231029_000017_create_search_index.rs +++ b/migration/src/m20231029_000017_create_search_index.rs @@ -16,7 +16,7 @@ impl MigrationTrait for Migration { // ID is only for making sea-orm happy db.execute_unprepared( - "CREATE VIRTUAL TABLE search_index USING fts5(id, key, entry_type, doc);" + "CREATE VIRTUAL TABLE search_index USING fts5(id, key, entry_type, doc);", ) .await?; diff --git a/native/hub/build.rs b/native/hub/build.rs index 6a65f62fe..f39ed85b1 100644 --- a/native/hub/build.rs +++ b/native/hub/build.rs @@ -19,7 +19,7 @@ fn main() -> Result<()> { .add_instructions(&rustc)? .emit()?; - #[cfg(target_os = "macos")] + #[cfg(target_os = "macos")] apple_bridge::build_apple_bridge_library(); Ok(()) diff --git a/native/hub/src/directory.rs b/native/hub/src/directory.rs index 7519ba036..fed69faef 100644 --- a/native/hub/src/directory.rs +++ b/native/hub/src/directory.rs @@ -3,7 +3,6 @@ use std::sync::Arc; use anyhow::{Context, Result}; use rinf::DartSignal; - use database::actions::directory::get_directory_tree; use database::actions::directory::DirectoryTree; use database::connection::MainDbConnection; diff --git a/native/hub/src/lib.rs b/native/hub/src/lib.rs index 04125fdfd..b00b4d93d 100644 --- a/native/hub/src/lib.rs +++ b/native/hub/src/lib.rs @@ -1,4 +1,5 @@ mod analyze; +mod apple_bridge; mod collection; mod connection; mod cover_art; @@ -18,7 +19,6 @@ mod sfx; mod stat; mod system; mod utils; -mod apple_bridge; use std::sync::Arc; diff --git a/native/hub/src/license.rs b/native/hub/src/license.rs index 5385c0038..deda5db29 100644 --- a/native/hub/src/license.rs +++ b/native/hub/src/license.rs @@ -44,7 +44,7 @@ pub async fn check_store_license() -> Result, &'sta let bundle_id = bundle_id(); let mut is_active = false; let mut is_trial = false; - + if bundle_id == "ci.not.rune.appstore" { is_active = true; is_trial = false; diff --git a/native/hub/src/sfx.rs b/native/hub/src/sfx.rs index 637619e4d..8b30cac5c 100644 --- a/native/hub/src/sfx.rs +++ b/native/hub/src/sfx.rs @@ -11,6 +11,9 @@ pub async fn sfx_play_request( sfx_player: Arc>, dart_signal: DartSignal, ) -> Result<()> { - sfx_player.lock().await.load(dart_signal.message.path.into()); + sfx_player + .lock() + .await + .load(dart_signal.message.path.into()); Ok(()) } diff --git a/playback/src/android_utils.rs b/playback/src/android_utils.rs index 583765ad6..c149690de 100644 --- a/playback/src/android_utils.rs +++ b/playback/src/android_utils.rs @@ -8,7 +8,7 @@ use jni::{ sys::{jint, JNI_VERSION_1_6}, JavaVM, }; -use ndk_context::{release_android_context, initialize_android_context}; +use ndk_context::{initialize_android_context, release_android_context}; /// Invalid JNI version constant, signifying JNI_OnLoad failure. const INVALID_JNI_VERSION: jint = 0; @@ -45,7 +45,7 @@ pub extern "system" fn Java_ci_not_rune_MainActivity_initializeContext( if let Some(jvm) = JVM { // Converting context to raw pointer let context_ptr = context.into_raw() as *mut c_void; - + initialize_android_context(jvm, context_ptr); } } diff --git a/playback/src/dummy_souvlaki.rs b/playback/src/dummy_souvlaki.rs index 835be1eae..6ee49c49b 100644 --- a/playback/src/dummy_souvlaki.rs +++ b/playback/src/dummy_souvlaki.rs @@ -1,5 +1,4 @@ /// A dummy implementation of the media controls. - use std::time::Duration; /// The metadata of a media item. diff --git a/playback/src/lib.rs b/playback/src/lib.rs index 48cbe55d1..b8f1d75fe 100644 --- a/playback/src/lib.rs +++ b/playback/src/lib.rs @@ -1,13 +1,13 @@ mod internal; -mod sfx_internal; mod realtime_fft; +mod sfx_internal; mod simple_channel; -pub mod strategies; -pub mod output_stream; pub mod controller; +pub mod output_stream; pub mod player; pub mod sfx_player; +pub mod strategies; #[cfg(target_os = "android")] mod dummy_souvlaki; diff --git a/playback/src/output_stream.rs b/playback/src/output_stream.rs index 1bfceb0c7..bf091c321 100644 --- a/playback/src/output_stream.rs +++ b/playback/src/output_stream.rs @@ -28,7 +28,11 @@ impl RuneOutputStream { let default_config = device .default_output_config() .map_err(StreamError::DefaultStreamConfigError)?; - RuneOutputStream::try_from_device_config_with_callback(device, default_config, error_callback) + RuneOutputStream::try_from_device_config_with_callback( + device, + default_config, + error_callback, + ) } pub fn try_from_device_config_with_callback( From df9747b3600ba6f8e5feaf2b1ab6ddcc22dd4717 Mon Sep 17 00:00:00 2001 From: XMLHexagram <52130356+XMLHexagram@users.noreply.github.com> Date: Mon, 2 Dec 2024 17:41:38 +0100 Subject: [PATCH 09/17] Update linter.yml Signed-off-by: XMLHexagram <52130356+XMLHexagram@users.noreply.github.com> --- .github/workflows/linter.yml | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml index e8647f464..c6fe675dc 100644 --- a/.github/workflows/linter.yml +++ b/.github/workflows/linter.yml @@ -22,11 +22,34 @@ jobs: - name: Check Out uses: actions/checkout@v4 + - name: Setup Flutter Toolchain + uses: subosito/flutter-action@v2 + with: + channel: 'stable' + - name: Setup Rust toolchain uses: dtolnay/rust-toolchain@stable with: components: rustfmt, clippy + - name: Install Protoc + uses: arduino/setup-protoc@v3 + with: + version: "26.x" + repo-token: ${{ secrets.GITHUB_TOKEN }} + + - name: Install the Rust dependencies + run: cargo install 'flutter_rust_bridge_codegen' rinf protoc-gen-prost + + - name: Activate Protobuf + run: flutter pub global activate protoc_plugin + + - name: Flutter pub get + run: flutter pub get + + - name: Generate message files + run: rinf message + - name: Run cargo fmt run: cargo fmt -- --check From 8614e6876217e8c36021484364b2cc076164836a Mon Sep 17 00:00:00 2001 From: XMLHexagram <52130356+XMLHexagram@users.noreply.github.com> Date: Mon, 2 Dec 2024 17:43:48 +0100 Subject: [PATCH 10/17] Update linter.yml Signed-off-by: XMLHexagram <52130356+XMLHexagram@users.noreply.github.com> --- .github/workflows/linter.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml index c6fe675dc..2a0db3aa7 100644 --- a/.github/workflows/linter.yml +++ b/.github/workflows/linter.yml @@ -32,6 +32,8 @@ jobs: with: components: rustfmt, clippy + - uses: Swatinem/rust-cache@v2 + - name: Install Protoc uses: arduino/setup-protoc@v3 with: @@ -72,6 +74,8 @@ jobs: - name: Setup Rust Toolchain uses: dtolnay/rust-toolchain@stable + - uses: Swatinem/rust-cache@v2 + - name: Install Protoc uses: arduino/setup-protoc@v3 with: From 41104eae46137c5b7ffd40fc1440b52e14bec014 Mon Sep 17 00:00:00 2001 From: XMLHexagram Date: Mon, 2 Dec 2024 17:59:42 +0100 Subject: [PATCH 11/17] add cargo fmt ignore --- .rustfmt.toml | 1 + 1 file changed, 1 insertion(+) create mode 100644 .rustfmt.toml diff --git a/.rustfmt.toml b/.rustfmt.toml new file mode 100644 index 000000000..8f572f175 --- /dev/null +++ b/.rustfmt.toml @@ -0,0 +1 @@ +ignore = ["native/hub/src/messages"] From 8008bba3b5b5285e4447fad6697c34899f32f4ce Mon Sep 17 00:00:00 2001 From: XMLHexagram Date: Mon, 2 Dec 2024 18:07:35 +0100 Subject: [PATCH 12/17] fix: cargo fmt ignore by using rust nightly --- .github/workflows/linter.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml index 2a0db3aa7..6a55dbd8d 100644 --- a/.github/workflows/linter.yml +++ b/.github/workflows/linter.yml @@ -28,7 +28,7 @@ jobs: channel: 'stable' - name: Setup Rust toolchain - uses: dtolnay/rust-toolchain@stable + uses: dtolnay/rust-toolchain@nightly with: components: rustfmt, clippy From cb2f90a0adbec5570db06d8c5c5571b16986540d Mon Sep 17 00:00:00 2001 From: XMLHexagram Date: Mon, 2 Dec 2024 18:25:57 +0100 Subject: [PATCH 13/17] fix --- .github/workflows/linter.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml index 6a55dbd8d..f03330e19 100644 --- a/.github/workflows/linter.yml +++ b/.github/workflows/linter.yml @@ -32,6 +32,11 @@ jobs: with: components: rustfmt, clippy + - name: Install dependencies + run: | + sudo apt-get update + sudo apt-get install -y liblmdb0 jq alsa-base alsa-source librust-alsa-sys-dev libasound2-dev liblmdb-dev clang cmake ninja-build pkg-config libgtk-3-dev dpkg-dev libayatana-appindicator3-dev libnotify-dev + - uses: Swatinem/rust-cache@v2 - name: Install Protoc From 95360a4936d9f744fd231b79a2c3f9029131bf8d Mon Sep 17 00:00:00 2001 From: XMLHexagram Date: Mon, 2 Dec 2024 18:39:41 +0100 Subject: [PATCH 14/17] revert to stable toolchain --- .github/workflows/linter.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml index f03330e19..ffe8947b4 100644 --- a/.github/workflows/linter.yml +++ b/.github/workflows/linter.yml @@ -28,7 +28,7 @@ jobs: channel: 'stable' - name: Setup Rust toolchain - uses: dtolnay/rust-toolchain@nightly + uses: dtolnay/rust-toolchain@stable with: components: rustfmt, clippy From ee9369aea30d57fb540817d351ec96da7978137c Mon Sep 17 00:00:00 2001 From: XMLHexagram Date: Mon, 2 Dec 2024 18:45:28 +0100 Subject: [PATCH 15/17] fix --- .github/workflows/linter.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml index ffe8947b4..03faa6d6f 100644 --- a/.github/workflows/linter.yml +++ b/.github/workflows/linter.yml @@ -28,7 +28,7 @@ jobs: channel: 'stable' - name: Setup Rust toolchain - uses: dtolnay/rust-toolchain@stable + uses: dtolnay/rust-toolchain@nightly with: components: rustfmt, clippy @@ -61,7 +61,9 @@ jobs: run: cargo fmt -- --check - name: Run cargo clippy - run: cargo clippy -- -D warnings + run: | + rustup override set stable + cargo clippy -- -D warnings flutter-analyze: name: Flutter analyze From 79bdfa935225dcddeb62b751e1228d7d3aeaa0ce Mon Sep 17 00:00:00 2001 From: XMLHexagram Date: Mon, 2 Dec 2024 20:09:05 +0100 Subject: [PATCH 16/17] fix clippy --- database/src/actions/analysis.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/database/src/actions/analysis.rs b/database/src/actions/analysis.rs index c53b871eb..9667e2671 100644 --- a/database/src/actions/analysis.rs +++ b/database/src/actions/analysis.rs @@ -420,7 +420,7 @@ pub async fn get_percentile( }; // .with_context(|| "Unable to get analysis value")?; - Ok(result.unwrap_or_default() as f32) + Ok(result.unwrap_or_default()) } pub async fn get_percentile_analysis_result( From bd2cfa10394a4a8d35d5e434b1e333fff60f2219 Mon Sep 17 00:00:00 2001 From: XMLHexagram Date: Tue, 3 Dec 2024 01:09:46 +0100 Subject: [PATCH 17/17] add: Lint script in justfile --- Justfile | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Justfile b/Justfile index 5d24694b7..d009e899d 100644 --- a/Justfile +++ b/Justfile @@ -1,3 +1,9 @@ +lint: + cargo fmt -- --check + cargo clippy -- -D warnings + flutter analyze . + dart analyze . + macos-ci-all: macos-ci-clean macos-ci-install ./scripts/macos_2_build.sh ./scripts/macos_3_prepare_before_sign.sh