flutter_freedome_connectivity
1.2.0+ is a facade over
freedome_client. New code should use the client directly — see doc/migration-to-freedome_client.md.
FreeDome connectivity and discovery library for Flutter applications.
Features
Section titled “Features”- Automatic discovery of FreeDome systems on local network
- Connection management with multiple protocols (Socket.IO, WebSocket, HTTP)
- Real-time event streaming
- Heartbeat monitoring and auto-reconnection
- Network scanning with configurable settings
- Connection status tracking
Installation
Section titled “Installation”Add this to your package’s pubspec.yaml file:
dependencies: flutter_freedome_connectivity: ^1.0.0Connection Service
Section titled “Connection Service”import 'package:flutter_freedome_connectivity/flutter_freedome_connectivity.dart';
final connectionService = FreeDomeConnectionService();
// Initialize the serviceawait connectionService.initialize();
// Start discovering systemsawait connectionService.startDiscovery();
// Connect to a discovered systemfinal systems = connectionService.discoveredSystems;if (systems.isNotEmpty) { final success = await connectionService.connectToDome(systems.first); if (success) { print('Connected to: ${connectionService.activeDome?.name}'); }}
// Listen to eventsconnectionService.eventStream.listen((event) { print('Event: ${event.type} - ${event.data}');});Discovery Service
Section titled “Discovery Service”final discoveryService = FreeDomeDiscoveryService();
// Start discoveryawait discoveryService.startDiscovery();
// Listen to discovered systemsdiscoveryService.systemsStream.listen((systems) { for (final system in systems) { print('Found system: ${system.name} at ${system.ipAddress}:${system.port}'); }});
// Check if system is availablefinal isAvailable = await discoveryService.isSystemAvailable(system);Sending Commands
Section titled “Sending Commands”// Send command to connected systemfinal response = await connectionService.sendCommand( FreeDomeCommand( type: 'play_video', data: {'video_id': '123', 'quality': 'hd'}, targetSystemId: connectionService.activeDome?.id, timestamp: DateTime.now(), ),);
if (response.success) { print('Command sent successfully');} else { print('Command failed: ${response.error}');}API Reference
Section titled “API Reference”Models
Section titled “Models”DomeSystem- Represents a FreeDome systemFreeDomeConnectionStatus- Connection status informationFreeDomeEvent- Real-time events from systemsFreeDomeCommand- Commands to send to systemsFreeDomeResponse- Responses from systemsDiscoverySettings- Configuration for network discovery
Services
Section titled “Services”FreeDomeConnectionService- Main connection managementFreeDomeDiscoveryService- Network discovery service
DomeSystemStatus- System status (offline, online, maintenance, error)
License
Section titled “License”NativeMindNONC — see the LICENSE file.
Commercial use → NativeMind sales