[[bin]]
name = "moosicbox_app_native"
path = "src/main.rs"
required-features = []

[dependencies.console-subscriber]
optional = true
version = "0.5.0"

[dependencies.flume]
version = "0.12.0"

[dependencies.hyperchad]
default-features = false
features = [
    "actions",
    "app",
    "logic",
    "renderer",
    "renderer-canvas",
    "router",
    "router-form",
    "router-serde",
    "transformer",
]
version = "0.3.0"

[dependencies.log]
features = ["release_max_level_trace"]
version = "0.4.29"

[dependencies.moosicbox_app_models]
default-features = false
features = ["music-api-api"]
version = "0.3.0"

[dependencies.moosicbox_app_native_bundled]
default-features = false
optional = true
version = "0.3.0"

[dependencies.moosicbox_app_native_ui]
default-features = false
version = "0.3.0"

[dependencies.moosicbox_app_state]
default-features = false
version = "0.3.0"

[dependencies.moosicbox_assert]
default-features = false
version = "0.3.0"

[dependencies.moosicbox_audio_zone_models]
default-features = false
version = "0.3.0"

[dependencies.moosicbox_config]
default-features = false
version = "0.3.0"

[dependencies.moosicbox_downloader]
default-features = false
features = ["api"]
version = "0.3.0"

[dependencies.moosicbox_env_utils]
default-features = false
version = "0.3.0"

[dependencies.moosicbox_log_runtime]
default-features = false
features = [
    "env-filter",
    "file",
    "layer-ext",
    "log-compat",
]
version = "0.3.0"

[dependencies.moosicbox_logging]
default-features = false
features = ["macros"]
version = "0.3.0"

[dependencies.moosicbox_music_api]
default-features = false
version = "0.3.0"

[dependencies.moosicbox_music_api_api]
default-features = false
version = "0.3.0"

[dependencies.moosicbox_music_api_models]
default-features = false
features = ["api-search"]
version = "0.3.0"

[dependencies.moosicbox_music_models]
default-features = false
version = "0.3.0"

[dependencies.moosicbox_paging]
default-features = false
version = "0.3.0"

[dependencies.moosicbox_player]
default-features = false
version = "0.3.0"

[dependencies.moosicbox_scan_models]
default-features = false
features = ["api"]
version = "0.3.0"

[dependencies.moosicbox_session_models]
default-features = false
version = "0.3.0"

[dependencies.moosicbox_ws]
default-features = false
version = "0.3.0"

[dependencies.serde]
features = ["derive"]
version = "1.0.228"

[dependencies.serde_json]
version = "1.0.149"

[dependencies.strum]
version = "0.28.0"

[dependencies.switchy]
default-features = false
features = [
    "async-macros",
    "async-net",
    "async-rt-multi-thread",
    "async-sync",
    "async-time",
    "async-tokio",
    "async-util",
    "fs-tokio",
    "http-json",
    "http-reqwest",
    "time-std",
]
version = "0.3.0"

[dependencies.switchy_async]
default-features = false
features = ["tokio"]
version = "0.3.0"

[dependencies.switchy_env]
default-features = false
features = ["std"]
version = "0.3.0"

[dependencies.thiserror]
version = "2.0.18"

