# RadioCast A lightweight, cross-platform radio player built with Tauri and Vanilla JavaScript. Features local playback and Google Cast integration. ## Prerequisites Before you begin, ensure you have the following installed on your machine: 1. **Node.js**: [Download Node.js](https://nodejs.org/) (LTS version recommended). 2. **Rust**: Install via [rustup.rs](https://rustup.rs/). 3. **Visual Studio C++ Build Tools** (Windows only): Required for compiling Rust. Ensure "Desktop development with C++" is selected during installation. ## Installation 1. **Clone the repository**: ```bash git clone cd RadioCast ``` 2. **Install dependencies**: ```bash npm install ``` 3. **Verify Rust environment**: It's good practice to ensure your Rust environment is ready. ```bash cd src-tauri cargo check cd .. ``` ## Development To start the application in development mode (with hot-reloading for frontend changes): ```bash npm run tauri dev ``` This command will: 1. Compile the Rust backend. 2. Launch the application window. 3. Watch for changes in `src/` and `src-tauri/`. ## Building for Production To create an optimized, standalone executable for your operating system: 1. **Run the build command**: ```bash npm run tauri build ``` 2. **Locate the artifacts**: After the build completes, the installers and executables will be found in: - **Windows**: `src-tauri/target/release/bundle/msi/` or `nsis/` - **macOS**: `src-tauri/target/release/bundle/dmg/` or `macos/` - **Linux**: `src-tauri/target/release/bundle/deb/` or `appimage/` ## Project Structure * **`src/`**: Frontend source code (Vanilla HTML/CSS/JS). * `index.html`: The main entry point of the app. * `main.js`: Core logic, handles UI events and communication with the Tauri backend. * `styles.css`: Application styling. * `stations.json`: Configuration file for available radio streams. * **`src-tauri/`**: Rust backend code. * `src/main.rs`: The entry point for the Rust process. Handles Google Cast discovery and playback logic. * `tauri.conf.json`: Configuration for the Tauri app (window size, permissions, package info). ## Customization ### Adding Radio Stations To add new stations, edit the `src/stations.json` file. Add a new object to the array with a `name` and stream `url`: ```json [ { "name": "My New Station", "url": "https://stream-url.com/stream" } ] ``` ### Adjusting Window Size To change the default window size, edit `src-tauri/tauri.conf.json`: ```json "windows": [ { "width": 360, // Change width "height": 720, // Change height "resizable": false } ] ``` ## Troubleshooting * **Command `tauri` not found**: Ensure you are running commands via `npm run tauri ...` or global install `@tauri-apps/cli`. * **WebView2 Error (Windows)**: If the app doesn't start on Windows, ensure the [Microsoft Edge WebView2 Runtime](https://developer.microsoft.com/en-us/microsoft-edge/webview2/) is installed. * **Build Failures**: Try running `cargo update` inside the `src-tauri` folder to update Rust dependencies. ## License [Add License Information Here]