define(["exports","./../emby-apiclient/events.js","./playback/playbackmanager.js","./input/api.js","./../emby-apiclient/connectionmanager.js"],function(_exports,_events,_playbackmanager,_api,_connectionmanager){function onChannelManagementInfoUpdated(e,apiClient,data){var options,id,item=data.Channel;item?(id=data.Id,(options=this.options)&&-1!==(id=(options=options.itemsContainer).indexOfItemId(id))&&options.onItemUpdated(id,item)):getEventsToMonitor(this).includes("ChannelManagementInfoUpdated")&&this.notifyRefreshNeeded(data.IsLocalEvent)}function onUserDataChanged(e,apiClient,userData,data){var options=this.options;if(options){if(!options.enableUserData)return;var item,options=options.itemsContainer,index=options.indexOfItemId(userData.ItemId);-1!==index&&(item=options.getItem(index))&&(item.UserData=userData,options.onItemUpdated(index,item))}userData=getEventsToMonitor(this);(userData.includes("markfavorite")||userData.includes("markplayed"))&&this.notifyRefreshNeeded(data.IsLocalEvent)}function getEventsToMonitor(instance){instance=instance.options;if(instance){var itemsContainer=instance.itemsContainer;if(itemsContainer&&itemsContainer.getEventsToMonitor)return itemsContainer.getEventsToMonitor();itemsContainer=instance.monitorEvents;if(itemsContainer)return itemsContainer.split(",")}return[]}function onTimerCreated(e,apiClient,data){var options,item,programId=data.ProgramId,newTimerId=data.Id;newTimerId&&(options=this.options)&&-1!==(programId=(options=options.itemsContainer).indexOfItemId(programId))&&(item=options.getItem(programId))&&(item.TimerId=newTimerId,options.onItemUpdated(programId,item)),getEventsToMonitor(this).includes("Timers")&&this.notifyRefreshNeeded(data.IsLocalEvent)}function onPluginsUninstalled(e,apiClient,data){getEventsToMonitor(this).includes("Plugins")&&this.notifyRefreshNeeded(data.IsLocalEvent)}function onUserNotificationsSaved(e,apiClient,data){getEventsToMonitor(this).includes("UserNotifications")&&this.notifyRefreshNeeded(data.IsLocalEvent)}function onUserNotificationsDeleted(e,apiClient,data){getEventsToMonitor(this).includes("UserNotifications")&&this.notifyRefreshNeeded(data.IsLocalEvent)}function onUsersDeleted(e,apiClient,data){getEventsToMonitor(this).includes("Users")&&this.notifyRefreshNeeded(data.IsLocalEvent)}function onScheduledTaskTriggersUpdated(e,apiClient,data){getEventsToMonitor(this).includes("ScheduledTaskTriggers")&&this.notifyRefreshNeeded(data.IsLocalEvent)}function onCredentialsUpdated(){getEventsToMonitor(this).includes("Servers")&&this.notifyRefreshNeeded(!0)}function onApiKeyCreated(e,apiClient,data){getEventsToMonitor(this).includes("ApiKeys")&&this.notifyRefreshNeeded(data.IsLocalEvent)}function onApiKeysDeleted(e,apiClient,data){getEventsToMonitor(this).includes("ApiKeys")&&this.notifyRefreshNeeded(data.IsLocalEvent)}function onDevicesDeleted(e,apiClient,data){getEventsToMonitor(this).includes("Devices")&&this.notifyRefreshNeeded(data.IsLocalEvent)}function onLiveTVGuideSourcesDeleted(e,apiClient,data){getEventsToMonitor(this).includes("LiveTVGuideSources")&&this.notifyRefreshNeeded(data.IsLocalEvent)}function onLiveTVTunerDevicesDeleted(e,apiClient,data){getEventsToMonitor(this).includes("LiveTVTunerDevices")&&this.notifyRefreshNeeded(data.IsLocalEvent)}function onTimerCancelled(e,apiClient,data){var options,item,programId=data.ProgramId;programId&&(options=this.options)&&-1!==(programId=(options=options.itemsContainer).indexOfItemId(programId))&&(item=options.getItem(programId))&&(item.TimerId=null,options.onItemUpdated(programId,item)),getEventsToMonitor(this).includes("Timers")&&this.notifyRefreshNeeded(data.IsLocalEvent)}function onSeriesTimerUpdated(e,apiClient,data){getEventsToMonitor(this).includes("SeriesTimers")&&this.notifyRefreshNeeded(data.IsLocalEvent)}function onSeriesTimerCreated(e,apiClient,data){getEventsToMonitor(this).includes("SeriesTimers")&&this.notifyRefreshNeeded(data.IsLocalEvent)}function onSeriesTimerCancelled(e,apiClient,data){getEventsToMonitor(this).includes("SeriesTimers")&&this.notifyRefreshNeeded(data.IsLocalEvent)}function onItemsRemovedFromCollection(e,apiClient,data){var _instance$options;null!=(_instance$options=this.options)&&_instance$options.itemIds.includes(data.CollectionId||-1)&&getEventsToMonitor(this).includes("CollectionItems")&&this.notifyRefreshNeeded(data.IsLocalEvent)}function onItemsRemovedFromPlaylist(e,apiClient,data){var _instance$options2;null!=(_instance$options2=this.options)&&_instance$options2.itemIds.includes(data.PlaylistId||-1)&&getEventsToMonitor(this).includes("PlaylistItems")&&this.notifyRefreshNeeded(data.IsLocalEvent)}function onRecordingStarted(e,apiClient,data){getEventsToMonitor(this).includes("RecordingStarted")&&this.notifyRefreshNeeded(!0)}function onRecordingEnded(e,apiClient,data){getEventsToMonitor(this).includes("RecordingEnded")&&this.notifyRefreshNeeded(!0)}function includesAny(array1,array2){return array1.some(function(r){return array2.includes(r)})}function onItemsMerged(e,apiClient,data){var itemsUpdated=data.Items||[],options=this.options;if(options){var itemsContainer=options.itemsContainer,options=options.itemIds;if(options&&includesAny(itemsUpdated,options))this.notifyRefreshNeeded(data.IsLocalEvent);else for(var i=0,length=itemsUpdated.length;i