[features]
_calculated_canvas = ["_canvas"]
_canvas = []
_sse = [
    "hyperchad/renderer-html-sse",
    "hyperchad/renderer-vanilla-js-plugin-sse",
]
actix = [
    "_sse",
    "hyperchad/renderer-html-actix",
]
all-decoders = [
    "all-os-decoders",
    "decoder-mp3",
    "moosicbox_app_native_bundled?/all-decoders",
    "moosicbox_downloader/all-decoders",
    "moosicbox_player/all-decoders",
]
all-formats = [
    "all-os-formats",
    "format-mp3",
    "moosicbox_app_native_bundled?/all-formats",
    "moosicbox_app_native_ui/all-formats",
    "moosicbox_downloader/all-formats",
    "moosicbox_music_models/all-formats",
    "moosicbox_player/all-formats",
]
all-os-decoders = [
    "decoder-aac",
    "decoder-flac",
    "decoder-opus",
    "moosicbox_app_native_bundled?/all-os-decoders",
    "moosicbox_downloader/all-os-decoders",
    "moosicbox_player/all-os-decoders",
]
all-os-formats = [
    "format-aac",
    "format-flac",
    "format-opus",
    "moosicbox_app_native_bundled?/all-os-formats",
    "moosicbox_app_native_ui/all-os-formats",
    "moosicbox_downloader/all-os-formats",
    "moosicbox_music_models/all-os-formats",
    "moosicbox_player/all-os-formats",
]
all-sources = [
    "moosicbox_app_native_bundled?/all-sources",
    "moosicbox_app_state/all-sources",
    "qobuz",
    "tidal",
    "yt",
]
assets = ["hyperchad/renderer-assets"]
benchmark = ["hyperchad/benchmark"]
bundled = [
    "all-sources",
    "dep:moosicbox_app_native_bundled",
]
console-subscriber = ["dep:console-subscriber"]
debug = ["hyperchad/debug"]
decoder-aac = [
    "format-aac",
    "moosicbox_app_native_bundled?/decoder-aac",
    "moosicbox_downloader/decoder-aac",
    "moosicbox_player/decoder-aac",
]
decoder-flac = [
    "format-flac",
    "moosicbox_app_native_bundled?/decoder-flac",
    "moosicbox_downloader/decoder-flac",
    "moosicbox_player/decoder-flac",
]
decoder-mp3 = [
    "format-mp3",
    "moosicbox_app_native_bundled?/decoder-mp3",
    "moosicbox_downloader/decoder-mp3",
    "moosicbox_player/decoder-mp3",
]
decoder-opus = [
    "format-opus",
    "moosicbox_app_native_bundled?/decoder-opus",
    "moosicbox_downloader/decoder-opus",
    "moosicbox_player/decoder-opus",
]
default = [
    "all-decoders",
    "all-sources",
    "console-subscriber",
    "dev",
    "egui-wgpu",
    "fltk",
    "html",
    "unsafe",
    "vanilla-js",
]
dev = [
    "assets",
    "static-routes",
]
egui = [
    "_calculated_canvas",
    "hyperchad/renderer-egui",
]
egui-glow = [
    "egui",
    "hyperchad/renderer-egui-glow",
]
egui-v1 = [
    "egui",
    "hyperchad/renderer-egui-v1",
]
egui-v2 = [
    "egui",
    "hyperchad/renderer-egui-v2",
]
egui-wgpu = [
    "egui",
    "hyperchad/renderer-egui-wgpu",
]
fail-on-warnings = [
    "hyperchad/fail-on-warnings",
    "moosicbox_app_models/fail-on-warnings",
    "moosicbox_app_native_bundled?/fail-on-warnings",
    "moosicbox_app_native_ui/fail-on-warnings",
    "moosicbox_app_state/fail-on-warnings",
    "moosicbox_assert/fail-on-warnings",
    "moosicbox_audio_zone_models/fail-on-warnings",
    "moosicbox_config/fail-on-warnings",
    "moosicbox_downloader/fail-on-warnings",
    "moosicbox_env_utils/fail-on-warnings",
    "moosicbox_log_runtime/fail-on-warnings",
    "moosicbox_logging/fail-on-warnings",
    "moosicbox_music_api/fail-on-warnings",
    "moosicbox_music_api_api/fail-on-warnings",
    "moosicbox_music_api_models/fail-on-warnings",
    "moosicbox_music_models/fail-on-warnings",
    "moosicbox_paging/fail-on-warnings",
    "moosicbox_player/fail-on-warnings",
    "moosicbox_scan_models/fail-on-warnings",
    "moosicbox_session_models/fail-on-warnings",
    "moosicbox_ws/fail-on-warnings",
    "switchy/fail-on-warnings",
    "switchy_async/fail-on-warnings",
    "switchy_env/fail-on-warnings",
]
fltk = [
    "_calculated_canvas",
    "hyperchad/renderer-fltk",
]
format = ["hyperchad/format"]
format-aac = [
    "moosicbox_app_native_bundled?/format-aac",
    "moosicbox_app_native_ui/aac",
    "moosicbox_app_state/aac",
    "moosicbox_downloader/format-aac",
    "moosicbox_music_models/aac",
    "moosicbox_player/format-aac",
]
format-flac = [
    "moosicbox_app_native_bundled?/format-flac",
    "moosicbox_app_native_ui/flac",
    "moosicbox_app_state/flac",
    "moosicbox_downloader/format-flac",
    "moosicbox_music_models/flac",
    "moosicbox_player/format-flac",
]
format-mp3 = [
    "moosicbox_app_native_bundled?/format-mp3",
    "moosicbox_app_native_ui/mp3",
    "moosicbox_app_state/mp3",
    "moosicbox_downloader/format-mp3",
    "moosicbox_music_models/mp3",
    "moosicbox_player/format-mp3",
]
format-opus = [
    "moosicbox_app_native_bundled?/format-opus",
    "moosicbox_app_native_ui/opus",
    "moosicbox_app_state/opus",
    "moosicbox_downloader/format-opus",
    "moosicbox_music_models/opus",
    "moosicbox_player/format-opus",
]
html = [
    "_canvas",
    "hyperchad/renderer-html",
]
insecure = ["hyperchad/renderer-vanilla-js-plugin-uuid-insecure"]
lambda = [
    "_sse",
    "hyperchad/renderer-html-lambda",
]
profiling-puffin = ["hyperchad/profiling-puffin"]
profiling-tracing = ["hyperchad/profiling-tracing"]
profiling-tracy = ["hyperchad/profiling-tracy"]
qobuz = [
    "format-flac",
    "moosicbox_app_native_bundled?/qobuz",
    "moosicbox_app_state/qobuz",
    "moosicbox_music_api_api/auth-username-password",
]
static-routes = ["hyperchad/router-static-routes"]
syntax-highlighting = ["hyperchad/router-syntax-highlighting"]
tauri = ["hyperchad/renderer-vanilla-js-plugin-tauri-event"]
tidal = [
    "format-flac",
    "moosicbox_app_native_bundled?/tidal",
    "moosicbox_app_state/tidal",
    "moosicbox_music_api_api/auth-poll",
]
unsafe = ["hyperchad/unsafe"]
vanilla-js = [
    "_canvas",
    "html",
    "hyperchad/renderer-vanilla-js",
    "hyperchad/renderer-vanilla-js-plugin-actions",
    "hyperchad/renderer-vanilla-js-plugin-canvas",
    "hyperchad/renderer-vanilla-js-plugin-event",
    "hyperchad/renderer-vanilla-js-plugin-form",
    "hyperchad/renderer-vanilla-js-plugin-idiomorph",
    "hyperchad/renderer-vanilla-js-plugin-nav",
    "hyperchad/renderer-vanilla-js-plugin-routing",
    "hyperchad/renderer-vanilla-js-plugin-uuid",
]
wayland = ["hyperchad/wayland"]
windows-console = []
x11 = ["hyperchad/x11"]
yt = [
    "format-flac",
    "moosicbox_app_native_bundled?/yt",
    "moosicbox_app_state/yt",
]

[package]
authors = ["Braden Steffaniak"]
build = "build.rs"
categories = ["gui"]
description = "MoosicBox native App package"
edition = "2024"
keywords = [
    "app",
    "desktop",
    "gui",
    "native",
]
license = "MPL-2.0"
name = "moosicbox_app_native"
readme = "README.md"
repository = "https://github.com/MoosicBox/MoosicBox"
version = "0.3.0"

[package.metadata]
examples = false
tests = false

[package.metadata.bundle]
category = "Music"
copyright = "Copyright (c) Braden Steffaniak 2025. All rights reserved."
deb_depends = []
icon = [
    "128x128.png",
    "128x128@2x.png",
    "32x32.png",
]
identifier = "com.moosicbox.app"
name = "MoosicBox"
resources = []
short_description = "A music app for cows"

[package.metadata.wix]
compiler-args = ["-nologo"]
dbg-build = false
dbg-name = false
eula = false
linker-args = ["-nologo"]
name = "MoosicBox"
no-build = false
product-name = "MoosicBox"
