1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
13 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.AutoJoinPolicy
15 chrome.cast.AutoJoinPolicy = {
16 TAB_AND_ORIGIN_SCOPED: 'tab_and_origin_scoped',
17 ORIGIN_SCOPED: 'origin_scoped',
18 PAGE_SCOPED: 'page_scoped'
24 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.DefaultActionPolicy
26 chrome.cast.DefaultActionPolicy = {
27 CREATE_SESSION: 'create_session',
28 CAST_THIS_TAB: 'cast_this_tab'
34 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.Capability
36 chrome.cast.Capability = {
37 VIDEO_OUT: 'video_out',
38 AUDIO_OUT: 'audio_out',
46 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.ErrorCode
48 chrome.cast.ErrorCode = {
51 API_NOT_INITIALIZED: 'api_not_initialized',
52 INVALID_PARAMETER: 'invalid_parameter',
53 EXTENSION_NOT_COMPATIBLE: 'extension_not_compatible',
54 EXTENSION_MISSING: 'extension_missing',
55 RECEIVER_UNAVAILABLE: 'receiver_unavailable',
56 SESSION_ERROR: 'session_error',
57 CHANNEL_ERROR: 'channel_error',
58 LOAD_MEDIA_FAILED: 'load_media_failed'
64 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.ReceiverAvailability
66 chrome.cast.ReceiverAvailability = {
67 AVAILABLE: 'available',
68 UNAVAILABLE: 'unavailable'
74 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.SenderPlatform
76 chrome.cast.SenderPlatform = {
85 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.ReceiverType
87 chrome.cast.ReceiverType = {
96 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.ReceiverAction
98 chrome.cast.ReceiverAction = {
106 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.SessionStatus
108 chrome.cast.SessionStatus = {
109 CONNECTED: 'connected',
110 DISCONNECTED: 'disconnected',
118 chrome.cast.media = {};
123 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.MediaCommand
125 chrome.cast.media.MediaCommand = {
128 STREAM_VOLUME: 'stream_volume',
129 STREAM_MUTE: 'stream_mute'
135 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.MetadataType
137 chrome.cast.media.MetadataType = {
148 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.PlayerState
150 chrome.cast.media.PlayerState = {
154 BUFFERING: 'BUFFERING'
160 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.ResumeState
162 chrome.cast.media.ResumeState = {
163 PLAYBACK_START: 'PLAYBACK_START',
164 PLAYBACK_PAUSE: 'PLAYBACK_PAUSE'
170 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.StreamType
172 chrome.cast.media.StreamType = {
173 BUFFERED: 'BUFFERED',
181 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.IdleReason
183 chrome.cast.media.IdleReason = {
184 CANCELLED: 'CANCELLED',
185 INTERRUPTED: 'INTERRUPTED',
186 FINISHED: 'FINISHED',
193 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.TrackType
195 chrome.cast.media.TrackType = {
204 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.TextTrackType
206 chrome.cast.media.TextTrackType = {
207 SUBTITLES: 'SUBTITLES',
208 CAPTIONS: 'CAPTIONS',
209 DESCRIPTIONS: 'DESCRIPTIONS',
210 CHAPTERS: 'CHAPTERS',
217 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.TextTrackEdgeType
219 chrome.cast.media.TextTrackEdgeType = {
222 DROP_SHADOW: 'DROP_SHADOW',
224 DEPRESSED: 'DEPRESSED'
230 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.TextTrackWindowType
232 chrome.cast.media.TextTrackWindowType = {
235 ROUNDED_CORNERS: 'ROUNDED_CORNERS'
241 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.TextTrackFontGenericFamily
243 chrome.cast.media.TextTrackFontGenericFamily = {
244 SANS_SERIF: 'SANS_SERIF',
245 MONOSPACED_SANS_SERIF: 'MONOSPACED_SANS_SERIF',
247 MONOSPACED_SERIF: 'MONOSPACED_SERIF',
250 SMALL_CAPITALS: 'SMALL_CAPITALS'
256 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.TextTrackFontStyle
258 chrome.cast.media.TextTrackFontStyle = {
261 BOLD_ITALIC: 'BOLD_ITALIC',
267 * @param {!chrome.cast.ErrorCode} code
268 * @param {string=} opt_description
269 * @param {Object=} opt_details
271 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.Error
273 chrome.cast.Error = function(code, opt_description, opt_details) {}
275 /** @type {!chrome.cast.ErrorCode} */
276 chrome.cast.Error.prototype.code;
278 /** @type {?string} */
279 chrome.cast.Error.prototype.description;
281 /** @type {Object} */
282 chrome.cast.Error.prototype.details;
286 * @param {!chrome.cast.SenderPlatform} platform
288 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.SenderApplication
290 chrome.cast.SenderApplication = function(platform) {};
292 /** @type {!chrome.cast.SenderPlatform} */
293 chrome.cast.SenderApplication.prototype.platform;
295 /** @type {?string} */
296 chrome.cast.SenderApplication.prototype.url;
298 /** @type {?string} */
299 chrome.cast.SenderApplication.prototype.packageId;
303 * @param {string} url
305 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.Image
307 chrome.cast.Image = function(url) {};
309 /** @type {string} */
310 chrome.cast.Image.prototype.url;
312 /** @type {?number} */
313 chrome.cast.Image.prototype.height;
315 /** @type {?number} */
316 chrome.cast.Image.prototype.width;
320 * @param {?number=} opt_level
321 * @param {?boolean=} opt_muted
323 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.Volume
325 chrome.cast.Volume = function(opt_level, opt_muted) {};
327 /** @type {?number} */
328 chrome.cast.Volume.prototype.level;
330 /** @type {?boolean} */
331 chrome.cast.Volume.prototype.muted;
335 * @param {!chrome.cast.SessionRequest} sessionRequest
336 * @param {function(!chrome.cast.Session)} sessionListener
337 * @param {function(!chrome.cast.ReceiverAvailability,Array.<Object>)}
339 * @param {chrome.cast.AutoJoinPolicy=} opt_autoJoinPolicy
340 * @param {chrome.cast.DefaultActionPolicy=} opt_defaultActionPolicy
342 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.ApiConfig
344 chrome.cast.ApiConfig = function(sessionRequest, sessionListener,
345 receiverListener, opt_autoJoinPolicy, opt_defaultActionPolicy) {};
347 /** @type {!chrome.cast.SessionRequest} */
348 chrome.cast.ApiConfig.prototype.sessionRequest;
350 /** @type {function(!chrome.cast.Session)} */
351 chrome.cast.ApiConfig.prototype.sessionListener;
353 /** @type {function(!chrome.cast.ReceiverAvailability)} */
354 chrome.cast.ApiConfig.prototype.receiverListener;
356 /** @type {!chrome.cast.AutoJoinPolicy} */
357 chrome.cast.ApiConfig.prototype.autoJoinPolicy;
359 /** @type {!chrome.cast.DefaultActionPolicy} */
360 chrome.cast.ApiConfig.prototype.defaultActionPolicy;
364 * @param {string} appId
365 * @param {!Array.<chrome.cast.Capability>=} opt_capabilities
366 * @param {number=} opt_timeout
368 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.SessionRequest
370 chrome.cast.SessionRequest = function(appId, opt_capabilities, opt_timeout) {};
372 /** @type {string} */
373 chrome.cast.SessionRequest.prototype.appId;
375 /** @type {!Array.<chrome.cast.Capability>} */
376 chrome.cast.SessionRequest.prototype.capabilities;
378 /** @type {number} */
379 chrome.cast.SessionRequest.prototype.requestSessionTimeout;
381 /** @type {?string} */
382 chrome.cast.SessionRequest.prototype.language;
386 * @param {string} label
387 * @param {string} friendlyName
388 * @param {Array.<chrome.cast.Capability>=} opt_capabilities
389 * @param {chrome.cast.Volume=} opt_volume
391 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.Receiver
393 chrome.cast.Receiver =
394 function(label, friendlyName, opt_capabilities, opt_volume) {};
396 /** @type {string} */
397 chrome.cast.Receiver.prototype.label;
399 /** @type {string} */
400 chrome.cast.Receiver.prototype.friendlyName;
402 /** @type {!Array.<!chrome.cast.Capability>} */
403 chrome.cast.Receiver.prototype.capabilities;
405 /** @type {chrome.cast.Volume} */
406 chrome.cast.Receiver.prototype.volume;
408 /** @type {!chrome.cast.ReceiverType} */
409 chrome.cast.Receiver.prototype.receiverType;
411 /** @type {chrome.cast.ReceiverDisplayStatus} */
412 chrome.cast.Receiver.prototype.displayStatus;
416 * @param {string} statusText
417 * @param {!Array.<chrome.cast.Image>} appImages
419 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.ReceiverDisplayStatus
421 chrome.cast.ReceiverDisplayStatus = function(statusText, appImages) {};
423 /** @type {string} */
424 chrome.cast.ReceiverDisplayStatus.prototype.statusText;
426 /** @type {!Array.<chrome.cast.Image>} */
427 chrome.cast.ReceiverDisplayStatus.prototype.appImages;
431 * @param {string} sessionId
432 * @param {string} appId
433 * @param {string} displayName
434 * @param {!Array.<chrome.cast.Image>} appImages
435 * @param {!chrome.cast.Receiver} receiver
437 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.Session
439 chrome.cast.Session =
440 function(sessionId, appId, displayName, appImages, receiver) {};
442 /** @type {string} */
443 chrome.cast.Session.prototype.sessionId;
445 /** @type {string} */
446 chrome.cast.Session.prototype.appId;
448 /** @type {string} */
449 chrome.cast.Session.prototype.displayName;
451 /** @type {?string} */
452 chrome.cast.Session.prototype.statusText;
454 /** @type {!Array.<chrome.cast.Image>} */
455 chrome.cast.Session.prototype.appImages;
457 /** @type {!chrome.cast.Receiver} */
458 chrome.cast.Session.prototype.receiver;
460 /** @type {!Array.<!chrome.cast.SenderApplication>} The applications. */
461 chrome.cast.Session.prototype.senderApps;
463 /** @type {!Array.<!{name: string}>} The namespaces. */
464 chrome.cast.Session.prototype.namespaces;
466 /** @type {!Array.<!chrome.cast.media.Media>} */
467 chrome.cast.Session.prototype.media;
469 /** @type {!chrome.cast.SessionStatus} */
470 chrome.cast.Session.prototype.status;
473 * @param {number} newLevel
474 * @param {function()} successCallback
475 * @param {function(chrome.cast.Error)} errorCallback
477 chrome.cast.Session.prototype.setReceiverVolumeLevel =
478 function(newLevel, successCallback, errorCallback) {};
481 * @param {boolean} muted
482 * @param {function()} successCallback
483 * @param {function(chrome.cast.Error)} errorCallback
485 chrome.cast.Session.prototype.setReceiverMuted =
486 function(muted, successCallback, errorCallback) {};
489 * @param {function()} successCallback
490 * @param {function(chrome.cast.Error)} errorCallback
492 chrome.cast.Session.prototype.leave =
493 function(successCallback, errorCallback) {};
496 * @param {function()} successCallback
497 * @param {function(chrome.cast.Error)} errorCallback
499 chrome.cast.Session.prototype.stop =
500 function(successCallback, errorCallback) {};
503 * @param {string} namespace
504 * @param {!Object|string} message
505 * @param {!function()} successCallback
506 * @param {function(!chrome.cast.Error)} errorCallback
508 chrome.cast.Session.prototype.sendMessage =
509 function(namespace, message, successCallback, errorCallback) {};
512 * @param {function(boolean)} listener
514 chrome.cast.Session.prototype.addUpdateListener = function(listener) {};
517 * @param {function(boolean)} listener
519 chrome.cast.Session.prototype.removeUpdateListener = function(listener) {};
522 * @param {string} namespace
523 * @param {function(string,string)} listener
525 chrome.cast.Session.prototype.addMessageListener =
526 function(namespace, listener) {};
529 * @param {string} namespace
530 * @param {function(string,string)} listener
532 chrome.cast.Session.prototype.removeMessageListener =
533 function(namespace, listener) {};
536 * @param {function(!chrome.cast.media.Media)} listener
538 chrome.cast.Session.prototype.addMediaListener = function(listener) {};
541 * @param {function(chrome.cast.media.Media)} listener
543 chrome.cast.Session.prototype.removeMediaListener = function(listener) {};
546 * @param {!chrome.cast.media.LoadRequest} loadRequest
547 * @param {function(!chrome.cast.media.Media)} successCallback
548 * @param {function(!chrome.cast.Error)} errorCallback
550 chrome.cast.Session.prototype.loadMedia =
551 function(loadRequest, successCallback, errorCallback) {};
556 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.timeout
558 chrome.cast.timeout = {};
562 * @const {!Array.<number>}
563 * @see https://developers.google.com/cast/docs/reference/chrome/
569 * @typedef {!function(?chrome.cast.Receiver, !chrome.cast.ReceiverAction)}
571 chrome.cast.ReceiverActionListener;
577 chrome.cast.isAvailable = false;
581 * @param {!chrome.cast.ApiConfig} apiConfig
582 * @param {function()} successCallback
583 * @param {function(chrome.cast.Error)} errorCallback
585 chrome.cast.initialize = function(apiConfig, successCallback, errorCallback) {};
589 * @param {function(!chrome.cast.Session)} successCallback
590 * @param {function(chrome.cast.Error)} errorCallback
591 * @param {chrome.cast.SessionRequest=} opt_sessionRequest
592 * @param {string=} opt_label
594 chrome.cast.requestSession = function(
595 successCallback, errorCallback, opt_sessionRequest, opt_label) {};
599 * @param {string} sessionId The id of the session to join.
601 chrome.cast.requestSessionById = function(sessionId) {};
605 * @param {chrome.cast.ReceiverActionListener} listener
607 chrome.cast.addReceiverActionListener = function(listener) {};
611 * @param {chrome.cast.ReceiverActionListener} listener
613 chrome.cast.removeReceiverActionListener = function(listener) {};
617 * @param {string} message The message to log.
619 chrome.cast.logMessage = function(message) {};
623 * @param {!Array.<chrome.cast.Receiver>} receivers
624 * @param {function()} successCallback
625 * @param {function(chrome.cast.Error)} errorCallback
627 chrome.cast.setCustomReceivers =
628 function(receivers, successCallback, errorCallback) {};
632 * @param {!chrome.cast.Receiver} receiver
633 * @param {function()} successCallback
634 * @param {function(chrome.cast.Error)} errorCallback
636 chrome.cast.setReceiverDisplayStatus =
637 function(receiver, successCallback, errorCallback) {};
642 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.GetStatusRequest
644 chrome.cast.media.GetStatusRequest = function() {};
646 /** @type {Object} */
647 chrome.cast.media.GetStatusRequest.prototype.customData;
652 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.PauseRequest
654 chrome.cast.media.PauseRequest = function() {};
656 /** @type {Object} */
657 chrome.cast.media.PauseRequest.prototype.customData;
662 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.PlayRequest
664 chrome.cast.media.PlayRequest = function() {};
666 /** @type {Object} */
667 chrome.cast.media.PlayRequest.prototype.customData;
672 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.SeekRequest
674 chrome.cast.media.SeekRequest = function() {};
676 /** @type {?number} */
677 chrome.cast.media.SeekRequest.prototype.currentTime;
679 /** @type {?chrome.cast.media.ResumeState} */
680 chrome.cast.media.SeekRequest.prototype.resumeState;
682 /** @type {Object} */
683 chrome.cast.media.SeekRequest.prototype.customData;
688 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.StopRequest
690 chrome.cast.media.StopRequest = function() {};
692 /** @type {Object} */
693 chrome.cast.media.StopRequest.prototype.customData;
697 * @param {!chrome.cast.Volume} volume
699 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.VolumeRequest
701 chrome.cast.media.VolumeRequest = function(volume) {};
703 /** @type {!chrome.cast.Volume} */
704 chrome.cast.media.VolumeRequest.prototype.volume = volume;
706 /** @type {Object} */
707 chrome.cast.media.VolumeRequest.prototype.customData;
711 * @param {!chrome.cast.media.MediaInfo} mediaInfo
713 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.LoadRequest
715 chrome.cast.media.LoadRequest = function(mediaInfo) {};
717 /** @type {Array.<number>} */
718 chrome.cast.media.LoadRequest.prototype.activeTrackIds;
720 /** @type {boolean} */
721 chrome.cast.media.LoadRequest.prototype.autoplay;
723 /** @type {?number} */
724 chrome.cast.media.LoadRequest.prototype.currentTime;
726 /** @type {Object} */
727 chrome.cast.media.LoadRequest.prototype.customData;
729 /** @type {!chrome.cast.media.MediaInfo} */
730 chrome.cast.media.LoadRequest.prototype.media;
734 * @param {Array.<number>=} opt_activeTrackIds
735 * @param {chrome.cast.media.TextTrackStyle=} opt_textTrackStyle
737 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.EditTracksInfoRequest
739 chrome.cast.media.EditTracksInfoRequest =
740 function(opt_activeTrackIds, opt_textTrackStyle) {};
742 /** @type {Array.<number>} */
743 chrome.cast.media.EditTracksInfoRequest.prototype.activeTrackIds;
745 /** @type {?chrome.cast.media.TextTrackStyle} */
746 chrome.cast.media.EditTracksInfoRequest.prototype.textTrackStyle;
751 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.GenericMediaMetadata
753 chrome.cast.media.GenericMediaMetadata = function() {};
755 /** @type {chrome.cast.media.MetadataType} */
756 chrome.cast.media.GenericMediaMetadata.prototype.metadataType;
758 /** @type {?string} */
759 chrome.cast.media.GenericMediaMetadata.prototype.title;
761 /** @type {?string} */
762 chrome.cast.media.GenericMediaMetadata.prototype.subtitle;
764 /** @type {Array.<chrome.cast.Image>} */
765 chrome.cast.media.GenericMediaMetadata.prototype.images;
767 /** @type {?string} */
768 chrome.cast.media.GenericMediaMetadata.prototype.releaseDate;
771 * @type {chrome.cast.media.MetadataType}
772 * @deprecated Please use metadataType instead.
774 chrome.cast.media.GenericMediaMetadata.prototype.type;
778 * @deprecated Use releaseDate instead.
780 chrome.cast.media.GenericMediaMetadata.prototype.releaseYear;
785 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.MovieMediaMetadata
787 chrome.cast.media.MovieMediaMetadata = function() {};
789 /** @type {chrome.cast.media.MetadataType} */
790 chrome.cast.media.MovieMediaMetadata.prototype.metadataType;
792 /** @type {?string} */
793 chrome.cast.media.MovieMediaMetadata.prototype.title;
795 /** @type {?string} */
796 chrome.cast.media.MovieMediaMetadata.prototype.studio;
798 /** @type {?string} */
799 chrome.cast.media.MovieMediaMetadata.prototype.subtitle;
801 /** @type {Array.<chrome.cast.Image>} */
802 chrome.cast.media.MovieMediaMetadata.prototype.images;
804 /** @type {?string} */
805 chrome.cast.media.MovieMediaMetadata.prototype.releaseDate;
808 * @type {chrome.cast.media.MetadataType}
809 * @deprecated Please use metadataType instead.
811 chrome.cast.media.MovieMediaMetadata.prototype.type;
815 * @deprecated Use releaseDate instead.
817 chrome.cast.media.MovieMediaMetadata.prototype.releaseYear;
822 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.TvShowMediaMetadata
824 chrome.cast.media.TvShowMediaMetadata = function() {};
826 /** @type {chrome.cast.media.MetadataType} */
827 chrome.cast.media.TvShowMediaMetadata.prototype.metadataType;
829 /** @type {?string} */
830 chrome.cast.media.TvShowMediaMetadata.prototype.seriesTitle;
832 /** @type {?string} */
833 chrome.cast.media.TvShowMediaMetadata.prototype.title;
835 /** @type {?number} */
836 chrome.cast.media.TvShowMediaMetadata.prototype.season;
838 /** @type {?number} */
839 chrome.cast.media.TvShowMediaMetadata.prototype.episode;
841 /** @type {Array.<chrome.cast.Image>} */
842 chrome.cast.media.TvShowMediaMetadata.prototype.images;
844 /** @type {?string} */
845 chrome.cast.media.TvShowMediaMetadata.prototype.originalAirdate;
848 * @type {chrome.cast.media.MetadataType}
849 * @deprecated Please use metadataType instead.
851 chrome.cast.media.TvShowMediaMetadata.prototype.type;
855 * @deprecated Use title instead.
857 chrome.cast.media.TvShowMediaMetadata.prototype.episodeTitle;
861 * @deprecated Use season instead.
863 chrome.cast.media.TvShowMediaMetadata.prototype.seasonNumber;
867 * @deprecated Use episode instead.
869 chrome.cast.media.TvShowMediaMetadata.prototype.episodeNumber;
873 * @deprecated Use originalAirdate instead.
875 chrome.cast.media.TvShowMediaMetadata.prototype.releaseYear;
880 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.MusicTrackMediaMetadata
882 chrome.cast.media.MusicTrackMediaMetadata = function() {};
885 /** @type {chrome.cast.media.MetadataType} */
886 chrome.cast.media.MusicTrackMediaMetadata.prototype.metadataType;
888 /** @type {?string} */
889 chrome.cast.media.MusicTrackMediaMetadata.prototype.albumName;
891 /** @type {?string} */
892 chrome.cast.media.MusicTrackMediaMetadata.prototype.title;
894 /** @type {?string} */
895 chrome.cast.media.MusicTrackMediaMetadata.prototype.albumArtist;
897 /** @type {?string} */
898 chrome.cast.media.MusicTrackMediaMetadata.prototype.artist;
900 /** @type {?string} */
901 chrome.cast.media.MusicTrackMediaMetadata.prototype.composer;
903 /** @type {?string} */
904 chrome.cast.media.MusicTrackMediaMetadata.prototype.songName;
906 /** @type {?number} */
907 chrome.cast.media.MusicTrackMediaMetadata.prototype.trackNumber;
909 /** @type {?number} */
910 chrome.cast.media.MusicTrackMediaMetadata.prototype.discNumber;
912 /** @type {Array.<chrome.cast.Image>} */
913 chrome.cast.media.MusicTrackMediaMetadata.prototype.images;
916 * @type {chrome.cast.media.MetadataType}
917 * @deprecated Please use metadataType instead.
919 chrome.cast.media.MusicTrackMediaMetadata.prototype.type;
923 * @deprecated Use artist instead.
925 chrome.cast.media.MusicTrackMediaMetadata.prototype.artistName;
929 * @deprecated Use releaseDate instead.
931 chrome.cast.media.MusicTrackMediaMetadata.prototype.releaseYear;
936 chrome.cast.media.MusicTrackMediaMetadata.prototype.releaseDate;
941 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.PhotoMediaMetadata
943 chrome.cast.media.PhotoMediaMetadata = function() {};
945 /** @type {chrome.cast.media.MetadataType} */
946 chrome.cast.media.PhotoMediaMetadata.prototype.metadataType;
948 /** @type {?string} */
949 chrome.cast.media.PhotoMediaMetadata.prototype.title;
951 /** @type {?string} */
952 chrome.cast.media.PhotoMediaMetadata.prototype.artist;
954 /** @type {?string} */
955 chrome.cast.media.PhotoMediaMetadata.prototype.location;
957 /** @type {Array.<chrome.cast.Image>} */
958 chrome.cast.media.PhotoMediaMetadata.prototype.images;
960 /** @type {?number} */
961 chrome.cast.media.PhotoMediaMetadata.prototype.latitude;
963 /** @type {?number} */
964 chrome.cast.media.PhotoMediaMetadata.prototype.longitude;
966 /** @type {?number} */
967 chrome.cast.media.PhotoMediaMetadata.prototype.width;
969 /** @type {?number} */
970 chrome.cast.media.PhotoMediaMetadata.prototype.height;
972 /** @type {?string} */
973 chrome.cast.media.PhotoMediaMetadata.prototype.creationDateTime;
976 * @type {chrome.cast.media.MetadataType}
977 * @deprecated Please use metadataType instead.
979 chrome.cast.media.PhotoMediaMetadata.prototype.type;
983 * @param {string} contentId
984 * @param {string} contentType
986 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.MediaInfo
988 chrome.cast.media.MediaInfo = function(contentId, contentType) {};
990 /** @type {string} */
991 chrome.cast.media.MediaInfo.prototype.contentId;
993 /** @type {chrome.cast.media.StreamType} */
994 chrome.cast.media.MediaInfo.prototype.streamType;
996 /** @type {string} */
997 chrome.cast.media.MediaInfo.prototype.contentType;
1000 chrome.cast.media.MediaInfo.prototype.metadata;
1002 /** @type {?number} */
1003 chrome.cast.media.MediaInfo.prototype.duration;
1005 /** @type {Array.<!chrome.cast.media.Track>} */
1006 chrome.cast.media.MediaInfo.prototype.tracks;
1008 /** @type {?chrome.cast.media.TextTrackStyle} */
1009 chrome.cast.media.MediaInfo.prototype.textTrackStyle;
1011 /** @type {Object} */
1012 chrome.cast.media.MediaInfo.prototype.customData;
1016 * @param {string} sessionId
1017 * @param {number} mediaSessionId
1019 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.Media
1021 chrome.cast.media.Media = function(sessionId, mediaSessionId) {};
1023 /** @type {string} */
1024 chrome.cast.media.Media.prototype.sessionId;
1026 /** @type {number} */
1027 chrome.cast.media.Media.prototype.mediaSessionId;
1029 /** @type {chrome.cast.media.MediaInfo} */
1030 chrome.cast.media.Media.prototype.media;
1032 /** @type {number} */
1033 chrome.cast.media.Media.prototype.playbackRate;
1035 /** @type {!chrome.cast.media.PlayerState} */
1036 chrome.cast.media.Media.prototype.playerState;
1038 /** @type {!Array.<!chrome.cast.media.MediaCommand>} */
1039 chrome.cast.media.Media.prototype.supportedMediaCommands;
1041 /** @type {!chrome.cast.Volume} */
1042 chrome.cast.media.Media.prototype.volume;
1044 /** @type {?chrome.cast.media.IdleReason} */
1045 chrome.cast.media.Media.prototype.idleReason;
1047 /** @type {Array.<number>} */
1048 chrome.cast.media.Media.prototype.activeTrackIds;
1050 /** @type {Object} */
1051 chrome.cast.media.Media.prototype.customData;
1055 * @deprecated Use getEstimatedTime instead.
1057 chrome.cast.media.Media.prototype.currentTime;
1060 * @param {chrome.cast.media.GetStatusRequest} getStatusRequest
1061 * @param {function()} successCallback
1062 * @param {function(!chrome.cast.Error)} errorCallback
1064 chrome.cast.media.Media.prototype.getStatus =
1065 function(getStatusRequest, successCallback, errorCallback) {};
1068 * @param {chrome.cast.media.PlayRequest} playRequest
1069 * @param {function()} successCallback
1070 * @param {function(!chrome.cast.Error)} errorCallback
1072 chrome.cast.media.Media.prototype.play =
1073 function(playRequest, successCallback, errorCallback) {};
1076 * @param {chrome.cast.media.PauseRequest} pauseRequest
1077 * @param {function()} successCallback
1078 * @param {function(!chrome.cast.Error)} errorCallback
1080 chrome.cast.media.Media.prototype.pause =
1081 function(pauseRequest, successCallback, errorCallback) {};
1084 * @param {!chrome.cast.media.SeekRequest} seekRequest
1085 * @param {function()} successCallback
1086 * @param {function(!chrome.cast.Error)} errorCallback
1088 chrome.cast.media.Media.prototype.seek =
1089 function(seekRequest, successCallback, errorCallback) {};
1092 * @param {chrome.cast.media.StopRequest} stopRequest
1093 * @param {function()} successCallback
1094 * @param {function(!chrome.cast.Error)} errorCallback
1096 chrome.cast.media.Media.prototype.stop =
1097 function(stopRequest, successCallback, errorCallback) {};
1100 * @param {!chrome.cast.media.VolumeRequest} volumeRequest
1101 * @param {function()} successCallback
1102 * @param {function(!chrome.cast.Error)} errorCallback
1104 chrome.cast.media.Media.prototype.setVolume =
1105 function(volumeRequest, successCallback, errorCallback) {};
1108 * @param {!chrome.cast.media.EditTracksInfoRequest} editTracksInfoRequest
1109 * @param {function()} successCallback
1110 * @param {function(!chrome.cast.Error)} errorCallback
1112 chrome.cast.media.Media.prototype.editTracksInfo =
1113 function(editTracksInfoRequest, successCallback, errorCallback) {};
1116 * @param {!chrome.cast.media.MediaCommand} command
1119 chrome.cast.media.Media.prototype.supportsCommand = function(command) {};
1123 * @suppress {deprecated} Uses currentTime member to compute estimated time.
1125 chrome.cast.media.Media.prototype.getEstimatedTime = function() {};
1128 * @param {function(boolean)} listener
1130 chrome.cast.media.Media.prototype.addUpdateListener = function(listener) {};
1133 * @param {function(boolean)} listener
1135 chrome.cast.media.Media.prototype.removeUpdateListener = function(listener) {};
1140 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.timeout
1142 chrome.cast.media.timeout = {};
1144 /** @type {number} */
1145 chrome.cast.media.timeout.load;
1147 /** @type {number} */
1148 chrome.cast.media.timeout.getStatus;
1150 /** @type {number} */
1151 chrome.cast.media.timeout.play;
1153 /** @type {number} */
1154 chrome.cast.media.timeout.pause;
1156 /** @type {number} */
1157 chrome.cast.media.timeout.seek;
1159 /** @type {number} */
1160 chrome.cast.media.timeout.stop;
1162 /** @type {number} */
1163 chrome.cast.media.timeout.setVolume;
1165 /** @type {number} */
1166 chrome.cast.media.timeout.editTracksInfo;
1170 * @param {number} trackId
1171 * @param {!chrome.cast.media.TrackType} trackType
1173 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.Track
1175 chrome.cast.media.Track = function(trackId, trackType) {};
1177 /** @type {number} */
1178 chrome.cast.media.Track.prototype.trackId;
1180 /** @type {?string} */
1181 chrome.cast.media.Track.prototype.trackContentId;
1183 /** @type {?string} */
1184 chrome.cast.media.Track.prototype.trackContentType;
1186 /** @type {!chrome.cast.media.TrackType} */
1187 chrome.cast.media.Track.prototype.type;
1189 /** @type {?string} */
1190 chrome.cast.media.Track.prototype.name;
1192 /** @type {?string} */
1193 chrome.cast.media.Track.prototype.language;
1195 /** @type {?chrome.cast.media.TextTrackType} */
1196 chrome.cast.media.Track.prototype.subtype;
1198 /** @type {Object} */
1199 chrome.cast.media.Track.prototype.customData;
1204 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.TextTrackStyle
1206 chrome.cast.media.TextTrackStyle = function() {};
1208 /** @type {?string} */
1209 chrome.cast.media.TextTrackStyle.prototype.foregroundColor;
1211 /** @type {?string} */
1212 chrome.cast.media.TextTrackStyle.prototype.backgroundColor;
1214 /** @type {?chrome.cast.media.TextTrackEdgeType} */
1215 chrome.cast.media.TextTrackStyle.prototype.edgeType;
1217 /** @type {?string} */
1218 chrome.cast.media.TextTrackStyle.prototype.edgeColor;
1220 /** @type {?chrome.cast.media.TextTrackWindowType} */
1221 chrome.cast.media.TextTrackStyle.prototype.windowType;
1223 /** @type {?string} */
1224 chrome.cast.media.TextTrackStyle.prototype.windowColor;
1226 /** @type {?number} */
1227 chrome.cast.media.TextTrackStyle.prototype.windowRoundedCornerRadius;
1229 /** @type {?number} */
1230 chrome.cast.media.TextTrackStyle.prototype.fontScale;
1232 /** @type {?string} */
1233 chrome.cast.media.TextTrackStyle.prototype.fontFamily;
1235 /** @type {?chrome.cast.media.TextTrackFontGenericFamily} */
1236 chrome.cast.media.TextTrackStyle.prototype.fontGenericFamily;
1238 /** @type {?chrome.cast.media.TextTrackFontStyle} */
1239 chrome.cast.media.TextTrackStyle.prototype.fontStyle;
1241 /** @type {Object} */
1242 chrome.cast.media.TextTrackStyle.prototype.customData;