void session_PhotoReceived(object sender, PhotoReceivedEventArgs e) { OnPhotoReceived(e); byte[] photo; lock (photoSync) { if (e.AssetAction == PhotoAction.CacheOnly) { cachePhoto(e.SessionId, e.AssetKey, e.Photo); return; } if (e.AssetAction == PhotoAction.DisplayCached) { Dictionary <string, byte[]> sessionCache; if (!photoCache.TryGetValue(e.SessionId, out sessionCache) || !sessionCache.TryGetValue(e.AssetKey, out photo)) { e.NotInCache = true; return; } } else { photo = e.Photo; } } OnShowPhoto(new PhotoEventArgs(e.AssetKey, e.Transition, photo, e.SessionId)); }
protected virtual void OnPhotoReceived(PhotoReceivedEventArgs e) { if (PhotoReceived != null) { PhotoReceived(this, e); } }
HttpResponse handlePhoto(HttpRequest request) { Logger.Debug("Airplay: Photo received: Transition '{0}', Action '{1}'", request["X-Apple-Transition"], request["X-Apple-AssetAction"]); PhotoReceivedEventArgs e = new PhotoReceivedEventArgs(request["X-Apple-AssetKey"], request["X-Apple-Transition"], request.Content, request["X-Apple-AssetAction"], SessionId); OnPhotoReceived(e); if (e.NotInCache) { return(getEmptyResponse("412 Precondition Failed")); } return(getEmptyResponse()); }