use busylib::types::app_name::AppName;
use busylib::types::asset_path::AssetPath;
use busylib::types::stock_path::StockPath;
use busylib::types::volume::Volume;
use clap::{ArgGroup, Subcommand};
use crate::cli::Context;
use crate::error::Result;
#[derive(Debug, Subcommand)]
pub enum AudioCommand {
#[command(group = ArgGroup::new("audio-source").required(true).args(["path", "stock"]))]
Play {
#[arg(long, short = 'a', value_name = "NAME")]
app: AppName,
#[arg(long, value_name = "PATH")]
path: Option<AssetPath>,
#[arg(long, value_name = "PATH")]
stock: Option<StockPath>,
},
Stop,
Volume,
SetVolume {
#[arg(value_name = "PERCENT")]
volume: Volume,
#[arg(long)]
silent: bool,
},
}
impl AudioCommand {
pub async fn run(self, _context: &Context) -> Result<()> {
todo!()
}
}