Skip to content

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.

  • 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

Add this to your package’s pubspec.yaml file:

dependencies:
flutter_freedome_connectivity: ^1.0.0
import 'package:flutter_freedome_connectivity/flutter_freedome_connectivity.dart';
final connectionService = FreeDomeConnectionService();
// Initialize the service
await connectionService.initialize();
// Start discovering systems
await connectionService.startDiscovery();
// Connect to a discovered system
final systems = connectionService.discoveredSystems;
if (systems.isNotEmpty) {
final success = await connectionService.connectToDome(systems.first);
if (success) {
print('Connected to: ${connectionService.activeDome?.name}');
}
}
// Listen to events
connectionService.eventStream.listen((event) {
print('Event: ${event.type} - ${event.data}');
});
final discoveryService = FreeDomeDiscoveryService();
// Start discovery
await discoveryService.startDiscovery();
// Listen to discovered systems
discoveryService.systemsStream.listen((systems) {
for (final system in systems) {
print('Found system: ${system.name} at ${system.ipAddress}:${system.port}');
}
});
// Check if system is available
final isAvailable = await discoveryService.isSystemAvailable(system);
// Send command to connected system
final 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}');
}
  • DomeSystem - Represents a FreeDome system
  • FreeDomeConnectionStatus - Connection status information
  • FreeDomeEvent - Real-time events from systems
  • FreeDomeCommand - Commands to send to systems
  • FreeDomeResponse - Responses from systems
  • DiscoverySettings - Configuration for network discovery
  • FreeDomeConnectionService - Main connection management
  • FreeDomeDiscoveryService - Network discovery service
  • DomeSystemStatus - System status (offline, online, maintenance, error)

NativeMindNONC — see the LICENSE file.

Commercial use → NativeMind sales