Skip to content

elrizwiraswara/flutter_presentation_display

Repository files navigation

Flutter Presentation Display

Flutter Presentation Display is a Flutter plugin designed to run on multiple displays, including handling secondary (presentation) display. It provides methods to interact with connected displays, transfer data, and respond to display connection changes. Tested on SUNMI T2s.

Features

  • Retrieve a list of connected displays
  • Show and hide secondary (presentation) display
  • Transfer data from the main display to the secondary display or vice versa
  • Listen to display connection changes

Installation

Add flutter_presentation_display to your pubspec.yaml file:

dependencies:
  flutter:
    sdk: flutter
  flutter_presentation_display: any  # Replace with the latest version

Usage

Import the Package

import 'package:flutter_presentation_display/flutter_presentation_display.dart';

Initialize FlutterPresentationDisplay

Create an instance of FlutterPresentationDisplay:

final display = FlutterPresentationDisplay();

Retrieve Displays

Get a list of connected displays:

List<Display>? displays = await display.getDisplays();

Get Display Name by ID Retrieve the name of a display using its ID:

String? displayName = await display.getNameByDisplayId(1);

Get Display Name by Index Retrieve the name of a display using its index in the list:

String? displayName = await display.getNameByIndex(0);

Show and Hide Secondary Display

Show a secondary display with a specific ID and router name:

bool? result = await display.showSecondaryDisplay(
  displayId: 1,
  routerName: "presentation",
);

Hide a secondary display using its ID:

bool? result = await display.hideSecondaryDisplay(displayId: 1);

Transfer Data to and from Displays

Transfer data to the secondary (presentation) display:

bool? result = await display.transferDataToPresentation({"key": "value"});

Transfer data to the main display:

bool? result = await display.transferDataToMain({"key": "value"});

Listen to Display Connection Changes

Listen to changes in connected displays:

display.connectedDisplaysChangedStream.listen((int? displayId) {
  print('Connected display ID: $displayId');
});

Listen for Data from Displays

Listen for data sent from the secondary (presentation) display:

display.listenDataFromPresentationDisplay((dynamic data) {
  print('Data from Presentation Display: $data');
});

Listen for data sent from the main display:

display.listenDataFromMainDisplay((dynamic data) {
  print('Data from Main Display: $data');
});

Example

Check out the example directory for a complete sample app demonstrating the use of the flutter_presentation_display package.

License

This package is based on presentation_displays which is licensed under the BSD 2-Clause License.
flutter_presentation_display is a modified version of the original version.

Support

Trakteer Saya