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)} receiverListener
338 * @param {chrome.cast.AutoJoinPolicy=} opt_autoJoinPolicy
339 * @param {chrome.cast.DefaultActionPolicy=} opt_defaultActionPolicy
341 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.ApiConfig
343 chrome.cast.ApiConfig = function(sessionRequest, sessionListener,
344 receiverListener, opt_autoJoinPolicy, opt_defaultActionPolicy) {};
346 /** @type {!chrome.cast.SessionRequest} */
347 chrome.cast.ApiConfig.prototype.sessionRequest;
349 /** @type {function(!chrome.cast.Session)} */
350 chrome.cast.ApiConfig.prototype.sessionListener;
352 /** @type {function(!chrome.cast.ReceiverAvailability)} */
353 chrome.cast.ApiConfig.prototype.receiverListener;
355 /** @type {!chrome.cast.AutoJoinPolicy} */
356 chrome.cast.ApiConfig.prototype.autoJoinPolicy;
358 /** @type {!chrome.cast.DefaultActionPolicy} */
359 chrome.cast.ApiConfig.prototype.defaultActionPolicy;
363 * @param {string} appId
364 * @param {!Array.<chrome.cast.Capability>=} opt_capabilities
365 * @param {number=} opt_timeout
367 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.SessionRequest
369 chrome.cast.SessionRequest = function(appId, opt_capabilities, opt_timeout) {};
371 /** @type {string} */
372 chrome.cast.SessionRequest.prototype.appId;
374 /** @type {!Array.<chrome.cast.Capability>} */
375 chrome.cast.SessionRequest.prototype.capabilities;
377 /** @type {number} */
378 chrome.cast.SessionRequest.prototype.requestSessionTimeout;
380 /** @type {?string} */
381 chrome.cast.SessionRequest.prototype.language;
385 * @param {string} label
386 * @param {string} friendlyName
387 * @param {Array.<chrome.cast.Capability>=} opt_capabilities
388 * @param {chrome.cast.Volume=} opt_volume
390 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.Receiver
392 chrome.cast.Receiver =
393 function(label, friendlyName, opt_capabilities, opt_volume) {};
395 /** @type {string} */
396 chrome.cast.Receiver.prototype.label;
398 /** @type {string} */
399 chrome.cast.Receiver.prototype.friendlyName;
401 /** @type {!Array.<!chrome.cast.Capability>} */
402 chrome.cast.Receiver.prototype.capabilities;
404 /** @type {chrome.cast.Volume} */
405 chrome.cast.Receiver.prototype.volume;
407 /** @type {!chrome.cast.ReceiverType} */
408 chrome.cast.Receiver.prototype.receiverType;
410 /** @type {chrome.cast.ReceiverDisplayStatus} */
411 chrome.cast.Receiver.prototype.displayStatus;
415 * @param {string} statusText
416 * @param {!Array.<chrome.cast.Image>} appImages
418 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.ReceiverDisplayStatus
420 chrome.cast.ReceiverDisplayStatus = function(statusText, appImages) {};
422 /** @type {string} */
423 chrome.cast.ReceiverDisplayStatus.prototype.statusText;
425 /** @type {!Array.<chrome.cast.Image>} */
426 chrome.cast.ReceiverDisplayStatus.prototype.appImages;
430 * @param {string} sessionId
431 * @param {string} appId
432 * @param {string} displayName
433 * @param {!Array.<chrome.cast.Image>} appImages
434 * @param {!chrome.cast.Receiver} receiver
436 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.Session
438 chrome.cast.Session =
439 function(sessionId, appId, displayName, appImages, receiver) {};
441 /** @type {string} */
442 chrome.cast.Session.prototype.sessionId;
444 /** @type {string} */
445 chrome.cast.Session.prototype.appId;
447 /** @type {string} */
448 chrome.cast.Session.prototype.displayName;
450 /** @type {?string} */
451 chrome.cast.Session.prototype.statusText;
453 /** @type {!Array.<chrome.cast.Image>} */
454 chrome.cast.Session.prototype.appImages;
456 /** @type {!chrome.cast.Receiver} */
457 chrome.cast.Session.prototype.receiver;
459 /** @type {!Array.<!chrome.cast.SenderApplication>} The applications. */
460 chrome.cast.Session.prototype.senderApps;
462 /** @type {!Array.<!{name: string}>} The namespaces. */
463 chrome.cast.Session.prototype.namespaces;
465 /** @type {!Array.<!chrome.cast.media.Media>} */
466 chrome.cast.Session.prototype.media;
468 /** @type {!chrome.cast.SessionStatus} */
469 chrome.cast.Session.prototype.status;
472 * @param {number} newLevel
473 * @param {function()} successCallback
474 * @param {function(chrome.cast.Error)} errorCallback
476 chrome.cast.Session.prototype.setReceiverVolumeLevel =
477 function(newLevel, successCallback, errorCallback) {};
480 * @param {boolean} muted
481 * @param {function()} successCallback
482 * @param {function(chrome.cast.Error)} errorCallback
484 chrome.cast.Session.prototype.setReceiverMuted =
485 function(muted, successCallback, errorCallback) {};
488 * @param {function()} successCallback
489 * @param {function(chrome.cast.Error)} errorCallback
491 chrome.cast.Session.prototype.leave =
492 function(successCallback, errorCallback) {};
495 * @param {function()} successCallback
496 * @param {function(chrome.cast.Error)} errorCallback
498 chrome.cast.Session.prototype.stop =
499 function(successCallback, errorCallback) {};
502 * @param {string} namespace
503 * @param {!Object|string} message
504 * @param {!function()} successCallback
505 * @param {function(!chrome.cast.Error)} errorCallback
507 chrome.cast.Session.prototype.sendMessage =
508 function(namespace, message, successCallback, errorCallback) {};
511 * @param {function(boolean)} listener
513 chrome.cast.Session.prototype.addUpdateListener = function(listener) {};
516 * @param {function(boolean)} listener
518 chrome.cast.Session.prototype.removeUpdateListener = function(listener) {};
521 * @param {string} namespace
522 * @param {function(string,string)} listener
524 chrome.cast.Session.prototype.addMessageListener =
525 function(namespace, listener) {};
528 * @param {string} namespace
529 * @param {function(string,string)} listener
531 chrome.cast.Session.prototype.removeMessageListener =
532 function(namespace, listener) {};
535 * @param {function(!chrome.cast.media.Media)} listener
537 chrome.cast.Session.prototype.addMediaListener = function(listener) {};
540 * @param {function(chrome.cast.media.Media)} listener
542 chrome.cast.Session.prototype.removeMediaListener = function(listener) {};
545 * @param {!chrome.cast.media.LoadRequest} loadRequest
546 * @param {function(!chrome.cast.media.Media)} successCallback
547 * @param {function(!chrome.cast.Error)} errorCallback
549 chrome.cast.Session.prototype.loadMedia =
550 function(loadRequest, successCallback, errorCallback) {};
555 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.timeout
557 chrome.cast.timeout = {};
561 * @const {!Array.<number>}
562 * @see https://developers.google.com/cast/docs/reference/chrome/
568 * @typedef {!function(?chrome.cast.Receiver, !chrome.cast.ReceiverAction)}
570 chrome.cast.ReceiverActionListener;
576 chrome.cast.isAvailable = false;
580 * @param {!chrome.cast.ApiConfig} apiConfig
581 * @param {function()} successCallback
582 * @param {function(chrome.cast.Error)} errorCallback
584 chrome.cast.initialize = function(apiConfig, successCallback, errorCallback) {};
588 * @param {function(!chrome.cast.Session)} successCallback
589 * @param {function(chrome.cast.Error)} errorCallback
590 * @param {chrome.cast.SessionRequest=} opt_sessionRequest
592 chrome.cast.requestSession = function(
593 successCallback, errorCallback, opt_sessionRequest) {};
597 * @param {string} sessionId The id of the session to join.
599 chrome.cast.requestSessionById = function(sessionId) {};
603 * @param {chrome.cast.ReceiverActionListener} listener
605 chrome.cast.addReceiverActionListener = function(listener) {};
609 * @param {chrome.cast.ReceiverActionListener} listener
611 chrome.cast.removeReceiverActionListener = function(listener) {};
615 * @param {string} message The message to log.
617 chrome.cast.logMessage = function(message) {};
621 * @param {!Array.<chrome.cast.Receiver>} receivers
622 * @param {function()} successCallback
623 * @param {function(chrome.cast.Error)} errorCallback
625 chrome.cast.setCustomReceivers =
626 function(receivers, successCallback, errorCallback) {};
630 * @param {!chrome.cast.Receiver} receiver
631 * @param {function()} successCallback
632 * @param {function(chrome.cast.Error)} errorCallback
634 chrome.cast.setReceiverDisplayStatus =
635 function(receiver, successCallback, errorCallback) {};
640 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.GetStatusRequest
642 chrome.cast.media.GetStatusRequest = function() {};
644 /** @type {Object} */
645 chrome.cast.media.GetStatusRequest.prototype.customData;
650 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.PauseRequest
652 chrome.cast.media.PauseRequest = function() {};
654 /** @type {Object} */
655 chrome.cast.media.PauseRequest.prototype.customData;
660 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.PlayRequest
662 chrome.cast.media.PlayRequest = function() {};
664 /** @type {Object} */
665 chrome.cast.media.PlayRequest.prototype.customData;
670 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.SeekRequest
672 chrome.cast.media.SeekRequest = function() {};
674 /** @type {?number} */
675 chrome.cast.media.SeekRequest.prototype.currentTime;
677 /** @type {?chrome.cast.media.ResumeState} */
678 chrome.cast.media.SeekRequest.prototype.resumeState;
680 /** @type {Object} */
681 chrome.cast.media.SeekRequest.prototype.customData;
686 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.StopRequest
688 chrome.cast.media.StopRequest = function() {};
690 /** @type {Object} */
691 chrome.cast.media.StopRequest.prototype.customData;
695 * @param {!chrome.cast.Volume} volume
697 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.VolumeRequest
699 chrome.cast.media.VolumeRequest = function(volume) {};
701 /** @type {!chrome.cast.Volume} */
702 chrome.cast.media.VolumeRequest.prototype.volume = volume;
704 /** @type {Object} */
705 chrome.cast.media.VolumeRequest.prototype.customData;
709 * @param {!chrome.cast.media.MediaInfo} mediaInfo
711 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.LoadRequest
713 chrome.cast.media.LoadRequest = function(mediaInfo) {};
715 /** @type {Array.<number>} */
716 chrome.cast.media.LoadRequest.prototype.activeTrackIds;
718 /** @type {boolean} */
719 chrome.cast.media.LoadRequest.prototype.autoplay;
721 /** @type {?number} */
722 chrome.cast.media.LoadRequest.prototype.currentTime;
724 /** @type {Object} */
725 chrome.cast.media.LoadRequest.prototype.customData;
727 /** @type {!chrome.cast.media.MediaInfo} */
728 chrome.cast.media.LoadRequest.prototype.media;
732 * @param {Array.<number>=} opt_activeTrackIds
733 * @param {chrome.cast.media.TextTrackStyle=} opt_textTrackStyle
735 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.EditTracksInfoRequest
737 chrome.cast.media.EditTracksInfoRequest =
738 function(opt_activeTrackIds, opt_textTrackStyle) {};
740 /** @type {Array.<number>} */
741 chrome.cast.media.EditTracksInfoRequest.prototype.activeTrackIds;
743 /** @type {?chrome.cast.media.TextTrackStyle} */
744 chrome.cast.media.EditTracksInfoRequest.prototype.textTrackStyle;
749 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.GenericMediaMetadata
751 chrome.cast.media.GenericMediaMetadata = function() {};
753 /** @type {chrome.cast.media.MetadataType} */
754 chrome.cast.media.GenericMediaMetadata.prototype.metadataType;
756 /** @type {?string} */
757 chrome.cast.media.GenericMediaMetadata.prototype.title;
759 /** @type {?string} */
760 chrome.cast.media.GenericMediaMetadata.prototype.subtitle;
762 /** @type {Array.<chrome.cast.Image>} */
763 chrome.cast.media.GenericMediaMetadata.prototype.images;
765 /** @type {?string} */
766 chrome.cast.media.GenericMediaMetadata.prototype.releaseDate;
769 * @type {chrome.cast.media.MetadataType}
770 * @deprecated Please use metadataType instead.
772 chrome.cast.media.GenericMediaMetadata.prototype.type;
776 * @deprecated Use releaseDate instead.
778 chrome.cast.media.GenericMediaMetadata.prototype.releaseYear;
783 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.MovieMediaMetadata
785 chrome.cast.media.MovieMediaMetadata = function() {};
787 /** @type {chrome.cast.media.MetadataType} */
788 chrome.cast.media.MovieMediaMetadata.prototype.metadataType;
790 /** @type {?string} */
791 chrome.cast.media.MovieMediaMetadata.prototype.title;
793 /** @type {?string} */
794 chrome.cast.media.MovieMediaMetadata.prototype.studio;
796 /** @type {?string} */
797 chrome.cast.media.MovieMediaMetadata.prototype.subtitle;
799 /** @type {Array.<chrome.cast.Image>} */
800 chrome.cast.media.MovieMediaMetadata.prototype.images;
802 /** @type {?string} */
803 chrome.cast.media.MovieMediaMetadata.prototype.releaseDate;
806 * @type {chrome.cast.media.MetadataType}
807 * @deprecated Please use metadataType instead.
809 chrome.cast.media.MovieMediaMetadata.prototype.type;
813 * @deprecated Use releaseDate instead.
815 chrome.cast.media.MovieMediaMetadata.prototype.releaseYear;
820 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.TvShowMediaMetadata
822 chrome.cast.media.TvShowMediaMetadata = function() {};
824 /** @type {chrome.cast.media.MetadataType} */
825 chrome.cast.media.TvShowMediaMetadata.prototype.metadataType;
827 /** @type {?string} */
828 chrome.cast.media.TvShowMediaMetadata.prototype.seriesTitle;
830 /** @type {?string} */
831 chrome.cast.media.TvShowMediaMetadata.prototype.title;
833 /** @type {?number} */
834 chrome.cast.media.TvShowMediaMetadata.prototype.season;
836 /** @type {?number} */
837 chrome.cast.media.TvShowMediaMetadata.prototype.episode;
839 /** @type {Array.<chrome.cast.Image>} */
840 chrome.cast.media.TvShowMediaMetadata.prototype.images;
842 /** @type {?string} */
843 chrome.cast.media.TvShowMediaMetadata.prototype.originalAirdate;
846 * @type {chrome.cast.media.MetadataType}
847 * @deprecated Please use metadataType instead.
849 chrome.cast.media.TvShowMediaMetadata.prototype.type;
853 * @deprecated Use title instead.
855 chrome.cast.media.TvShowMediaMetadata.prototype.episodeTitle;
859 * @deprecated Use season instead.
861 chrome.cast.media.TvShowMediaMetadata.prototype.seasonNumber;
865 * @deprecated Use episode instead.
867 chrome.cast.media.TvShowMediaMetadata.prototype.episodeNumber;
871 * @deprecated Use originalAirdate instead.
873 chrome.cast.media.TvShowMediaMetadata.prototype.releaseYear;
878 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.MusicTrackMediaMetadata
880 chrome.cast.media.MusicTrackMediaMetadata = function() {};
883 /** @type {chrome.cast.media.MetadataType} */
884 chrome.cast.media.MusicTrackMediaMetadata.prototype.metadataType;
886 /** @type {?string} */
887 chrome.cast.media.MusicTrackMediaMetadata.prototype.albumName;
889 /** @type {?string} */
890 chrome.cast.media.MusicTrackMediaMetadata.prototype.title;
892 /** @type {?string} */
893 chrome.cast.media.MusicTrackMediaMetadata.prototype.albumArtist;
895 /** @type {?string} */
896 chrome.cast.media.MusicTrackMediaMetadata.prototype.artist;
898 /** @type {?string} */
899 chrome.cast.media.MusicTrackMediaMetadata.prototype.composer;
901 /** @type {?string} */
902 chrome.cast.media.MusicTrackMediaMetadata.prototype.songName;
904 /** @type {?number} */
905 chrome.cast.media.MusicTrackMediaMetadata.prototype.trackNumber;
907 /** @type {?number} */
908 chrome.cast.media.MusicTrackMediaMetadata.prototype.discNumber;
910 /** @type {Array.<chrome.cast.Image>} */
911 chrome.cast.media.MusicTrackMediaMetadata.prototype.images;
914 * @type {chrome.cast.media.MetadataType}
915 * @deprecated Please use metadataType instead.
917 chrome.cast.media.MusicTrackMediaMetadata.prototype.type;
921 * @deprecated Use artist instead.
923 chrome.cast.media.MusicTrackMediaMetadata.prototype.artistName;
927 * @deprecated Use releaseDate instead.
929 chrome.cast.media.MusicTrackMediaMetadata.prototype.releaseYear;
934 chrome.cast.media.MusicTrackMediaMetadata.prototype.releaseDate;
939 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.PhotoMediaMetadata
941 chrome.cast.media.PhotoMediaMetadata = function() {};
943 /** @type {chrome.cast.media.MetadataType} */
944 chrome.cast.media.PhotoMediaMetadata.prototype.metadataType;
946 /** @type {?string} */
947 chrome.cast.media.PhotoMediaMetadata.prototype.title;
949 /** @type {?string} */
950 chrome.cast.media.PhotoMediaMetadata.prototype.artist;
952 /** @type {?string} */
953 chrome.cast.media.PhotoMediaMetadata.prototype.location;
955 /** @type {Array.<chrome.cast.Image>} */
956 chrome.cast.media.PhotoMediaMetadata.prototype.images;
958 /** @type {?number} */
959 chrome.cast.media.PhotoMediaMetadata.prototype.latitude;
961 /** @type {?number} */
962 chrome.cast.media.PhotoMediaMetadata.prototype.longitude;
964 /** @type {?number} */
965 chrome.cast.media.PhotoMediaMetadata.prototype.width;
967 /** @type {?number} */
968 chrome.cast.media.PhotoMediaMetadata.prototype.height;
970 /** @type {?string} */
971 chrome.cast.media.PhotoMediaMetadata.prototype.creationDateTime;
974 * @type {chrome.cast.media.MetadataType}
975 * @deprecated Please use metadataType instead.
977 chrome.cast.media.PhotoMediaMetadata.prototype.type;
981 * @param {string} contentId
982 * @param {string} contentType
984 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.MediaInfo
986 chrome.cast.media.MediaInfo = function(contentId, contentType) {};
988 /** @type {string} */
989 chrome.cast.media.MediaInfo.prototype.contentId;
991 /** @type {chrome.cast.media.StreamType} */
992 chrome.cast.media.MediaInfo.prototype.streamType;
994 /** @type {string} */
995 chrome.cast.media.MediaInfo.prototype.contentType;
998 chrome.cast.media.MediaInfo.prototype.metadata;
1000 /** @type {?number} */
1001 chrome.cast.media.MediaInfo.prototype.duration;
1003 /** @type {Array.<!chrome.cast.media.Track>} */
1004 chrome.cast.media.MediaInfo.prototype.tracks;
1006 /** @type {?chrome.cast.media.TextTrackStyle} */
1007 chrome.cast.media.MediaInfo.prototype.textTrackStyle;
1009 /** @type {Object} */
1010 chrome.cast.media.MediaInfo.prototype.customData;
1014 * @param {string} sessionId
1015 * @param {number} mediaSessionId
1017 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.Media
1019 chrome.cast.media.Media = function(sessionId, mediaSessionId) {};
1021 /** @type {string} */
1022 chrome.cast.media.Media.prototype.sessionId;
1024 /** @type {number} */
1025 chrome.cast.media.Media.prototype.mediaSessionId;
1027 /** @type {chrome.cast.media.MediaInfo} */
1028 chrome.cast.media.Media.prototype.media;
1030 /** @type {number} */
1031 chrome.cast.media.Media.prototype.playbackRate;
1033 /** @type {!chrome.cast.media.PlayerState} */
1034 chrome.cast.media.Media.prototype.playerState;
1036 /** @type {!Array.<!chrome.cast.media.MediaCommand>} */
1037 chrome.cast.media.Media.prototype.supportedMediaCommands;
1039 /** @type {!chrome.cast.Volume} */
1040 chrome.cast.media.Media.prototype.volume;
1042 /** @type {?chrome.cast.media.IdleReason} */
1043 chrome.cast.media.Media.prototype.idleReason;
1045 /** @type {Array.<number>} */
1046 chrome.cast.media.Media.prototype.activeTrackIds;
1048 /** @type {Object} */
1049 chrome.cast.media.Media.prototype.customData;
1053 * @deprecated Use getEstimatedTime instead.
1055 chrome.cast.media.Media.prototype.currentTime;
1058 * @param {chrome.cast.media.GetStatusRequest} getStatusRequest
1059 * @param {function()} successCallback
1060 * @param {function(!chrome.cast.Error)} errorCallback
1062 chrome.cast.media.Media.prototype.getStatus =
1063 function(getStatusRequest, successCallback, errorCallback) {};
1066 * @param {chrome.cast.media.PlayRequest} playRequest
1067 * @param {function()} successCallback
1068 * @param {function(!chrome.cast.Error)} errorCallback
1070 chrome.cast.media.Media.prototype.play =
1071 function(playRequest, successCallback, errorCallback) {};
1074 * @param {chrome.cast.media.PauseRequest} pauseRequest
1075 * @param {function()} successCallback
1076 * @param {function(!chrome.cast.Error)} errorCallback
1078 chrome.cast.media.Media.prototype.pause =
1079 function(pauseRequest, successCallback, errorCallback) {};
1082 * @param {!chrome.cast.media.SeekRequest} seekRequest
1083 * @param {function()} successCallback
1084 * @param {function(!chrome.cast.Error)} errorCallback
1086 chrome.cast.media.Media.prototype.seek =
1087 function(seekRequest, successCallback, errorCallback) {};
1090 * @param {chrome.cast.media.StopRequest} stopRequest
1091 * @param {function()} successCallback
1092 * @param {function(!chrome.cast.Error)} errorCallback
1094 chrome.cast.media.Media.prototype.stop =
1095 function(stopRequest, successCallback, errorCallback) {};
1098 * @param {!chrome.cast.media.VolumeRequest} volumeRequest
1099 * @param {function()} successCallback
1100 * @param {function(!chrome.cast.Error)} errorCallback
1102 chrome.cast.media.Media.prototype.setVolume =
1103 function(volumeRequest, successCallback, errorCallback) {};
1106 * @param {!chrome.cast.media.EditTracksInfoRequest} editTracksInfoRequest
1107 * @param {function()} successCallback
1108 * @param {function(!chrome.cast.Error)} errorCallback
1110 chrome.cast.media.Media.prototype.editTracksInfo =
1111 function(editTracksInfoRequest, successCallback, errorCallback) {};
1114 * @param {!chrome.cast.media.MediaCommand} command
1117 chrome.cast.media.Media.prototype.supportsCommand = function(command) {};
1121 * @suppress {deprecated} Uses currentTime member to compute estimated time.
1123 chrome.cast.media.Media.prototype.getEstimatedTime = function() {};
1126 * @param {function(boolean)} listener
1128 chrome.cast.media.Media.prototype.addUpdateListener = function(listener) {};
1131 * @param {function(boolean)} listener
1133 chrome.cast.media.Media.prototype.removeUpdateListener = function(listener) {};
1138 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.timeout
1140 chrome.cast.media.timeout = {};
1142 /** @type {number} */
1143 chrome.cast.media.timeout.load;
1145 /** @type {number} */
1146 chrome.cast.media.timeout.getStatus;
1148 /** @type {number} */
1149 chrome.cast.media.timeout.play;
1151 /** @type {number} */
1152 chrome.cast.media.timeout.pause;
1154 /** @type {number} */
1155 chrome.cast.media.timeout.seek;
1157 /** @type {number} */
1158 chrome.cast.media.timeout.stop;
1160 /** @type {number} */
1161 chrome.cast.media.timeout.setVolume;
1163 /** @type {number} */
1164 chrome.cast.media.timeout.editTracksInfo;
1168 * @param {number} trackId
1169 * @param {!chrome.cast.media.TrackType} trackType
1171 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.Track
1173 chrome.cast.media.Track = function(trackId, trackType) {};
1175 /** @type {number} */
1176 chrome.cast.media.Track.prototype.trackId;
1178 /** @type {?string} */
1179 chrome.cast.media.Track.prototype.trackContentId;
1181 /** @type {?string} */
1182 chrome.cast.media.Track.prototype.trackContentType;
1184 /** @type {!chrome.cast.media.TrackType} */
1185 chrome.cast.media.Track.prototype.type;
1187 /** @type {?string} */
1188 chrome.cast.media.Track.prototype.name;
1190 /** @type {?string} */
1191 chrome.cast.media.Track.prototype.language;
1193 /** @type {?chrome.cast.media.TextTrackType} */
1194 chrome.cast.media.Track.prototype.subtype;
1196 /** @type {Object} */
1197 chrome.cast.media.Track.prototype.customData;
1202 * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.TextTrackStyle
1204 chrome.cast.media.TextTrackStyle = function() {};
1206 /** @type {?string} */
1207 chrome.cast.media.TextTrackStyle.prototype.foregroundColor;
1209 /** @type {?string} */
1210 chrome.cast.media.TextTrackStyle.prototype.backgroundColor;
1212 /** @type {?chrome.cast.media.TextTrackEdgeType} */
1213 chrome.cast.media.TextTrackStyle.prototype.edgeType;
1215 /** @type {?string} */
1216 chrome.cast.media.TextTrackStyle.prototype.edgeColor;
1218 /** @type {?chrome.cast.media.TextTrackWindowType} */
1219 chrome.cast.media.TextTrackStyle.prototype.windowType;
1221 /** @type {?string} */
1222 chrome.cast.media.TextTrackStyle.prototype.windowColor;
1224 /** @type {?number} */
1225 chrome.cast.media.TextTrackStyle.prototype.windowRoundedCornerRadius;
1227 /** @type {?number} */
1228 chrome.cast.media.TextTrackStyle.prototype.fontScale;
1230 /** @type {?string} */
1231 chrome.cast.media.TextTrackStyle.prototype.fontFamily;
1233 /** @type {?chrome.cast.media.TextTrackFontGenericFamily} */
1234 chrome.cast.media.TextTrackStyle.prototype.fontGenericFamily;
1236 /** @type {?chrome.cast.media.TextTrackFontStyle} */
1237 chrome.cast.media.TextTrackStyle.prototype.fontStyle;
1239 /** @type {Object} */
1240 chrome.cast.media.TextTrackStyle.prototype.customData;