flutter_cast_framework_modern/lib/src/PlatformBridgeApis.dart
2023-03-28 13:22:07 +02:00

1619 lines
49 KiB
Dart

// Autogenerated from Pigeon (v9.0.7), do not edit directly.
// See also: https://pub.dev/packages/pigeon
// ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, prefer_null_aware_operators, omit_local_variable_types, unused_shown_name, unnecessary_import
import 'dart:async';
import 'dart:typed_data' show Float64List, Int32List, Int64List, Uint8List;
import 'package:flutter/foundation.dart' show ReadBuffer, WriteBuffer;
import 'package:flutter/services.dart';
/// Docs here: https://developers.google.com/android/reference/com/google/android/gms/cast/MediaInfo
enum StreamType {
/// An invalid (unknown) stream type.
invalid,
/// A stream type of "none".
none,
/// A buffered stream type.
buffered,
/// A live stream type.
live,
}
/// Docs here: https://developers.google.com/android/reference/com/google/android/gms/cast/MediaMetadata
enum MediaType {
/// A media type representing generic media content.
generic,
/// A media type representing a movie.
movie,
/// A media type representing an TV show.
tvShow,
/// A media type representing a music track.
musicTrack,
/// A media type representing a photo.
photo,
/// A media type representing an audiobook chapter.
audiobookChapter,
/// The smallest media type value that can be assigned for application-defined media types.
user,
}
/// Docs here: https://developers.google.com/android/reference/com/google/android/gms/cast/MediaMetadata
enum MediaMetadataKey {
/// String key: Album artist.
albumArtist,
/// String key: Album title.
albumTitle,
/// String key: Artist.
artist,
/// String key: Audiobook title.
bookTitle,
/// String key: Broadcast date.
broadcastDate,
/// String key: Chapter number.
chapterNumber,
/// String key: Chapter title.
chapterTitle,
/// String key: Composer.
composer,
/// String key: Creation date.
creationDate,
/// Integer key: Disc number.
discNumber,
/// Integer key: Episode number.
episodeNumber,
/// Integer key: Height.
height,
/// Double key: Location latitude.
locationLatitude,
/// Double key: Location longitude.
locationLongitude,
/// String key: Location name.
locationName,
/// Int key: Queue item ID.
queueItemId,
/// String key: Release date.
releaseDate,
/// Integer key: Season number.
seasonNumber,
/// Time key in milliseconds: section duration.
sectionDuration,
/// Time key in milliseconds: section start absolute time.
sectionStartAbsoluteTime,
/// Time key in milliseconds: section start time in the container.
sectionStartTimeInContainer,
/// Time key in milliseconds: section start time in media item.
sectionStartTimeInMedia,
/// String key: Series title.
seriesTitle,
/// String key: Studio.
studio,
/// String key: Subtitle.
subtitle,
/// String key: Title.
title,
/// Integer key: Track number.
trackNumber,
/// Integer key: Width.
width,
}
/// Docs here: https://developers.google.com/android/reference/com/google/android/gms/cast/MediaTrack
enum TrackType {
/// A media track type indicating an unknown track type.
unknown,
/// A media track type indicating a text track.
text,
/// A media track type indicating an audio track.
audio,
/// A media track type indicating a video track.
video,
}
/// Docs here: https://developers.google.com/android/reference/com/google/android/gms/cast/MediaTrack
enum TrackSubtype {
/// A media track subtype indicating an unknown subtype.
unknown,
/// A media track subtype indicating no subtype.
none,
/// A media track subtype indicating subtitles.
subtitles,
/// A media track subtype indicating closed captions.
captions,
/// A media track subtype indicating descriptions.
descriptions,
/// A media track subtype indicating chapters.
chapters,
/// A media track subtype indicating metadata.
metadata,
}
/// State of the remote media player
enum PlayerState {
/// Constant indicating unknown player state.
unknown,
/// Constant indicating that the media player is idle.
idle,
/// Constant indicating that the media player is playing.
playing,
/// Constant indicating that the media player is paused.
paused,
/// Constant indicating that the media player is buffering.
buffering,
/// Constant indicating that the media player is loading.
loading,
}
/// Docs here: https://developers.google.com/android/reference/com/google/android/gms/cast/MediaLoadRequestData
class MediaLoadRequestData {
MediaLoadRequestData({
this.shouldAutoplay,
this.currentTime,
this.mediaInfo,
});
bool? shouldAutoplay;
int? currentTime;
MediaInfo? mediaInfo;
Object encode() {
return <Object?>[
shouldAutoplay,
currentTime,
mediaInfo?.encode(),
];
}
static MediaLoadRequestData decode(Object result) {
result as List<Object?>;
return MediaLoadRequestData(
shouldAutoplay: result[0] as bool?,
currentTime: result[1] as int?,
mediaInfo: result[2] != null
? MediaInfo.decode(result[2]! as List<Object?>)
: null,
);
}
}
/// Docs here: https://developers.google.com/android/reference/com/google/android/gms/cast/MediaInfo
class MediaInfo {
MediaInfo({
this.contentId,
this.streamType,
this.contentType,
this.mediaMetadata,
this.mediaTracks,
this.streamDuration,
this.adBreakClips,
this.customDataAsJson,
});
String? contentId;
StreamType? streamType;
String? contentType;
MediaMetadata? mediaMetadata;
List<MediaTrack?>? mediaTracks;
int? streamDuration;
List<AdBreakClipInfo?>? adBreakClips;
/// String containing a json object
String? customDataAsJson;
Object encode() {
return <Object?>[
contentId,
streamType?.index,
contentType,
mediaMetadata?.encode(),
mediaTracks,
streamDuration,
adBreakClips,
customDataAsJson,
];
}
static MediaInfo decode(Object result) {
result as List<Object?>;
return MediaInfo(
contentId: result[0] as String?,
streamType: result[1] != null
? StreamType.values[result[1]! as int]
: null,
contentType: result[2] as String?,
mediaMetadata: result[3] != null
? MediaMetadata.decode(result[3]! as List<Object?>)
: null,
mediaTracks: (result[4] as List<Object?>?)?.cast<MediaTrack?>(),
streamDuration: result[5] as int?,
adBreakClips: (result[6] as List<Object?>?)?.cast<AdBreakClipInfo?>(),
customDataAsJson: result[7] as String?,
);
}
}
/// Docs here: https://developers.google.com/android/reference/com/google/android/gms/cast/MediaMetadata
class MediaMetadata {
MediaMetadata({
this.mediaType,
this.strings,
this.webImages,
});
MediaType? mediaType;
Map<String?, String?>? strings;
List<WebImage?>? webImages;
Object encode() {
return <Object?>[
mediaType?.index,
strings,
webImages,
];
}
static MediaMetadata decode(Object result) {
result as List<Object?>;
return MediaMetadata(
mediaType: result[0] != null
? MediaType.values[result[0]! as int]
: null,
strings: (result[1] as Map<Object?, Object?>?)?.cast<String?, String?>(),
webImages: (result[2] as List<Object?>?)?.cast<WebImage?>(),
);
}
}
/// Docs here: https://developers.google.com/android/reference/com/google/android/gms/common/images/WebImage
class WebImage {
WebImage({
this.url,
});
String? url;
Object encode() {
return <Object?>[
url,
];
}
static WebImage decode(Object result) {
result as List<Object?>;
return WebImage(
url: result[0] as String?,
);
}
}
/// Docs here: https://developers.google.com/android/reference/com/google/android/gms/cast/MediaTrack
class MediaTrack {
MediaTrack({
this.id,
this.trackType,
this.name,
this.trackSubtype,
this.contentId,
this.language,
});
int? id;
TrackType? trackType;
String? name;
TrackSubtype? trackSubtype;
String? contentId;
String? language;
Object encode() {
return <Object?>[
id,
trackType?.index,
name,
trackSubtype?.index,
contentId,
language,
];
}
static MediaTrack decode(Object result) {
result as List<Object?>;
return MediaTrack(
id: result[0] as int?,
trackType: result[1] != null
? TrackType.values[result[1]! as int]
: null,
name: result[2] as String?,
trackSubtype: result[3] != null
? TrackSubtype.values[result[3]! as int]
: null,
contentId: result[4] as String?,
language: result[5] as String?,
);
}
}
class MediaStatus {
MediaStatus({
this.playerState,
this.isPlayingAd,
this.mediaInfo,
this.adBreakStatus,
});
PlayerState? playerState;
bool? isPlayingAd;
MediaInfo? mediaInfo;
AdBreakStatus? adBreakStatus;
Object encode() {
return <Object?>[
playerState?.index,
isPlayingAd,
mediaInfo?.encode(),
adBreakStatus?.encode(),
];
}
static MediaStatus decode(Object result) {
result as List<Object?>;
return MediaStatus(
playerState: result[0] != null
? PlayerState.values[result[0]! as int]
: null,
isPlayingAd: result[1] as bool?,
mediaInfo: result[2] != null
? MediaInfo.decode(result[2]! as List<Object?>)
: null,
adBreakStatus: result[3] != null
? AdBreakStatus.decode(result[3]! as List<Object?>)
: null,
);
}
}
class AdBreakStatus {
AdBreakStatus({
this.adBreakId,
this.adBreakClipId,
this.whenSkippableMs,
});
String? adBreakId;
String? adBreakClipId;
int? whenSkippableMs;
Object encode() {
return <Object?>[
adBreakId,
adBreakClipId,
whenSkippableMs,
];
}
static AdBreakStatus decode(Object result) {
result as List<Object?>;
return AdBreakStatus(
adBreakId: result[0] as String?,
adBreakClipId: result[1] as String?,
whenSkippableMs: result[2] as int?,
);
}
}
class AdBreakClipInfo {
AdBreakClipInfo({
this.id,
this.title,
this.contentId,
this.contentUrl,
this.clickThroughUrl,
this.durationMs,
this.imageUrl,
this.mimeType,
this.whenSkippableMs,
});
String? id;
String? title;
String? contentId;
String? contentUrl;
String? clickThroughUrl;
int? durationMs;
String? imageUrl;
String? mimeType;
int? whenSkippableMs;
Object encode() {
return <Object?>[
id,
title,
contentId,
contentUrl,
clickThroughUrl,
durationMs,
imageUrl,
mimeType,
whenSkippableMs,
];
}
static AdBreakClipInfo decode(Object result) {
result as List<Object?>;
return AdBreakClipInfo(
id: result[0] as String?,
title: result[1] as String?,
contentId: result[2] as String?,
contentUrl: result[3] as String?,
clickThroughUrl: result[4] as String?,
durationMs: result[5] as int?,
imageUrl: result[6] as String?,
mimeType: result[7] as String?,
whenSkippableMs: result[8] as int?,
);
}
}
class MediaQueueItem {
MediaQueueItem({
this.itemId,
this.playbackDuration,
this.startTime,
this.media,
this.autoplay,
this.preloadTime,
});
int? itemId;
double? playbackDuration;
double? startTime;
MediaInfo? media;
bool? autoplay;
double? preloadTime;
Object encode() {
return <Object?>[
itemId,
playbackDuration,
startTime,
media?.encode(),
autoplay,
preloadTime,
];
}
static MediaQueueItem decode(Object result) {
result as List<Object?>;
return MediaQueueItem(
itemId: result[0] as int?,
playbackDuration: result[1] as double?,
startTime: result[2] as double?,
media: result[3] != null
? MediaInfo.decode(result[3]! as List<Object?>)
: null,
autoplay: result[4] as bool?,
preloadTime: result[5] as double?,
);
}
}
class CastDevice {
CastDevice({
this.deviceId,
this.friendlyName,
this.modelName,
});
String? deviceId;
String? friendlyName;
String? modelName;
Object encode() {
return <Object?>[
deviceId,
friendlyName,
modelName,
];
}
static CastDevice decode(Object result) {
result as List<Object?>;
return CastDevice(
deviceId: result[0] as String?,
friendlyName: result[1] as String?,
modelName: result[2] as String?,
);
}
}
class CastMessage {
CastMessage({
this.namespace,
this.message,
});
String? namespace;
String? message;
Object encode() {
return <Object?>[
namespace,
message,
];
}
static CastMessage decode(Object result) {
result as List<Object?>;
return CastMessage(
namespace: result[0] as String?,
message: result[1] as String?,
);
}
}
class _CastHostApiCodec extends StandardMessageCodec {
const _CastHostApiCodec();
@override
void writeValue(WriteBuffer buffer, Object? value) {
if (value is AdBreakClipInfo) {
buffer.putUint8(128);
writeValue(buffer, value.encode());
} else if (value is CastDevice) {
buffer.putUint8(129);
writeValue(buffer, value.encode());
} else if (value is CastMessage) {
buffer.putUint8(130);
writeValue(buffer, value.encode());
} else if (value is MediaInfo) {
buffer.putUint8(131);
writeValue(buffer, value.encode());
} else if (value is MediaLoadRequestData) {
buffer.putUint8(132);
writeValue(buffer, value.encode());
} else if (value is MediaMetadata) {
buffer.putUint8(133);
writeValue(buffer, value.encode());
} else if (value is MediaQueueItem) {
buffer.putUint8(134);
writeValue(buffer, value.encode());
} else if (value is MediaTrack) {
buffer.putUint8(135);
writeValue(buffer, value.encode());
} else if (value is WebImage) {
buffer.putUint8(136);
writeValue(buffer, value.encode());
} else {
super.writeValue(buffer, value);
}
}
@override
Object? readValueOfType(int type, ReadBuffer buffer) {
switch (type) {
case 128:
return AdBreakClipInfo.decode(readValue(buffer)!);
case 129:
return CastDevice.decode(readValue(buffer)!);
case 130:
return CastMessage.decode(readValue(buffer)!);
case 131:
return MediaInfo.decode(readValue(buffer)!);
case 132:
return MediaLoadRequestData.decode(readValue(buffer)!);
case 133:
return MediaMetadata.decode(readValue(buffer)!);
case 134:
return MediaQueueItem.decode(readValue(buffer)!);
case 135:
return MediaTrack.decode(readValue(buffer)!);
case 136:
return WebImage.decode(readValue(buffer)!);
default:
return super.readValueOfType(type, buffer);
}
}
}
/// APIs for Flutter-to-Host comunication
class CastHostApi {
/// Constructor for [CastHostApi]. The [binaryMessenger] named argument is
/// available for dependency injection. If it is left null, the default
/// BinaryMessenger will be used which routes to the host platform.
CastHostApi({BinaryMessenger? binaryMessenger})
: _binaryMessenger = binaryMessenger;
final BinaryMessenger? _binaryMessenger;
static const MessageCodec<Object?> codec = _CastHostApiCodec();
Future<void> sendMessage(CastMessage arg_message) async {
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.CastHostApi.sendMessage', codec,
binaryMessenger: _binaryMessenger);
final List<Object?>? replyList =
await channel.send(<Object?>[arg_message]) as List<Object?>?;
if (replyList == null) {
throw PlatformException(
code: 'channel-error',
message: 'Unable to establish connection on channel.',
);
} else if (replyList.length > 1) {
throw PlatformException(
code: replyList[0]! as String,
message: replyList[1] as String?,
details: replyList[2],
);
} else {
return;
}
}
Future<void> showCastDialog() async {
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.CastHostApi.showCastDialog', codec,
binaryMessenger: _binaryMessenger);
final List<Object?>? replyList =
await channel.send(null) as List<Object?>?;
if (replyList == null) {
throw PlatformException(
code: 'channel-error',
message: 'Unable to establish connection on channel.',
);
} else if (replyList.length > 1) {
throw PlatformException(
code: replyList[0]! as String,
message: replyList[1] as String?,
details: replyList[2],
);
} else {
return;
}
}
Future<void> setMute(bool arg_muted) async {
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.CastHostApi.setMute', codec,
binaryMessenger: _binaryMessenger);
final List<Object?>? replyList =
await channel.send(<Object?>[arg_muted]) as List<Object?>?;
if (replyList == null) {
throw PlatformException(
code: 'channel-error',
message: 'Unable to establish connection on channel.',
);
} else if (replyList.length > 1) {
throw PlatformException(
code: replyList[0]! as String,
message: replyList[1] as String?,
details: replyList[2],
);
} else {
return;
}
}
Future<CastDevice> getCastDevice() async {
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.CastHostApi.getCastDevice', codec,
binaryMessenger: _binaryMessenger);
final List<Object?>? replyList =
await channel.send(null) as List<Object?>?;
if (replyList == null) {
throw PlatformException(
code: 'channel-error',
message: 'Unable to establish connection on channel.',
);
} else if (replyList.length > 1) {
throw PlatformException(
code: replyList[0]! as String,
message: replyList[1] as String?,
details: replyList[2],
);
} else if (replyList[0] == null) {
throw PlatformException(
code: 'null-error',
message: 'Host platform returned null value for non-null return value.',
);
} else {
return (replyList[0] as CastDevice?)!;
}
}
Future<void> loadMediaLoadRequestData(MediaLoadRequestData arg_request) async {
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.CastHostApi.loadMediaLoadRequestData', codec,
binaryMessenger: _binaryMessenger);
final List<Object?>? replyList =
await channel.send(<Object?>[arg_request]) as List<Object?>?;
if (replyList == null) {
throw PlatformException(
code: 'channel-error',
message: 'Unable to establish connection on channel.',
);
} else if (replyList.length > 1) {
throw PlatformException(
code: replyList[0]! as String,
message: replyList[1] as String?,
details: replyList[2],
);
} else {
return;
}
}
Future<MediaInfo> getMediaInfo() async {
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.CastHostApi.getMediaInfo', codec,
binaryMessenger: _binaryMessenger);
final List<Object?>? replyList =
await channel.send(null) as List<Object?>?;
if (replyList == null) {
throw PlatformException(
code: 'channel-error',
message: 'Unable to establish connection on channel.',
);
} else if (replyList.length > 1) {
throw PlatformException(
code: replyList[0]! as String,
message: replyList[1] as String?,
details: replyList[2],
);
} else if (replyList[0] == null) {
throw PlatformException(
code: 'null-error',
message: 'Host platform returned null value for non-null return value.',
);
} else {
return (replyList[0] as MediaInfo?)!;
}
}
Future<void> play() async {
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.CastHostApi.play', codec,
binaryMessenger: _binaryMessenger);
final List<Object?>? replyList =
await channel.send(null) as List<Object?>?;
if (replyList == null) {
throw PlatformException(
code: 'channel-error',
message: 'Unable to establish connection on channel.',
);
} else if (replyList.length > 1) {
throw PlatformException(
code: replyList[0]! as String,
message: replyList[1] as String?,
details: replyList[2],
);
} else {
return;
}
}
Future<void> pause() async {
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.CastHostApi.pause', codec,
binaryMessenger: _binaryMessenger);
final List<Object?>? replyList =
await channel.send(null) as List<Object?>?;
if (replyList == null) {
throw PlatformException(
code: 'channel-error',
message: 'Unable to establish connection on channel.',
);
} else if (replyList.length > 1) {
throw PlatformException(
code: replyList[0]! as String,
message: replyList[1] as String?,
details: replyList[2],
);
} else {
return;
}
}
Future<void> stop() async {
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.CastHostApi.stop', codec,
binaryMessenger: _binaryMessenger);
final List<Object?>? replyList =
await channel.send(null) as List<Object?>?;
if (replyList == null) {
throw PlatformException(
code: 'channel-error',
message: 'Unable to establish connection on channel.',
);
} else if (replyList.length > 1) {
throw PlatformException(
code: replyList[0]! as String,
message: replyList[1] as String?,
details: replyList[2],
);
} else {
return;
}
}
Future<void> showTracksChooserDialog() async {
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.CastHostApi.showTracksChooserDialog', codec,
binaryMessenger: _binaryMessenger);
final List<Object?>? replyList =
await channel.send(null) as List<Object?>?;
if (replyList == null) {
throw PlatformException(
code: 'channel-error',
message: 'Unable to establish connection on channel.',
);
} else if (replyList.length > 1) {
throw PlatformException(
code: replyList[0]! as String,
message: replyList[1] as String?,
details: replyList[2],
);
} else {
return;
}
}
Future<void> skipAd() async {
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.CastHostApi.skipAd', codec,
binaryMessenger: _binaryMessenger);
final List<Object?>? replyList =
await channel.send(null) as List<Object?>?;
if (replyList == null) {
throw PlatformException(
code: 'channel-error',
message: 'Unable to establish connection on channel.',
);
} else if (replyList.length > 1) {
throw PlatformException(
code: replyList[0]! as String,
message: replyList[1] as String?,
details: replyList[2],
);
} else {
return;
}
}
Future<void> queueAppendItem(MediaQueueItem arg_item) async {
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.CastHostApi.queueAppendItem', codec,
binaryMessenger: _binaryMessenger);
final List<Object?>? replyList =
await channel.send(<Object?>[arg_item]) as List<Object?>?;
if (replyList == null) {
throw PlatformException(
code: 'channel-error',
message: 'Unable to establish connection on channel.',
);
} else if (replyList.length > 1) {
throw PlatformException(
code: replyList[0]! as String,
message: replyList[1] as String?,
details: replyList[2],
);
} else {
return;
}
}
Future<void> queueNextItem() async {
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.CastHostApi.queueNextItem', codec,
binaryMessenger: _binaryMessenger);
final List<Object?>? replyList =
await channel.send(null) as List<Object?>?;
if (replyList == null) {
throw PlatformException(
code: 'channel-error',
message: 'Unable to establish connection on channel.',
);
} else if (replyList.length > 1) {
throw PlatformException(
code: replyList[0]! as String,
message: replyList[1] as String?,
details: replyList[2],
);
} else {
return;
}
}
Future<void> queuePrevItem() async {
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.CastHostApi.queuePrevItem', codec,
binaryMessenger: _binaryMessenger);
final List<Object?>? replyList =
await channel.send(null) as List<Object?>?;
if (replyList == null) {
throw PlatformException(
code: 'channel-error',
message: 'Unable to establish connection on channel.',
);
} else if (replyList.length > 1) {
throw PlatformException(
code: replyList[0]! as String,
message: replyList[1] as String?,
details: replyList[2],
);
} else {
return;
}
}
Future<int> getQueueItemCount() async {
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.CastHostApi.getQueueItemCount', codec,
binaryMessenger: _binaryMessenger);
final List<Object?>? replyList =
await channel.send(null) as List<Object?>?;
if (replyList == null) {
throw PlatformException(
code: 'channel-error',
message: 'Unable to establish connection on channel.',
);
} else if (replyList.length > 1) {
throw PlatformException(
code: replyList[0]! as String,
message: replyList[1] as String?,
details: replyList[2],
);
} else if (replyList[0] == null) {
throw PlatformException(
code: 'null-error',
message: 'Host platform returned null value for non-null return value.',
);
} else {
return (replyList[0] as int?)!;
}
}
Future<MediaQueueItem> getQueueItemAtIndex(int arg_index) async {
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.CastHostApi.getQueueItemAtIndex', codec,
binaryMessenger: _binaryMessenger);
final List<Object?>? replyList =
await channel.send(<Object?>[arg_index]) as List<Object?>?;
if (replyList == null) {
throw PlatformException(
code: 'channel-error',
message: 'Unable to establish connection on channel.',
);
} else if (replyList.length > 1) {
throw PlatformException(
code: replyList[0]! as String,
message: replyList[1] as String?,
details: replyList[2],
);
} else if (replyList[0] == null) {
throw PlatformException(
code: 'null-error',
message: 'Host platform returned null value for non-null return value.',
);
} else {
return (replyList[0] as MediaQueueItem?)!;
}
}
}
class _CastFlutterApiCodec extends StandardMessageCodec {
const _CastFlutterApiCodec();
@override
void writeValue(WriteBuffer buffer, Object? value) {
if (value is AdBreakClipInfo) {
buffer.putUint8(128);
writeValue(buffer, value.encode());
} else if (value is AdBreakStatus) {
buffer.putUint8(129);
writeValue(buffer, value.encode());
} else if (value is CastMessage) {
buffer.putUint8(130);
writeValue(buffer, value.encode());
} else if (value is MediaInfo) {
buffer.putUint8(131);
writeValue(buffer, value.encode());
} else if (value is MediaMetadata) {
buffer.putUint8(132);
writeValue(buffer, value.encode());
} else if (value is MediaStatus) {
buffer.putUint8(133);
writeValue(buffer, value.encode());
} else if (value is MediaTrack) {
buffer.putUint8(134);
writeValue(buffer, value.encode());
} else if (value is WebImage) {
buffer.putUint8(135);
writeValue(buffer, value.encode());
} else {
super.writeValue(buffer, value);
}
}
@override
Object? readValueOfType(int type, ReadBuffer buffer) {
switch (type) {
case 128:
return AdBreakClipInfo.decode(readValue(buffer)!);
case 129:
return AdBreakStatus.decode(readValue(buffer)!);
case 130:
return CastMessage.decode(readValue(buffer)!);
case 131:
return MediaInfo.decode(readValue(buffer)!);
case 132:
return MediaMetadata.decode(readValue(buffer)!);
case 133:
return MediaStatus.decode(readValue(buffer)!);
case 134:
return MediaTrack.decode(readValue(buffer)!);
case 135:
return WebImage.decode(readValue(buffer)!);
default:
return super.readValueOfType(type, buffer);
}
}
}
/// APIs for Host-to-Flutter comunication
abstract class CastFlutterApi {
static const MessageCodec<Object?> codec = _CastFlutterApiCodec();
List<String?> getSessionMessageNamespaces();
void onCastStateChanged(int castState);
void onMessageReceived(CastMessage message);
void onSessionStarting();
void onSessionStarted();
void onSessionStartFailed();
void onSessionEnding();
void onSessionEnded();
void onSessionResuming();
void onSessionResumed();
void onSessionResumeFailed();
void onSessionSuspended();
void onStatusUpdated(MediaStatus mediaStatus);
void onMetadataUpdated();
void onQueueStatusUpdated();
void onPreloadStatusUpdated();
void onSendingRemoteMediaRequest();
void onAdBreakStatusUpdated(MediaStatus mediaStatus);
void onMediaError();
void onProgressUpdated(int progressMs, int durationMs);
void onAdBreakClipProgressUpdated(String adBreakId, String adBreakClipId, int progressMs, int durationMs, int whenSkippableMs);
void itemsInsertedInRange(int insertIndex, int insertCount);
void itemsReloaded();
void itemsRemovedAtIndexes(List<int?> indexes);
void itemsReorderedAtIndexes(List<int?> indexes, int insertBeforeIndex);
void itemsUpdatedAtIndexes(List<int?> indexes);
void mediaQueueChanged();
void mediaQueueWillChange();
static void setup(CastFlutterApi? api, {BinaryMessenger? binaryMessenger}) {
{
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.CastFlutterApi.getSessionMessageNamespaces', codec,
binaryMessenger: binaryMessenger);
if (api == null) {
channel.setMessageHandler(null);
} else {
channel.setMessageHandler((Object? message) async {
// ignore message
final List<String?> output = api.getSessionMessageNamespaces();
return output;
});
}
}
{
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.CastFlutterApi.onCastStateChanged', codec,
binaryMessenger: binaryMessenger);
if (api == null) {
channel.setMessageHandler(null);
} else {
channel.setMessageHandler((Object? message) async {
assert(message != null,
'Argument for dev.flutter.pigeon.CastFlutterApi.onCastStateChanged was null.');
final List<Object?> args = (message as List<Object?>?)!;
final int? arg_castState = (args[0] as int?);
assert(arg_castState != null,
'Argument for dev.flutter.pigeon.CastFlutterApi.onCastStateChanged was null, expected non-null int.');
api.onCastStateChanged(arg_castState!);
return;
});
}
}
{
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.CastFlutterApi.onMessageReceived', codec,
binaryMessenger: binaryMessenger);
if (api == null) {
channel.setMessageHandler(null);
} else {
channel.setMessageHandler((Object? message) async {
assert(message != null,
'Argument for dev.flutter.pigeon.CastFlutterApi.onMessageReceived was null.');
final List<Object?> args = (message as List<Object?>?)!;
final CastMessage? arg_message = (args[0] as CastMessage?);
assert(arg_message != null,
'Argument for dev.flutter.pigeon.CastFlutterApi.onMessageReceived was null, expected non-null CastMessage.');
api.onMessageReceived(arg_message!);
return;
});
}
}
{
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.CastFlutterApi.onSessionStarting', codec,
binaryMessenger: binaryMessenger);
if (api == null) {
channel.setMessageHandler(null);
} else {
channel.setMessageHandler((Object? message) async {
// ignore message
api.onSessionStarting();
return;
});
}
}
{
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.CastFlutterApi.onSessionStarted', codec,
binaryMessenger: binaryMessenger);
if (api == null) {
channel.setMessageHandler(null);
} else {
channel.setMessageHandler((Object? message) async {
// ignore message
api.onSessionStarted();
return;
});
}
}
{
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.CastFlutterApi.onSessionStartFailed', codec,
binaryMessenger: binaryMessenger);
if (api == null) {
channel.setMessageHandler(null);
} else {
channel.setMessageHandler((Object? message) async {
// ignore message
api.onSessionStartFailed();
return;
});
}
}
{
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.CastFlutterApi.onSessionEnding', codec,
binaryMessenger: binaryMessenger);
if (api == null) {
channel.setMessageHandler(null);
} else {
channel.setMessageHandler((Object? message) async {
// ignore message
api.onSessionEnding();
return;
});
}
}
{
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.CastFlutterApi.onSessionEnded', codec,
binaryMessenger: binaryMessenger);
if (api == null) {
channel.setMessageHandler(null);
} else {
channel.setMessageHandler((Object? message) async {
// ignore message
api.onSessionEnded();
return;
});
}
}
{
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.CastFlutterApi.onSessionResuming', codec,
binaryMessenger: binaryMessenger);
if (api == null) {
channel.setMessageHandler(null);
} else {
channel.setMessageHandler((Object? message) async {
// ignore message
api.onSessionResuming();
return;
});
}
}
{
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.CastFlutterApi.onSessionResumed', codec,
binaryMessenger: binaryMessenger);
if (api == null) {
channel.setMessageHandler(null);
} else {
channel.setMessageHandler((Object? message) async {
// ignore message
api.onSessionResumed();
return;
});
}
}
{
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.CastFlutterApi.onSessionResumeFailed', codec,
binaryMessenger: binaryMessenger);
if (api == null) {
channel.setMessageHandler(null);
} else {
channel.setMessageHandler((Object? message) async {
// ignore message
api.onSessionResumeFailed();
return;
});
}
}
{
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.CastFlutterApi.onSessionSuspended', codec,
binaryMessenger: binaryMessenger);
if (api == null) {
channel.setMessageHandler(null);
} else {
channel.setMessageHandler((Object? message) async {
// ignore message
api.onSessionSuspended();
return;
});
}
}
{
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.CastFlutterApi.onStatusUpdated', codec,
binaryMessenger: binaryMessenger);
if (api == null) {
channel.setMessageHandler(null);
} else {
channel.setMessageHandler((Object? message) async {
assert(message != null,
'Argument for dev.flutter.pigeon.CastFlutterApi.onStatusUpdated was null.');
final List<Object?> args = (message as List<Object?>?)!;
final MediaStatus? arg_mediaStatus = (args[0] as MediaStatus?);
assert(arg_mediaStatus != null,
'Argument for dev.flutter.pigeon.CastFlutterApi.onStatusUpdated was null, expected non-null MediaStatus.');
api.onStatusUpdated(arg_mediaStatus!);
return;
});
}
}
{
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.CastFlutterApi.onMetadataUpdated', codec,
binaryMessenger: binaryMessenger);
if (api == null) {
channel.setMessageHandler(null);
} else {
channel.setMessageHandler((Object? message) async {
// ignore message
api.onMetadataUpdated();
return;
});
}
}
{
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.CastFlutterApi.onQueueStatusUpdated', codec,
binaryMessenger: binaryMessenger);
if (api == null) {
channel.setMessageHandler(null);
} else {
channel.setMessageHandler((Object? message) async {
// ignore message
api.onQueueStatusUpdated();
return;
});
}
}
{
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.CastFlutterApi.onPreloadStatusUpdated', codec,
binaryMessenger: binaryMessenger);
if (api == null) {
channel.setMessageHandler(null);
} else {
channel.setMessageHandler((Object? message) async {
// ignore message
api.onPreloadStatusUpdated();
return;
});
}
}
{
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.CastFlutterApi.onSendingRemoteMediaRequest', codec,
binaryMessenger: binaryMessenger);
if (api == null) {
channel.setMessageHandler(null);
} else {
channel.setMessageHandler((Object? message) async {
// ignore message
api.onSendingRemoteMediaRequest();
return;
});
}
}
{
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.CastFlutterApi.onAdBreakStatusUpdated', codec,
binaryMessenger: binaryMessenger);
if (api == null) {
channel.setMessageHandler(null);
} else {
channel.setMessageHandler((Object? message) async {
assert(message != null,
'Argument for dev.flutter.pigeon.CastFlutterApi.onAdBreakStatusUpdated was null.');
final List<Object?> args = (message as List<Object?>?)!;
final MediaStatus? arg_mediaStatus = (args[0] as MediaStatus?);
assert(arg_mediaStatus != null,
'Argument for dev.flutter.pigeon.CastFlutterApi.onAdBreakStatusUpdated was null, expected non-null MediaStatus.');
api.onAdBreakStatusUpdated(arg_mediaStatus!);
return;
});
}
}
{
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.CastFlutterApi.onMediaError', codec,
binaryMessenger: binaryMessenger);
if (api == null) {
channel.setMessageHandler(null);
} else {
channel.setMessageHandler((Object? message) async {
// ignore message
api.onMediaError();
return;
});
}
}
{
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.CastFlutterApi.onProgressUpdated', codec,
binaryMessenger: binaryMessenger);
if (api == null) {
channel.setMessageHandler(null);
} else {
channel.setMessageHandler((Object? message) async {
assert(message != null,
'Argument for dev.flutter.pigeon.CastFlutterApi.onProgressUpdated was null.');
final List<Object?> args = (message as List<Object?>?)!;
final int? arg_progressMs = (args[0] as int?);
assert(arg_progressMs != null,
'Argument for dev.flutter.pigeon.CastFlutterApi.onProgressUpdated was null, expected non-null int.');
final int? arg_durationMs = (args[1] as int?);
assert(arg_durationMs != null,
'Argument for dev.flutter.pigeon.CastFlutterApi.onProgressUpdated was null, expected non-null int.');
api.onProgressUpdated(arg_progressMs!, arg_durationMs!);
return;
});
}
}
{
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.CastFlutterApi.onAdBreakClipProgressUpdated', codec,
binaryMessenger: binaryMessenger);
if (api == null) {
channel.setMessageHandler(null);
} else {
channel.setMessageHandler((Object? message) async {
assert(message != null,
'Argument for dev.flutter.pigeon.CastFlutterApi.onAdBreakClipProgressUpdated was null.');
final List<Object?> args = (message as List<Object?>?)!;
final String? arg_adBreakId = (args[0] as String?);
assert(arg_adBreakId != null,
'Argument for dev.flutter.pigeon.CastFlutterApi.onAdBreakClipProgressUpdated was null, expected non-null String.');
final String? arg_adBreakClipId = (args[1] as String?);
assert(arg_adBreakClipId != null,
'Argument for dev.flutter.pigeon.CastFlutterApi.onAdBreakClipProgressUpdated was null, expected non-null String.');
final int? arg_progressMs = (args[2] as int?);
assert(arg_progressMs != null,
'Argument for dev.flutter.pigeon.CastFlutterApi.onAdBreakClipProgressUpdated was null, expected non-null int.');
final int? arg_durationMs = (args[3] as int?);
assert(arg_durationMs != null,
'Argument for dev.flutter.pigeon.CastFlutterApi.onAdBreakClipProgressUpdated was null, expected non-null int.');
final int? arg_whenSkippableMs = (args[4] as int?);
assert(arg_whenSkippableMs != null,
'Argument for dev.flutter.pigeon.CastFlutterApi.onAdBreakClipProgressUpdated was null, expected non-null int.');
api.onAdBreakClipProgressUpdated(arg_adBreakId!, arg_adBreakClipId!, arg_progressMs!, arg_durationMs!, arg_whenSkippableMs!);
return;
});
}
}
{
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.CastFlutterApi.itemsInsertedInRange', codec,
binaryMessenger: binaryMessenger);
if (api == null) {
channel.setMessageHandler(null);
} else {
channel.setMessageHandler((Object? message) async {
assert(message != null,
'Argument for dev.flutter.pigeon.CastFlutterApi.itemsInsertedInRange was null.');
final List<Object?> args = (message as List<Object?>?)!;
final int? arg_insertIndex = (args[0] as int?);
assert(arg_insertIndex != null,
'Argument for dev.flutter.pigeon.CastFlutterApi.itemsInsertedInRange was null, expected non-null int.');
final int? arg_insertCount = (args[1] as int?);
assert(arg_insertCount != null,
'Argument for dev.flutter.pigeon.CastFlutterApi.itemsInsertedInRange was null, expected non-null int.');
api.itemsInsertedInRange(arg_insertIndex!, arg_insertCount!);
return;
});
}
}
{
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.CastFlutterApi.itemsReloaded', codec,
binaryMessenger: binaryMessenger);
if (api == null) {
channel.setMessageHandler(null);
} else {
channel.setMessageHandler((Object? message) async {
// ignore message
api.itemsReloaded();
return;
});
}
}
{
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.CastFlutterApi.itemsRemovedAtIndexes', codec,
binaryMessenger: binaryMessenger);
if (api == null) {
channel.setMessageHandler(null);
} else {
channel.setMessageHandler((Object? message) async {
assert(message != null,
'Argument for dev.flutter.pigeon.CastFlutterApi.itemsRemovedAtIndexes was null.');
final List<Object?> args = (message as List<Object?>?)!;
final List<int?>? arg_indexes = (args[0] as List<Object?>?)?.cast<int?>();
assert(arg_indexes != null,
'Argument for dev.flutter.pigeon.CastFlutterApi.itemsRemovedAtIndexes was null, expected non-null List<int?>.');
api.itemsRemovedAtIndexes(arg_indexes!);
return;
});
}
}
{
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.CastFlutterApi.itemsReorderedAtIndexes', codec,
binaryMessenger: binaryMessenger);
if (api == null) {
channel.setMessageHandler(null);
} else {
channel.setMessageHandler((Object? message) async {
assert(message != null,
'Argument for dev.flutter.pigeon.CastFlutterApi.itemsReorderedAtIndexes was null.');
final List<Object?> args = (message as List<Object?>?)!;
final List<int?>? arg_indexes = (args[0] as List<Object?>?)?.cast<int?>();
assert(arg_indexes != null,
'Argument for dev.flutter.pigeon.CastFlutterApi.itemsReorderedAtIndexes was null, expected non-null List<int?>.');
final int? arg_insertBeforeIndex = (args[1] as int?);
assert(arg_insertBeforeIndex != null,
'Argument for dev.flutter.pigeon.CastFlutterApi.itemsReorderedAtIndexes was null, expected non-null int.');
api.itemsReorderedAtIndexes(arg_indexes!, arg_insertBeforeIndex!);
return;
});
}
}
{
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.CastFlutterApi.itemsUpdatedAtIndexes', codec,
binaryMessenger: binaryMessenger);
if (api == null) {
channel.setMessageHandler(null);
} else {
channel.setMessageHandler((Object? message) async {
assert(message != null,
'Argument for dev.flutter.pigeon.CastFlutterApi.itemsUpdatedAtIndexes was null.');
final List<Object?> args = (message as List<Object?>?)!;
final List<int?>? arg_indexes = (args[0] as List<Object?>?)?.cast<int?>();
assert(arg_indexes != null,
'Argument for dev.flutter.pigeon.CastFlutterApi.itemsUpdatedAtIndexes was null, expected non-null List<int?>.');
api.itemsUpdatedAtIndexes(arg_indexes!);
return;
});
}
}
{
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.CastFlutterApi.mediaQueueChanged', codec,
binaryMessenger: binaryMessenger);
if (api == null) {
channel.setMessageHandler(null);
} else {
channel.setMessageHandler((Object? message) async {
// ignore message
api.mediaQueueChanged();
return;
});
}
}
{
final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.CastFlutterApi.mediaQueueWillChange', codec,
binaryMessenger: binaryMessenger);
if (api == null) {
channel.setMessageHandler(null);
} else {
channel.setMessageHandler((Object? message) async {
// ignore message
api.mediaQueueWillChange();
return;
});
}
}
}
}