diff --git a/README.md b/README.md index 42ba793..b30e928 100644 --- a/README.md +++ b/README.md @@ -54,6 +54,7 @@ Visit [rustup.rs](https://rustup.rs/) and follow the provided instructions. ### Build Flutter Rust Bridge cargo install 'flutter_rust_bridge_codegen@^2.0.0' + flutter_rust_bridge_codegen generate ### Build Community Remote A debug build can be built and run from Visual Studio Code. diff --git a/images/browse-about.png b/images/browse-about.png new file mode 100644 index 0000000..e8be250 Binary files /dev/null and b/images/browse-about.png differ diff --git a/images/category-hiding.png b/images/category-hiding.png new file mode 100644 index 0000000..62ebeb3 Binary files /dev/null and b/images/category-hiding.png differ diff --git a/images/extension-settings.png b/images/extension-settings.png new file mode 100644 index 0000000..8aeab31 Binary files /dev/null and b/images/extension-settings.png differ diff --git a/images/linux-dark-controls-overview.png b/images/linux-dark-controls-overview.png new file mode 100644 index 0000000..5d335b2 Binary files /dev/null and b/images/linux-dark-controls-overview.png differ diff --git a/images/linux-dark.png b/images/linux-dark.png index 9cee1b3..4d971f1 100644 Binary files a/images/linux-dark.png and b/images/linux-dark.png differ diff --git a/images/now-playing-about.png b/images/now-playing-about.png new file mode 100644 index 0000000..0d97ff9 Binary files /dev/null and b/images/now-playing-about.png differ diff --git a/images/profile-fixed.png b/images/profile-fixed.png new file mode 100644 index 0000000..5194fa3 Binary files /dev/null and b/images/profile-fixed.png differ diff --git a/images/random-album-track.png b/images/random-album-track.png new file mode 100644 index 0000000..01c7a27 Binary files /dev/null and b/images/random-album-track.png differ diff --git a/index.md b/index.md new file mode 100644 index 0000000..eac060c --- /dev/null +++ b/index.md @@ -0,0 +1,98 @@ +# Why Community Remote? +Community Remote has a focus on use-cases not covered by the official Roon app. +Linux support is the obvious one, others are access control, random album playback and more. + +Linux dark theme + +## The Lightweight Roon GUI for Linux +Linux support provided by Roon Labs ends at the Roon Server offering. If a Roon Remote or GUI for Linux is wanted the unsupported tinkering solutions have to be used. The common path chosen here is the Roon on Wine solution, but it is picky on Wine versions and can be high on resources. + +If quick access and lightweight is prefered over fully featured, then Community Remote can be a good alternative. By using the Flathub universal Linux packaging it can be installed on about any Linux distribution. + +## Roon Control for Family and Friends +With Community Remote the level of access to the Roon system can be restricted. Giving family and friends access using the official Roon app gives them access to every feature, profile and zone available in Roon, but this might not be desired. With Community Remote the available profiles and zones can be restricted independently for each phone, tablet or laptop connected to the Roon system. This setup is done in the Extensions setup of the Roon app, each connected Community Remote will have its own entry in the list. See [First time setup](#first-time-setup) for details. + +### Profile selection +The profile can remain selectable or given a fixed assignment. By assigning a fixed profile to a Community Remote install you prevent that play histories get polluted due to use of the incorrect profile. A fixed profile is indicated by the disable profile button at the left of the app bar. + +Fixed Profile + +*Note: The profile button is not available on the small (phone) layout.* + +### Output whitelisting +In the extension Settings you can specify the outputs (Roon Endpoints) that are accessible by Community Remote. Only (grouped) zones for which all outputs are on the whilelist will appear in the zone selection dialog. + +This feature is created with the family and friends use case in mind, preventing them from e.g. accessing the main system. But there are more use cases. For a desktop Linux system it might make sense to only control zones on the same floor, or prevent accidental control of a zone in one of the bedrooms. + +## The Roon Companion Remote +The official Roon app is the obvious point of access when using Roon, but having an alternative can help when running into issues, like accessing the Roon Server. Community Remote is the companion at hand when the need arises. + +# How to Get it? +### When using Linux you can: + + + Get it on Flathub + + +On linux both the x86_64 (PC) and aarch64 (Arm64) architecture are supported. + +### Visit the project [Release Page](https://github.com/TheAppgineer/community_remote/releases/latest) for Android and Windows builds. + +
+ +# How to Use? +## First Time Setup +Use the offical Roon app and open the Settings from the hamburger menu. Select the Extensions tab and Enable the Community Remote extension, then select its Settings. Within the Settings any profile or output restrictions can be setup, confirm settings by selecting Save. + +Extension Settings + +
+ +## Overview +The Community Remote home screen has the following top level controls: + +1. Navigation Rail: Used to select the category displayed in the Browser +2. Browser: Used to browse the hierarchy of the selected category +3. Queue: Shows the queued list of songs to play +4. Now Playing: Shows the metadata of the current song, click for opening Now Playing screen +5. Zone Select: Select the zone to control +6. Volume Control: Set the volume of the outputs of the zone +7. Next, Prev: progress to next or previous track +8. Quick Access Button: main action for current context, normally Play/Pause, alternatively Server Connect or Zone Select + +Linux dark theme + +## Feature Highlights +### Random Album or Track Selection +The Browser supports the adding of random Albums or Tracks by means of the Pick Random entry. Queue up multiple random entries to prepare for a lazy listening session. The default action is to append to the Queue, but specific actions can be selected via the drop down menu. + +Extension Settings + +### Category Hiding +By long pressing one of the icons on the navigation rail at the left, the rail will open up with all icons changed to toggles. With these toggles the categories that are not needed can be hidden. + +*Note: This feature is not available on the small (phone) layout.* + +Extension Settings + +
+ +### Wikipedia Info +When browsing an Artist or Album there is an About entry, when selected the artist or album is searched for on Wikipedia and if found the information is displayed. + +Extension Settings + +When in the Now Playing screen the Artist and Album of the current track are also searched for on Wikipedia. Toggling between album and artist information is done via the button in the top right corner. + +Extension Settings + +# How to Support the Project? +If you like Community Remote as an addition to your Roon setup then you might consider a donation. Donations will be used for recurring costs like domain renewal or to buy hardware needed to support the different platforms. + + + Buy Me A Coffee + + +
+ +You can also contribute by reporting issues or providing pull requests over on [GitHub](https://github.com/TheAppgineer/community_remote). diff --git a/pubspec.lock b/pubspec.lock index d1f3e01..77006af 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -269,10 +269,10 @@ packages: dependency: "direct main" description: name: flutter_rust_bridge - sha256: "5fe868d3cb8cbc4d83091748552e03f00ccfa41b8e44691bc382611f831d5f8b" + sha256: fb9d3c9395eae3c71d4fe3ec343b9f30636c9988150c8bb33b60047549b34e3d url: "https://pub.dev" source: hosted - version: "2.5.1" + version: "2.6.0" flutter_test: dependency: "direct dev" description: flutter diff --git a/pubspec.yaml b/pubspec.yaml index 788e9b3..c2dc024 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -16,7 +16,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html # In Windows, build-name is used as the major, minor, and patch parts # of the product and file versions while build-number is used as the build suffix. -version: 0.0.10 +version: 0.1.0 environment: sdk: '>=3.4.0 <4.0.0' @@ -38,7 +38,7 @@ dependencies: material_symbols_icons: ^4.2719.1 rust_builder: path: rust_builder - flutter_rust_bridge: 2.5.1 + flutter_rust_bridge: 2.6.0 provider: ^6.0.0 freezed_annotation: ^2.4.1 path_provider: ^2.1.2 diff --git a/rust/Cargo.lock b/rust/Cargo.lock index e4c883c..e0527f4 100644 --- a/rust/Cargo.lock +++ b/rust/Cargo.lock @@ -51,9 +51,9 @@ dependencies = [ [[package]] name = "allocator-api2" -version = "0.2.18" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" +checksum = "611cc2ae7d2e242c457e4be7f97036b8ad9ca152b499f53faf99b1ed8fc2553f" [[package]] name = "android-tzdata" @@ -96,9 +96,9 @@ checksum = "ea50b14b7a4b9343f8c627a7a53c52076482bd4bdad0a24fd3ec533ed616cc2c" [[package]] name = "anyhow" -version = "1.0.92" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74f37166d7d48a0284b99dd824694c26119c700b53bf0d1540cdb147dbdaaf13" +checksum = "4c95c10ba0b00a02636238b814946408b1322d5ac4760326e6fb8ec956d85775" [[package]] name = "arraydeque" @@ -206,9 +206,9 @@ checksum = "9ac0150caa2ae65ca5bd83f25c7de183dea78d4d366469f148435e2acfbad0da" [[package]] name = "cc" -version = "1.1.31" +version = "1.1.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2e7962b54006dcfcc61cb72735f4d89bb97061dd6a7ed882ec6b8ee53714c6f" +checksum = "40545c26d092346d8a8dab71ee48e7685a7a9cba76e634790c215b41a4a7b4cf" dependencies = [ "shlex", ] @@ -422,6 +422,17 @@ dependencies = [ "subtle", ] +[[package]] +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "dlv-list" version = "0.5.2" @@ -478,15 +489,15 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" +checksum = "486f806e73c5707928240ddc295403b1b93c96a02038563881c4a2fd84b81ac4" [[package]] name = "flutter_rust_bridge" -version = "2.5.1" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f052ec223b70cbdf2248376a9ad5af9281b3fdf8ea3c7d3f66fff52a9aaf1fa" +checksum = "93b95a1b4f20b8c037535bcda990abf0ae2bd94c93e27ebbbe00633322bc1561" dependencies = [ "allo-isolate", "android_logger", @@ -513,9 +524,9 @@ dependencies = [ [[package]] name = "flutter_rust_bridge_macros" -version = "2.5.1" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23414fe526f51870c6d89d27bbffbee52ebe0900164a4147b32caf1d3e131682" +checksum = "fafd532ccfcce8ef23e858fe07303ff572e8b302be6ec0b0f38ca6eb319206dc" dependencies = [ "hex", "md-5", @@ -682,9 +693,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.15.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb" +checksum = "3a9bfc1af68b1726ea47d3d5109de126281def866b33970e10fbab11b5dafab3" [[package]] name = "hashlink" @@ -851,6 +862,124 @@ dependencies = [ "cc", ] +[[package]] +name = "icu_collections" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locid" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_locid_transform" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" + +[[package]] +name = "icu_normalizer" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" + +[[package]] +name = "icu_properties" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locid_transform", + "icu_properties_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" + +[[package]] +name = "icu_provider" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "idna" version = "0.3.0" @@ -871,6 +1000,27 @@ dependencies = [ "unicode-normalization", ] +[[package]] +name = "idna" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" +dependencies = [ + "icu_normalizer", + "icu_properties", +] + [[package]] name = "if-addrs" version = "0.13.3" @@ -888,7 +1038,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" dependencies = [ "equivalent", - "hashbrown 0.15.0", + "hashbrown 0.15.1", ] [[package]] @@ -937,9 +1087,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.161" +version = "0.2.162" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9489c2807c139ffd9c1794f4af0ebe86a828db53ecdc7fea2111d0fed085d1" +checksum = "18d287de67fe55fd7e1581fe933d965a5a9477b38e949cfa9f8574ef01506398" [[package]] name = "linux-raw-sys" @@ -947,6 +1097,12 @@ version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" +[[package]] +name = "litemap" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" + [[package]] name = "lock_api" version = "0.4.12" @@ -1375,9 +1531,9 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.5.6" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e346e016eacfff12233c243718197ca12f148c84e1e84268a896699b41c71780" +checksum = "7d5a626c6807713b15cac82a6acaccd6043c9a5408c24baae07611fec3f243da" dependencies = [ "cfg_aliases", "libc", @@ -1569,7 +1725,7 @@ dependencies = [ [[package]] name = "rust_lib" -version = "0.0.10" +version = "0.1.0" dependencies = [ "any_ascii", "anyhow", @@ -1605,9 +1761,9 @@ checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" [[package]] name = "rustix" -version = "0.38.38" +version = "0.38.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa260229e6538e52293eeb577aabd09945a09d6d9cc0fc550ed7529056c2e32a" +checksum = "375116bee2be9ed569afe2154ea6a99dfdffd257f533f187498c2a8f5feaf4ee" dependencies = [ "bitflags", "errno", @@ -1705,9 +1861,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.12.0" +version = "2.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea4a292869320c0272d7bc55a5a6aafaff59b4f63404a003887b679a2e05b4b6" +checksum = "fa39c7303dc58b5543c94d22c1766b0d31f2ee58306363ea622b10bbc075eaa2" dependencies = [ "core-foundation-sys", "libc", @@ -1845,6 +2001,12 @@ version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + [[package]] name = "subtle" version = "2.6.1" @@ -1853,9 +2015,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "syn" -version = "2.0.86" +version = "2.0.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89275301d38033efb81a6e60e3497e734dfcc62571f2854bf4b16690398824c" +checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d" dependencies = [ "proc-macro2", "quote", @@ -1871,11 +2033,22 @@ dependencies = [ "futures-core", ] +[[package]] +name = "synstructure" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "tempfile" -version = "3.13.0" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f2c9fc62d0beef6951ccffd757e241266a2c833136efbe35af6cd2567dca5b" +checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" dependencies = [ "cfg-if", "fastrand", @@ -1895,18 +2068,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.66" +version = "1.0.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d171f59dbaa811dbbb1aee1e73db92ec2b122911a48e1390dfe327a821ddede" +checksum = "02dd99dc800bbb97186339685293e1cc5d9df1f8fae2d0aecd9ff1c77efea892" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.66" +version = "1.0.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b08be0f17bd307950653ce45db00cd31200d82b624b36e181337d9c7d92765b5" +checksum = "a7c61ec9a6f64d2793d8a45faba21efbe3ced62a886d44c36a009b2b519b4c7e" dependencies = [ "proc-macro2", "quote", @@ -1964,6 +2137,16 @@ dependencies = [ "crunchy", ] +[[package]] +name = "tinystr" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +dependencies = [ + "displaydoc", + "zerovec", +] + [[package]] name = "tinyvec" version = "1.8.0" @@ -1981,9 +2164,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.41.0" +version = "1.41.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "145f3413504347a2be84393cc8a7d2fb4d863b375909ea59f2158261aa258bbb" +checksum = "22cfb5bee7a6a52939ca9224d6ac897bb669134078daa8735560897f69de4d33" dependencies = [ "backtrace", "bytes", @@ -2208,12 +2391,12 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.2" +version = "2.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" +checksum = "8d157f1b96d14500ffdc1f10ba712e780825526c03d9a49b4d0324b0d9113ada" dependencies = [ "form_urlencoded", - "idna 0.5.0", + "idna 1.0.3", "percent-encoding", ] @@ -2229,6 +2412,18 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" +[[package]] +name = "utf16_iter" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + [[package]] name = "uuid" version = "1.11.0" @@ -2481,6 +2676,18 @@ dependencies = [ "memchr", ] +[[package]] +name = "write16" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + +[[package]] +name = "writeable" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" + [[package]] name = "yaml-rust2" version = "0.8.1" @@ -2492,6 +2699,30 @@ dependencies = [ "hashlink", ] +[[package]] +name = "yoke" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + [[package]] name = "zerocopy" version = "0.7.35" @@ -2513,8 +2744,51 @@ dependencies = [ "syn", ] +[[package]] +name = "zerofrom" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + [[package]] name = "zeroize" version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" + +[[package]] +name = "zerovec" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] diff --git a/rust/Cargo.toml b/rust/Cargo.toml index 6086d75..9ac5b8f 100644 --- a/rust/Cargo.toml +++ b/rust/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rust_lib" -version = "0.0.10" +version = "0.1.0" authors = ["The Appgineer"] edition = "2021" license-file = "LICENSE" @@ -15,19 +15,19 @@ crate-type = ["cdylib", "staticlib"] anyhow = "1.0" any_ascii = "0.3" chrono = { version = "0.4", features = ["clock"], default-features = false } -flutter_rust_bridge = "=2.5.1" +flutter_rust_bridge = "=2.6.0" log = "0.4" mediawiki = "0.3" -once_cell = "1.19" +once_cell = "1.20" rand = "0.8.5" -regex = "1.10" +regex = "1.11" reqwest = { version = "0.12", default-features = false, features = ["rustls-tls-native-roots"]} roon-api = { git = "https://github.com/TheAppgineer/rust-roon-api.git", tag = "0.3.1", features = ["browse", "image", "transport", "settings", "status"] } serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" simplelog = "0.12" time = "0.3" -tokio = { version = "1.24.1", features = ["macros"] } +tokio = { version = "1.41", features = ["macros"] } typetag = "0.2" [target.'cfg(unix)'.dependencies] diff --git a/windows/community_remote.iss b/windows/community_remote.iss index f9e086d..0f0671f 100644 --- a/windows/community_remote.iss +++ b/windows/community_remote.iss @@ -2,7 +2,7 @@ ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! #define MyAppName "Community Remote" -#define MyAppVersion "0.0.10" +#define MyAppVersion "0.1.0" #define MyAppPublisher "The Appgineer" #define MyAppURL "https://theappgineer.com/community_remote/" #define MyAppExeName "community_remote.exe"