This project uses Go **build tags** to support multiple platforms from the same codebase. This can sometimes cause "redeclared" errors or "undefined" symbols in VS Code if not configured correctly.
### Recommended Setup
1.**Windows + MSYS2**: If you are developing on Windows and have Opus/PortAudio installed via MSYS2, your `.vscode/settings.json` should include the paths to your MinGW64 environment:
2.**Build Tags**: Do **not** force both tags simultaneously (e.g., `-tags=linux,windows`) as this will cause "redeclared" errors for types defined in both systems (like `Player` or `Capturer`).
3.**Switching OS Analysis**: If you are on Windows but want to check for errors in the Linux files, update your settings to:
```json
"go.toolsEnvVars": { "GOOS": "linux" }
```
### Pro Tip: VS Code Remote - WSL
For the best experience when working on Linux features from Windows, use the **WSL extension**. Open VS Code inside your WSL environment (`code .` from the WSL terminal). This allows `gopls` to run directly in Linux, where all system headers and libraries are natively available.
Si tu Gitea no tiene runners públicos, puedes convertir tu propia máquina Windows en uno:
1.**Descarga `act_runner`**: Descarga el binario oficial de [Gitea Actions Runner](https://gitea.com/gitea/act_runner/releases).
2.**Registro**:
- Ve a tu instancia de Gitea -> Administración del Sitio -> Actions -> Runners.
- Copia el **Registration Token**.
- Ejecuta: `./act_runner register`
- Introduce la URL de tu Gitea y el token.
- En **labels**, asegúrate de poner `windows-latest:host`.
3.**Ejecución**:
- Lanza el runner: `./act_runner daemon`.
- Ahora, cualquier push lanzará la build en tu PC de forma automática.
> [!TIP]
> El workflow usa **MSYS2** automáticamente para instalar `opus` y `portaudio` en el entorno temporal de la build, así que no necesitas configurar nada extra en el sistema del runner.