Example #1
0
        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));
        }
Example #2
0
 protected virtual void OnPhotoReceived(PhotoReceivedEventArgs e)
 {
     if (PhotoReceived != null)
     {
         PhotoReceived(this, e);
     }
 }
Example #3
0
        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());
        }