[Android] Implement 3-way sensor fallback for Device Orientation.
[chromium-blink-merge.git] / ui / file_manager / externs / chrome_cast.js
blobf1e26c18081d2e6b4fe11aaffaf7494f3ca847a2
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.
5 /**
6  * @namespace
7  */
8 chrome.cast = {};
11 /**
12  * @enum {string}
13  * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.AutoJoinPolicy
14  */
15 chrome.cast.AutoJoinPolicy = {
16   TAB_AND_ORIGIN_SCOPED: 'tab_and_origin_scoped',
17   ORIGIN_SCOPED: 'origin_scoped',
18   PAGE_SCOPED: 'page_scoped'
22 /**
23  * @enum {string}
24  * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.DefaultActionPolicy
25  */
26 chrome.cast.DefaultActionPolicy = {
27   CREATE_SESSION: 'create_session',
28   CAST_THIS_TAB: 'cast_this_tab'
32 /**
33  * @enum {string}
34  * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.Capability
35  */
36 chrome.cast.Capability = {
37   VIDEO_OUT: 'video_out',
38   AUDIO_OUT: 'audio_out',
39   VIDEO_IN: 'video_in',
40   AUDIO_IN: 'audio_in'
44 /**
45  * @enum {string}
46  * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.ErrorCode
47  */
48 chrome.cast.ErrorCode = {
49   CANCEL: 'cancel',
50   TIMEOUT: 'timeout',
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'
62 /**
63  * @enum {string}
64  * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.ReceiverAvailability
65  */
66 chrome.cast.ReceiverAvailability = {
67   AVAILABLE: 'available',
68   UNAVAILABLE: 'unavailable'
72 /**
73  * @enum {string}
74  * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.SenderPlatform
75  */
76 chrome.cast.SenderPlatform = {
77   CHROME: 'chrome',
78   IOS: 'ios',
79   ANDROID: 'android'
83 /**
84  * @enum {string}
85  * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.ReceiverType
86  */
87 chrome.cast.ReceiverType = {
88   CAST: 'cast',
89   HANGOUT: 'hangout',
90   CUSTOM: 'custom'
94 /**
95  * @enum {string}
96  * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.ReceiverAction
97  */
98 chrome.cast.ReceiverAction = {
99   CAST: 'cast',
100   STOP: 'stop'
105  * @enum {string}
106  * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.SessionStatus
107  */
108 chrome.cast.SessionStatus = {
109   CONNECTED: 'connected',
110   DISCONNECTED: 'disconnected',
111   STOPPED: 'stopped'
116  * @namespace
117  */
118 chrome.cast.media = {};
122  * @enum {string}
123  * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.MediaCommand
124  */
125 chrome.cast.media.MediaCommand = {
126   PAUSE: 'pause',
127   SEEK: 'seek',
128   STREAM_VOLUME: 'stream_volume',
129   STREAM_MUTE: 'stream_mute'
134  * @enum {number}
135  * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.MetadataType
136  */
137 chrome.cast.media.MetadataType = {
138   GENERIC: 0,
139   TV_SHOW: 1,
140   MOVIE: 2,
141   MUSIC_TRACK: 3,
142   PHOTO: 4
147  * @enum {string}
148  * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.PlayerState
149  */
150 chrome.cast.media.PlayerState = {
151   IDLE: 'IDLE',
152   PLAYING: 'PLAYING',
153   PAUSED: 'PAUSED',
154   BUFFERING: 'BUFFERING'
159  * @enum {string}
160  * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.ResumeState
161  */
162 chrome.cast.media.ResumeState = {
163   PLAYBACK_START: 'PLAYBACK_START',
164   PLAYBACK_PAUSE: 'PLAYBACK_PAUSE'
169  * @enum {string}
170  * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.StreamType
171  */
172 chrome.cast.media.StreamType = {
173   BUFFERED: 'BUFFERED',
174   LIVE: 'LIVE',
175   OTHER: 'OTHER'
180  * @enum {string}
181  * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.IdleReason
182  */
183 chrome.cast.media.IdleReason = {
184   CANCELLED: 'CANCELLED',
185   INTERRUPTED: 'INTERRUPTED',
186   FINISHED: 'FINISHED',
187   ERROR: 'ERROR'
192  * @enum {string}
193  * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.TrackType
194  */
195 chrome.cast.media.TrackType = {
196   TEXT: 'TEXT',
197   AUDIO: 'AUDIO',
198   VIDEO: 'VIDEO'
203  * @enum {string}
204  * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.TextTrackType
205  */
206 chrome.cast.media.TextTrackType = {
207   SUBTITLES: 'SUBTITLES',
208   CAPTIONS: 'CAPTIONS',
209   DESCRIPTIONS: 'DESCRIPTIONS',
210   CHAPTERS: 'CHAPTERS',
211   METADATA: 'METADATA'
216  * @enum {string}
217  * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.TextTrackEdgeType
218  */
219 chrome.cast.media.TextTrackEdgeType = {
220   NONE: 'NONE',
221   OUTLINE: 'OUTLINE',
222   DROP_SHADOW: 'DROP_SHADOW',
223   RAISED: 'RAISED',
224   DEPRESSED: 'DEPRESSED'
229  * @enum {string}
230  * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.TextTrackWindowType
231  */
232 chrome.cast.media.TextTrackWindowType = {
233   NONE: 'NONE',
234   NORMAL: 'NORMAL',
235   ROUNDED_CORNERS: 'ROUNDED_CORNERS'
240  * @enum {string}
241  * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.TextTrackFontGenericFamily
242  */
243 chrome.cast.media.TextTrackFontGenericFamily = {
244   SANS_SERIF: 'SANS_SERIF',
245   MONOSPACED_SANS_SERIF: 'MONOSPACED_SANS_SERIF',
246   SERIF: 'SERIF',
247   MONOSPACED_SERIF: 'MONOSPACED_SERIF',
248   CASUAL: 'CASUAL',
249   CURSIVE: 'CURSIVE',
250   SMALL_CAPITALS: 'SMALL_CAPITALS'
255  * @enum {string}
256  * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.TextTrackFontStyle
257  */
258 chrome.cast.media.TextTrackFontStyle = {
259   NORMAL: 'NORMAL',
260   BOLD: 'BOLD',
261   BOLD_ITALIC: 'BOLD_ITALIC',
262   ITALIC: 'ITALIC'
267  * @param {!chrome.cast.ErrorCode} code
268  * @param {string=} opt_description
269  * @param {Object=} opt_details
270  * @constructor
271  * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.Error
272  */
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
287  * @constructor
288  * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.SenderApplication
289  */
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
304  * @constructor
305  * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.Image
306  */
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
322  * @constructor
323  * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.Volume
324  */
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>)}
338  *     receiverListener
339  * @param {chrome.cast.AutoJoinPolicy=} opt_autoJoinPolicy
340  * @param {chrome.cast.DefaultActionPolicy=} opt_defaultActionPolicy
341  * @constructor
342  * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.ApiConfig
343  */
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
367  * @constructor
368  * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.SessionRequest
369  */
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
390  * @constructor
391  * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.Receiver
392  */
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
418  * @constructor
419  * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.ReceiverDisplayStatus
420  */
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
436  * @constructor
437  * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.Session
438  */
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
476  */
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
484  */
485 chrome.cast.Session.prototype.setReceiverMuted =
486     function(muted, successCallback, errorCallback) {};
489  * @param {function()} successCallback
490  * @param {function(chrome.cast.Error)} errorCallback
491  */
492 chrome.cast.Session.prototype.leave =
493     function(successCallback, errorCallback) {};
496  * @param {function()} successCallback
497  * @param {function(chrome.cast.Error)} errorCallback
498  */
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
507  */
508 chrome.cast.Session.prototype.sendMessage =
509     function(namespace, message, successCallback, errorCallback) {};
512  * @param {function(boolean)} listener
513  */
514 chrome.cast.Session.prototype.addUpdateListener = function(listener) {};
517  * @param {function(boolean)} listener
518  */
519 chrome.cast.Session.prototype.removeUpdateListener = function(listener) {};
522  * @param {string} namespace
523  * @param {function(string,string)} listener
524  */
525 chrome.cast.Session.prototype.addMessageListener =
526     function(namespace, listener) {};
529  * @param {string} namespace
530  * @param {function(string,string)} listener
531  */
532 chrome.cast.Session.prototype.removeMessageListener =
533     function(namespace, listener) {};
536  * @param {function(!chrome.cast.media.Media)} listener
537  */
538 chrome.cast.Session.prototype.addMediaListener = function(listener) {};
541  * @param {function(chrome.cast.media.Media)} listener
542  */
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
549  */
550 chrome.cast.Session.prototype.loadMedia =
551     function(loadRequest, successCallback, errorCallback) {};
555  * @namespace
556  * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.timeout
557  */
558 chrome.cast.timeout = {};
562  * @const {!Array<number>}
563  * @see https://developers.google.com/cast/docs/reference/chrome/
564  */
565 chrome.cast.VERSION;
569  * @typedef {!function(?chrome.cast.Receiver, !chrome.cast.ReceiverAction)}
570  */
571 chrome.cast.ReceiverActionListener;
575  * @type {boolean}
576  */
577 chrome.cast.isAvailable = false;
581  * @param {!chrome.cast.ApiConfig} apiConfig
582  * @param {function()} successCallback
583  * @param {function(chrome.cast.Error)} errorCallback
584  */
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
593  */
594 chrome.cast.requestSession = function(
595     successCallback, errorCallback, opt_sessionRequest, opt_label) {};
599  * @param {string} sessionId The id of the session to join.
600  */
601 chrome.cast.requestSessionById = function(sessionId) {};
605  * @param {chrome.cast.ReceiverActionListener} listener
606  */
607 chrome.cast.addReceiverActionListener = function(listener) {};
611  * @param {chrome.cast.ReceiverActionListener} listener
612  */
613 chrome.cast.removeReceiverActionListener = function(listener) {};
617  * @param {string} message The message to log.
618  */
619 chrome.cast.logMessage = function(message) {};
623  * @param {!Array<chrome.cast.Receiver>} receivers
624  * @param {function()} successCallback
625  * @param {function(chrome.cast.Error)} errorCallback
626  */
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
635  */
636 chrome.cast.setReceiverDisplayStatus =
637     function(receiver, successCallback, errorCallback) {};
641  * @constructor
642  * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.GetStatusRequest
643  */
644 chrome.cast.media.GetStatusRequest = function() {};
646 /** @type {Object} */
647 chrome.cast.media.GetStatusRequest.prototype.customData;
651  * @constructor
652  * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.PauseRequest
653  */
654 chrome.cast.media.PauseRequest = function() {};
656 /** @type {Object} */
657 chrome.cast.media.PauseRequest.prototype.customData;
661  * @constructor
662  * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.PlayRequest
663  */
664 chrome.cast.media.PlayRequest = function() {};
666 /** @type {Object} */
667 chrome.cast.media.PlayRequest.prototype.customData;
671  * @constructor
672  * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.SeekRequest
673  */
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;
687  * @constructor
688  * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.StopRequest
689  */
690 chrome.cast.media.StopRequest = function() {};
692 /** @type {Object} */
693 chrome.cast.media.StopRequest.prototype.customData;
697  * @param {!chrome.cast.Volume} volume
698  * @constructor
699  * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.VolumeRequest
700  */
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
712  * @constructor
713  * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.LoadRequest
714  */
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
736  * @constructor
737  * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.EditTracksInfoRequest
738  */
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;
750  * @constructor
751  * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.GenericMediaMetadata
752  */
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.
773  */
774 chrome.cast.media.GenericMediaMetadata.prototype.type;
777  * @type {?number}
778  * @deprecated Use releaseDate instead.
779  */
780 chrome.cast.media.GenericMediaMetadata.prototype.releaseYear;
784  * @constructor
785  * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.MovieMediaMetadata
786  */
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.
810  */
811 chrome.cast.media.MovieMediaMetadata.prototype.type;
814  * @type {?number}
815  * @deprecated Use releaseDate instead.
816  */
817 chrome.cast.media.MovieMediaMetadata.prototype.releaseYear;
821  * @constructor
822  * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.TvShowMediaMetadata
823  */
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.
850  */
851 chrome.cast.media.TvShowMediaMetadata.prototype.type;
854  * @type {?string}
855  * @deprecated Use title instead.
856  */
857 chrome.cast.media.TvShowMediaMetadata.prototype.episodeTitle;
860  * @type {?number}
861  * @deprecated Use season instead.
862  */
863 chrome.cast.media.TvShowMediaMetadata.prototype.seasonNumber;
866  * @type {?number}
867  * @deprecated Use episode instead.
868  */
869 chrome.cast.media.TvShowMediaMetadata.prototype.episodeNumber;
872  * @type {?number}
873  * @deprecated Use originalAirdate instead.
874  */
875 chrome.cast.media.TvShowMediaMetadata.prototype.releaseYear;
879  * @constructor
880  * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.MusicTrackMediaMetadata
881  */
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.
918  */
919 chrome.cast.media.MusicTrackMediaMetadata.prototype.type;
922  * @type {?string}
923  * @deprecated Use artist instead.
924  */
925 chrome.cast.media.MusicTrackMediaMetadata.prototype.artistName;
928  * @type {?number}
929  * @deprecated Use releaseDate instead.
930  */
931 chrome.cast.media.MusicTrackMediaMetadata.prototype.releaseYear;
934  * @type {?string}
935  */
936 chrome.cast.media.MusicTrackMediaMetadata.prototype.releaseDate;
940  * @constructor
941  * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.PhotoMediaMetadata
942  */
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.
978  */
979 chrome.cast.media.PhotoMediaMetadata.prototype.type;
983  * @param {string} contentId
984  * @param {string} contentType
985  * @constructor
986  * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.MediaInfo
987  */
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;
999 /** @type {*} */
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
1018  * @constructor
1019  * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.Media
1020  */
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;
1054  * @type {number}
1055  * @deprecated Use getEstimatedTime instead.
1056  */
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
1063  */
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
1071  */
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
1079  */
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
1087  */
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
1095  */
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
1103  */
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
1111  */
1112 chrome.cast.media.Media.prototype.editTracksInfo =
1113     function(editTracksInfoRequest, successCallback, errorCallback) {};
1116  * @param {!chrome.cast.media.MediaCommand} command
1117  * @return {boolean}
1118  */
1119 chrome.cast.media.Media.prototype.supportsCommand = function(command) {};
1122  * @return {number}
1123  * @suppress {deprecated} Uses currentTime member to compute estimated time.
1124  */
1125 chrome.cast.media.Media.prototype.getEstimatedTime = function() {};
1128  * @param {function(boolean)} listener
1129  */
1130 chrome.cast.media.Media.prototype.addUpdateListener = function(listener) {};
1133  * @param {function(boolean)} listener
1134  */
1135 chrome.cast.media.Media.prototype.removeUpdateListener = function(listener) {};
1139  * @namespace
1140  * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.timeout
1141  */
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
1172  * @constructor
1173  * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.Track
1174  */
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;
1203  * @constructor
1204  * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.TextTrackStyle
1205  */
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;