mirror of
https://github.com/immich-app/immich.git
synced 2025-06-23 15:30:51 -04:00
* initial cast framework complete and mocked cast dialog working * wip casting * casting works! just need to add session key check and remote video controls * cleanup of classes * add session expiration checks * cast dialog now shows connected device at top of list with a list header. Discovered devices are also cached for app session. * cast video player finalized * show fullsize assets on casting * translation already happens on the text element * remove prints * fix lintings * code review changes from @shenlong-tanwen * fix connect method override * fix alphabetization * remove important * filter chromecast audio devices * fix some disconnect command ordering issues and unawaited futures * remove prints * only disconnect if we are connected * don't try to reconnect if its the current device * add cast button to top bar * format sessions api * more formatting issues fixed * add snack bar to tell user that we cannot cast an asset that is not uploaded to server * make casting icon change to primary color when casting is active * only show casting snackbar if we are casting * dont show cast button if asset is remote and we are not casting * stop playing media if we seek to an asset that is not remote * remove https check since it works with local http IP addresses * remove unneeded imports * fix recasting when socket closes * fix info plist formatting * only show cast button if there is an active websocket connection (ie the server is accessible) * add device capability bitmask checks * small comment about bitmask
28 lines
717 B
Dart
28 lines
717 B
Dart
import 'package:immich_mobile/entities/asset.entity.dart';
|
|
import 'package:immich_mobile/models/cast/cast_manager_state.dart';
|
|
|
|
abstract interface class ICastDestinationService {
|
|
Future<bool> initialize();
|
|
CastDestinationType getType();
|
|
|
|
void Function(bool)? onConnectionState;
|
|
|
|
void Function(Duration)? onCurrentTime;
|
|
void Function(Duration)? onDuration;
|
|
|
|
void Function(String)? onReceiverName;
|
|
void Function(CastState)? onCastState;
|
|
|
|
Future<void> connect(dynamic device);
|
|
|
|
void loadMedia(Asset asset, bool reload);
|
|
|
|
void play();
|
|
void pause();
|
|
void seekTo(Duration position);
|
|
void stop();
|
|
Future<void> disconnect();
|
|
|
|
Future<List<(String, CastDestinationType, dynamic)>> getDevices();
|
|
}
|