diff --git a/chrome/chrome-cast.ts b/chrome/chrome-cast.d.ts similarity index 72% rename from chrome/chrome-cast.ts rename to chrome/chrome-cast.d.ts index 71a530542..71a60ff10 100644 --- a/chrome/chrome-cast.ts +++ b/chrome/chrome-cast.d.ts @@ -106,13 +106,14 @@ declare module chrome.cast { } /** - * @const {!Array.} - * @see https://developers.google.com/cast/docs/reference/chrome/ + * @const {!Array} + * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast#.VERSION */ var VERSION: Array; /** * @type {boolean} + * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast#.isAvailable */ var isAvailable: boolean; @@ -169,7 +170,7 @@ declare module chrome.cast { ): void /** - * @param {!Array.} receivers + * @param {!Array} receivers * @param {function()} successCallback * @param {function(chrome.cast.Error)} errorCallback */ @@ -188,13 +189,13 @@ declare module chrome.cast { receiver: chrome.cast.Receiver, successCallback: Function, errorCallback: (error: chrome.cast.Error) => void - ) + ): void interface ApiConfig { /** * @param {!chrome.cast.SessionRequest} sessionRequest * @param {function(!chrome.cast.Session)} sessionListener - * @param {function(!chrome.cast.ReceiverAvailability,Array.)} + * @param {function(!chrome.cast.ReceiverAvailability,Array)} * receiverListener * @param {chrome.cast.AutoJoinPolicy=} opt_autoJoinPolicy * @param {chrome.cast.DefaultActionPolicy=} opt_defaultActionPolicy @@ -206,8 +207,8 @@ declare module chrome.cast { sessionListener: (session: chrome.cast.Session) => void, receiverListener: (receiverAvailability: chrome.cast.ReceiverAvailability) => void, autoJoinPolicy?: chrome.cast.AutoJoinPolicy, - defaultActionPolicy: chrome.cast.DefaultActionPolicy - ); + defaultActionPolicy?: chrome.cast.DefaultActionPolicy + ):ApiConfig; sessionRequest: chrome.cast.SessionRequest; sessionListener: (session: chrome.cast.Session) => void; @@ -216,19 +217,19 @@ declare module chrome.cast { defaultActionPolicy: chrome.cast.DefaultActionPolicy; } - /** - * @param {!chrome.cast.ErrorCode} code - * @param {string=} opt_description - * @param {Object=} opt_details - * @constructor - * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.Error - */ interface Error { + /** + * @param {!chrome.cast.ErrorCode} code + * @param {string=} opt_description + * @param {Object=} opt_details + * @constructor + * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.Error + */ new( code: chrome.cast.ErrorCode, description?: string, details?: Object - ); + ):Error; code: chrome.cast.ErrorCode; description?: string; @@ -244,7 +245,7 @@ declare module chrome.cast { */ new( url: string - ); + ):Image; url: string; height?: number; @@ -252,10 +253,14 @@ declare module chrome.cast { } interface SenderApplication { - + /** + * @param {!chrome.cast.SenderPlatform} platform + * @constructor + * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.SenderApplication + */ new( platform: chrome.cast.SenderPlatform - ); + ):SenderApplication; platform: chrome.cast.SenderPlatform; url?: string; @@ -265,7 +270,7 @@ declare module chrome.cast { interface SessionRequest { /** * @param {string} appId - * @param {!Array.=} opt_capabilities + * @param {!Array=} opt_capabilities * @param {number=} opt_timeout * @constructor * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.SessionRequest @@ -274,7 +279,7 @@ declare module chrome.cast { appId: string, capabilities?: Array, timeout?: number - ); + ):SessionRequest; appId: string; capabilities: Array; @@ -287,7 +292,7 @@ declare module chrome.cast { * @param {string} sessionId * @param {string} appId * @param {string} displayName - * @param {!Array.} appImages + * @param {!Array} appImages * @param {!chrome.cast.Receiver} receiver * @constructor * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.Session @@ -298,7 +303,7 @@ declare module chrome.cast { displayName: string, appImages: Array, receiver: chrome.cast.Receiver - ); + ):Session; sessionId: string; appId: string; @@ -319,7 +324,7 @@ declare module chrome.cast { newLevel: number, successCallback: Function, errorCallback: (error: chrome.cast.Error) => void - ) + ):void /** * @param {boolean} muted @@ -330,7 +335,7 @@ declare module chrome.cast { muted: boolean, successCallback: Function, errorCallback: (error: chrome.cast.Error) => void - ) + ):void /** * @param {function()} successCallback @@ -339,7 +344,7 @@ declare module chrome.cast { leave( successCallback: Function, errorCallback: (error: chrome.cast.Error) => void - ) + ):void /** * @param {function()} successCallback @@ -348,7 +353,7 @@ declare module chrome.cast { stop( successCallback: Function, errorCallback: (error: chrome.cast.Error) => void - ) + ):void /** * @param {string} namespace @@ -361,21 +366,21 @@ declare module chrome.cast { message: string, successCallback: Function, errorCallback: (error: chrome.cast.Error) => void - ) + ):void /** * @param {function(boolean)} listener */ addUpdateListener( - listener: (boolean) => void - ) + listener: (isAlive:boolean) => void + ):void /** * @param {function(boolean)} listener */ removeUpdateListener( - listener: (boolean) => void - ) + listener: (isAlive:boolean) => void + ):void /** * @param {string} namespace @@ -383,8 +388,8 @@ declare module chrome.cast { */ addMessageListener( namespace: string, - listener: (string, string) => void - ) + listener: (namespace: string, message: string) => void + ):void /** * @param {string} namespace @@ -392,22 +397,22 @@ declare module chrome.cast { */ removeMessageListener( namespace: string, - listener: (string, string) => void - ) + listener: (namespace:string, message:string) => void + ):void /** * @param {function(!chrome.cast.media.Media)} listener */ addMediaListener( listener: (media: chrome.cast.media.Media) => void - ) + ):void /** * @param {function(!chrome.cast.media.Media)} listener */ removeMediaListener( listener: (media: chrome.cast.media.Media) => void - ) + ):void /** * @param {!chrome.cast.media.LoadRequest} loadRequest @@ -418,14 +423,25 @@ declare module chrome.cast { loadRequest: chrome.cast.media.LoadRequest, successCallback: (media: chrome.cast.media.Media) => void, errorCallback: (error: chrome.cast.Error) => void - ) + ):void + + /** + * @param {!chrome.cast.media.QueueLoadRequest} queueLoadRequest + * @param {function(!chrome.cast.media.Media)} successCallback + * @param {function(!chrome.cast.Error)} errorCallback + */ + queueLoad( + queueLoadRequest: chrome.cast.media.QueueLoadRequest, + successCallback: (media: chrome.cast.media.Media) => void, + errorCallback: (error: chrome.cast.Error) => void + ):void } interface Receiver { /** * @param {string} label * @param {string} friendlyName - * @param {Array.=} opt_capabilities + * @param {Array=} opt_capabilities * @param {chrome.cast.Volume=} opt_volume * @constructor * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.Receiver @@ -435,7 +451,7 @@ declare module chrome.cast { friendlyName: string, capabilities?: Array, volume?: chrome.cast.Volume - ); + ):Receiver; label: string; friendlyName: string; @@ -448,14 +464,14 @@ declare module chrome.cast { interface ReceiverDisplayStatus { /** * @param {string} statusText - * @param {!Array.} appImages + * @param {!Array} appImages * @constructor * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.ReceiverDisplayStatus */ new( statusText: string, appImages: Array - ); + ):ReceiverDisplayStatus; statusText: string; appImages: Array; @@ -471,7 +487,7 @@ declare module chrome.cast { new( level?: number, muted?: boolean - ); + ):Volume; level?: number; muted?: boolean; @@ -479,6 +495,9 @@ declare module chrome.cast { } declare module chrome.cast.media { + + var DEFAULT_MEDIA_RECEIVER_APP_ID: string; + /** * @enum {string} * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.MediaCommand @@ -542,7 +561,111 @@ declare module chrome.cast.media { FINISHED: string; ERROR: string; } - + + /** + * @enum {string} + * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media#.RepeatMode + */ + interface RepeatMode { + OFF:string; + ALL:string; + SINGLE:string; + ALL_AND_SHUFFLE:string; + } + + interface QueueItem { + /** + * @param {!chrome.cast.media.MediaInfo} mediaInfo + * @constructor + * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.QueueItem + */ + new( + mediaInfo: chrome.cast.media.MediaInfo + ):QueueItem; + + activeTrackIds: Array; + autoplay: boolean; + customData: Object; + itemId: number; + media: chrome.cast.media.MediaInfo; + preloadTime: number; + startTime: number; + } + + interface QueueLoadRequest { + /** + * @param {!Array} items + * @constructor + * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.QueueLoadRequest + */ + new( + items: Array + ):QueueLoadRequest; + + customData: Object; + items: Array; + repeatMode: chrome.cast.media.RepeatMode; + startIndex: number; + } + + interface QueueInsertItemsRequest { + /** + * @param {!Array} + * @constructor + * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.QueueInsertItemsRequest + */ + new( + itemsToInsert: Array + ):QueueInsertItemsRequest; + + customData: Object; + insertBefore:number; + items: Array; + } + + interface QueueRemoveItemsRequest { + /** + * @param {!Array} + * @constructor + * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.QueueRemoveItemsRequest + */ + new( + itemIdsToRemove: Array + ):QueueRemoveItemsRequest; + + customData: Object; + itemIds: Array; + } + + interface QueueReorderItemsRequest { + /** + * @param {!Array} + * @constructor + * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.QueueReorderItemsRequest + */ + new( + itemIdsToReorder: Array + ):QueueReorderItemsRequest; + + customData: Object; + insertBefore: number; + itemIds: Array; + } + + interface QueueUpdateItemsRequest { + /** + * @param {!Array} + * @constructor + * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.QueueUpdateItemsRequest + */ + new( + itemsToUpdate: Array + ):QueueUpdateItemsRequest; + + customData: Object; + item: Array; + } + /** * @enum {string} * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.TrackType @@ -617,7 +740,7 @@ declare module chrome.cast.media { * @constructor * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.GetStatusRequest */ - new(); + new():GetStatusRequest; customData: Object; } @@ -627,7 +750,7 @@ declare module chrome.cast.media { * @constructor * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.PauseRequest */ - new(); + new():PauseRequest; customData: Object; } @@ -637,7 +760,7 @@ declare module chrome.cast.media { * @constructor * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.PlayRequest */ - new(); + new():PlayRequest; customData: Object; } @@ -647,7 +770,7 @@ declare module chrome.cast.media { * @constructor * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.SeekRequest */ - new(); + new():SeekRequest; currentTime: number; resumeState: chrome.cast.media.ResumeState; @@ -659,7 +782,7 @@ declare module chrome.cast.media { * @constructor * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.StopRequest */ - new(); + new():StopRequest; customData: Object; } @@ -672,7 +795,7 @@ declare module chrome.cast.media { */ new( volume: chrome.cast.Volume - ); + ):VolumeRequest; volume: chrome.cast.Volume; customData: Object; @@ -686,7 +809,7 @@ declare module chrome.cast.media { */ new( mediaInfo: chrome.cast.media.MediaInfo - ); + ):LoadRequest; activeTrackIds: Array; autoplay: boolean; @@ -697,7 +820,7 @@ declare module chrome.cast.media { interface EditTracksInfoRequest { /** - * @param {Array.=} opt_activeTrackIds + * @param {Array=} opt_activeTrackIds * @param {chrome.cast.media.TextTrackStyle=} opt_textTrackStyle * @constructor * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.EditTracksInfoRequest @@ -705,7 +828,7 @@ declare module chrome.cast.media { new( activeTrackIds?: Array, textTrackStyle?: chrome.cast.media.TextTrackStyle - ); + ):EditTracksInfoRequest; activeTrackIds: Array; textTrackStyle: chrome.cast.media.TextTrackStyle; @@ -716,17 +839,17 @@ declare module chrome.cast.media { * @constructor * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.GenericMediaMetadata */ - new(); + new():GenericMediaMetadata; - metadataType: chrome.cast.media.MetadataType; - title: string; - subtitle: string; images: Array; + metadataType: chrome.cast.media.MetadataType; releaseDate: string; - - // Deprecated - type: chrome.cast.media.MetadataType; + /** @deprecated. Use releaseDate instead. */ releaseYear: number; + subtitle: string; + title: string; + /** @deprecated. Use metadataType instead. */ + type: chrome.cast.media.MetadataType; } interface MovieMediaMetadata { @@ -734,18 +857,18 @@ declare module chrome.cast.media { * @constructor * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.MovieMediaMetadata */ - new(); - + new():MovieMediaMetadata; + + images: Array; metadataType: chrome.cast.media.MetadataType; + releaseDate: string; + /** @deprecated. Use releaseDate instead. */ + releaseYear: number; + subtitle: string; title: string; studio: string; - subtitle: string; - images: Array; - releaseDate: string; - - // Deprecated + /** @deprecated. Use metadataType instead. */ type: chrome.cast.media.MetadataType; - releaseYear: number; } interface TvShowMediaMetadata { @@ -753,7 +876,7 @@ declare module chrome.cast.media { * @constructor * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.TvShowMediaMetadata */ - new(); + new(): TvShowMediaMetadata; metadataType: chrome.cast.media.MetadataType; seriesTitle: string; @@ -763,11 +886,15 @@ declare module chrome.cast.media { images: Array; originalAirdate: string; - // Deprecated + /** @deprecated. Use metadataType instead. */ type: chrome.cast.media.MetadataType; + /** @deprecated. Use title instead. */ episodeTitle: string; + /** @deprecated. Use season instead. */ seasonNumber: number; + /** @deprecated. Use episode instead. */ episodeNumber: number; + /** @deprecated. Use originalAirdate instead. */ releaseYear: number; } @@ -776,7 +903,7 @@ declare module chrome.cast.media { * @constructor * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.MusicTrackMediaMetadata */ - new(); + new(): MusicTrackMediaMetadata; metadataType: chrome.cast.media.MetadataType; albumName: string; @@ -790,9 +917,11 @@ declare module chrome.cast.media { images: Array; releaseDate: string; - // Deprecated + /** @deprecated. Use metadataType instead. */ type: chrome.cast.media.MetadataType; + /** @deprecated. Use artist instead. */ artistName: string; + /** @deprecated. Use releaseDate instead. */ releaseYear: number; } @@ -801,7 +930,7 @@ declare module chrome.cast.media { * @constructor * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.PhotoMediaMetadata */ - new(); + new(): PhotoMediaMetadata; metadataType: chrome.cast.media.MetadataType; title: string; @@ -814,7 +943,7 @@ declare module chrome.cast.media { height: number; creationDateTime: string; - // Deprecated + /** @deprecated. Use metadataType instead. */ type: chrome.cast.media.MetadataType; } @@ -828,7 +957,7 @@ declare module chrome.cast.media { new( contentId: string, contentType: string - ); + ): MediaInfo; contentId: string; streamType: chrome.cast.media.StreamType; @@ -850,20 +979,25 @@ declare module chrome.cast.media { new( sessionId: string, mediaSessionId: number - ); + ): Media; - sessionId: string; - mediaSessionId: number; + activeTrackIds: Array; + currentItemId: number; + customData: Object; + idleReason: chrome.cast.media.IdleReason; + items: Array; + loadingItemId: number; media: chrome.cast.media.MediaInfo; + mediaSessionId: number; playbackRate: number; playerState: chrome.cast.media.PlayerState; + preloadedItemId: number; + repeatMode: chrome.cast.media.RepeatMode; + sessionId: string; supportedMediaCommands: Array; volume: chrome.cast.Volume; - idleReason: chrome.cast.media.IdleReason; - activeTrackIds: Array; - customData: Object; - - // Deprecated + + /** @deprecated. Use getEstimatedTime instead */ currentTime: number; /** @@ -955,22 +1089,130 @@ declare module chrome.cast.media { * @param {function(boolean)} listener */ addUpdateListener( - listener: (boolean) => void - ) + listener: (isAlive:boolean) => void + ): void /** * @param {function(boolean)} listener */ removeUpdateListener( - listener: (boolean) => void - ) + listener: (isAlive:boolean) => void + ): void - // Deprecated /** * @return {number} * @suppress {deprecated} Uses currentTime member to compute estimated time. */ getEstimatedTime(): number + + /** + * @param {!chrome.cast.media.QueueItem} item + * @param {function()} successCallback + * @param {function(!chrome.cast.Error)} errorCallback + */ + queueAppendItem ( + item: chrome.cast.media.QueueItem, + successCallback: Function, + errorCallback: (error: chrome.cast.Error) => void + ): void + + /** + * @param {!chrome.cast.media.QueueInsertItemsRequest} queueInsertItemsRequest + * @param {function()} successCallback + * @param {function(!chrome.cast.Error)} errorCallback + */ + queueInsertItems ( + queueInsertItemsRequest: chrome.cast.media.QueueInsertItemsRequest, + successCallback: Function, + errorCallback: (error: chrome.cast.Error) => void + ): void + + /** + * @param {!number} itemId + * @param {function()} successCallback + * @param {function(!chrome.cast.Error)} errorCallback + */ + queueJumpToItem ( + itemId: number, + successCallback: Function, + errorCallback: (error: chrome.cast.Error) => void + ): void + + /** + * @param {!number} itemId + * @param {!number} newIndex + * @param {function()} successCallback + * @param {function(!chrome.cast.Error)} errorCallback + */ + queueMoveItemToNewIndex ( + itemId: number, + newIndex: number, + successCallback: Function, + errorCallback: (error: chrome.cast.Error) => void + ): void + + /** + * @param {function()} successCallback + * @param {function(!chrome.cast.Error)} errorCallback + */ + queueNext ( + successCallback: Function, + errorCallback: (error: chrome.cast.Error) => void + ): void + + /** + * @param {function()} successCallback + * @param {function(!chrome.cast.Error)} errorCallback + */ + queuePrev ( + successCallback: Function, + errorCallback: (error: chrome.cast.Error) => void + ): void + + /** + * @param {!number} itemId + * @param {function()} successCallback + * @param {function(!chrome.cast.Error)} errorCallback + */ + queueRemoveItem ( + itemId: number, + successCallback: Function, + errorCallback: (error: chrome.cast.Error) => void + ): void + + /** + * @param {!chrome.cast.media.QueueReorderItemsRequest} queueReorderItemsRequest + * @param {function()} successCallback + * @param {function(!chrome.cast.Error)} errorCallback + */ + queueReorderItems ( + queueReorderItemsRequest: chrome.cast.media.QueueReorderItemsRequest, + successCallback: Function, + errorCallback: (error: chrome.cast.Error) => void + ): void + + /** + * @param {!chrome.cast.media.RepeatMode} repeatMode + * @param {function()} successCallback + * @param {function(!chrome.cast.Error)} errorCallback + */ + queueSetRepeatMode ( + repeatMode: chrome.cast.media.RepeatMode, + successCallback: Function, + errorCallback: (error: chrome.cast.Error) => void + ): void + + /** + * @param {!chrome.cast.media.QueueUpdateItemsRequest} queueUpdateItemsRequest + * @param {function()} successCallback + * @param {function(!chrome.cast.Error)} errorCallback + */ + queueUpdateItems ( + queueUpdateItemsRequest: chrome.cast.media.QueueUpdateItemsRequest, + successCallback: Function, + errorCallback: (error: chrome.cast.Error) => void + ): void + } interface Track { @@ -983,7 +1225,7 @@ declare module chrome.cast.media { new( trackId: number, trackType: chrome.cast.media.TrackType - ); + ): Track; trackId: number; trackContentId: string; @@ -1000,7 +1242,7 @@ declare module chrome.cast.media { * @constructor * @see https://developers.google.com/cast/docs/reference/chrome/chrome.cast.media.TextTrackStyle */ - new(); + new(): TextTrackStyle; foregroundColor: string; backgroundColor: string; @@ -1030,4 +1272,9 @@ declare module chrome.cast.media.timeout { var stop: number; var setVolume: number; var editTracksInfo: number; + var queueInsert: number; + var queueLoad: number; + var queueRemove: number; + var queueReorder: number; + var queueUpdate: number; } \ No newline at end of file