Merge beneficial changes from DerDaku/master: mDNS, Bluetooth, PCM optimization#5
Conversation
|
@copilot update your plan based on the updated issue. |
I've reviewed the DerDaku/master PR afaden#31 and updated the plan. The PR includes:
I'm now evaluating each change to ensure no breaking changes or feature duplication before merging. |
Co-authored-by: benlachman <100571+benlachman@users.noreply.github.com>
Co-authored-by: benlachman <100571+benlachman@users.noreply.github.com>
|
@copilot What do I need to install (npm/apt-get) to test this PR? |
To test this PR, you'll need: NPM packages (automatically installed): npm installThis installs the new dependencies: System packages (apt-get on Debian/Ubuntu): # For basic audio functionality
sudo apt-get install alsa-utils
# For Bluetooth input support (optional)
sudo apt-get install bluez
# For Node.js native module compilation
sudo apt-get install build-essentialTo test specific features:
The Bluetooth feature gracefully degrades if bluez is not installed - the app will still work without it. |
|
@copilot Let's flip the behavior of the PCM environment variable. PCM device support should default to on, and |
…disable Co-authored-by: benlachman <100571+benlachman@users.noreply.github.com>
Changed in commit 465d01a. PCM device scanning is now enabled by default, and Updated:
|
|
@copilot Add basic directions on how to pair a Bluetooth device using |
Co-authored-by: benlachman <100571+benlachman@users.noreply.github.com>
Added in commit d7cf3f9. The README now includes a "Pairing Bluetooth Devices" section in the Usage area with step-by-step bluetoothctl instructions:
The section explains that paired devices will automatically appear in BabelPod's input device list. |
This PR evaluates and merges beneficial improvements from DerDaku/master PR #31 while avoiding breaking changes and feature duplication.
Changes Merged
1. Enhanced mDNS Library (dnssd2)
mdns-jstodnssd2for better service discoveryserviceUp,serviceChanged, andserviceDownevent handlers for robust device tracking2. Bluetooth Input Support ✨
bluetoothctlbluealsafor ALSA-compatible streaming3. PCM Device Scanning
DISABLE_PCM=1environment variable to disable scanning on systems that don't use ALSA PCM devices4. AirPlay Streaming Stability
{end: false}pipe option to prevent premature stream closure5. Updated Dependencies
airtunes2: Pinned to v2.4.9 for Node 20 compatibility and stabilitybluetoothctl: Added support via DerDaku's node-bluetoothctl forkdnssd2: v1.0.0 for better mDNS handlingChanges NOT Merged (Avoided Duplication)
Testing
Added 10 new test cases covering:
Test Results: ✅ All 16 tests passing
Documentation
Environment Variables
DISABLE_PCM=1: Disable PCM device scanning. PCM scanning is enabled by default. Set this if you don't use ALSA PCM devices for better performance.BABEL_PORT=3000: Set the HTTP server port (default: 3000).Migration Notes
PCM devices work by default with no configuration needed.
For systems without ALSA/PCM devices (better performance):
For new Bluetooth support:
sudo apt-get install bluez # Follow the detailed bluetoothctl pairing instructions in the READMEQuality Assurance
Fixes #4
Original prompt
Fixes #4
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.