# 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 <repository-url>
    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]
