Exemplo n.º 1
0
        SaveStream(string filename, double quality, DispatcherQueue queue)
            : base(queue)
        {
            Uri baseUri     = new Uri(LayoutPaths.RootDir);
            Uri relativeUri = new Uri(baseUri, filename);

            string path = relativeUri.LocalPath;

            _writer = new BinaryWriter(new FileStream(path, FileMode.Append, FileAccess.Write));
            _memory = new MemoryStream();
            _port   = new SaveStreamPort();

            foreach (ImageCodecInfo info in ImageCodecInfo.GetImageEncoders())
            {
                if (info.FormatID == ImageFormat.Jpeg.Guid)
                {
                    _codec        = info;
                    _eps          = new EncoderParameters();
                    _eps.Param[0] = new EncoderParameter(
                        System.Drawing.Imaging.Encoder.Quality,
                        (long)(quality * 100)
                        );
                    break;
                }
            }

            ActivateHandler();
        }
Exemplo n.º 2
0
        void ShutdownInternalService()
        {
            if (_queue != null)
            {
                if (_streamPort != null)
                {
                    _streamPort.Post(new Shutdown());
                    _streamPort = null;
                }

                ResourceManagerPort.Post(new FreeExecutionResource(_queue));
                _queue = null;
            }
        }
Exemplo n.º 3
0
        IEnumerator <ITask> ReplaceHandler(Replace replace)
        {
            _state = replace.Body;
            replace.ResponsePort.Post(DefaultReplaceResponseType.Instance);

            SendNotification(_submgrPort, replace);

            if (_streamPort != null)
            {
                _streamPort.Post(new Shutdown());
                _streamPort = null;
            }

            if (!string.IsNullOrEmpty(_state.CaptureFile))
            {
                _streamPort = SaveStream.Create(_state.CaptureFile, _state.Quality, _queue);
            }

            yield break;
        }
Exemplo n.º 4
0
        public void ReplaceHandler(Replace replace)
        {
            _state = replace.Body;

            replace.ResponsePort.Post(DefaultReplaceResponseType.Instance);

#if !URT_MINCLR
            SendNotification(_submgrPort, replace);

            if (_streamPort != null)
            {
                _streamPort.Post(new Shutdown());
                _streamPort = null;
            }

            if (!string.IsNullOrEmpty(_state.CaptureFile))
            {
                _streamPort = SaveStream.Create(_state.CaptureFile, _state.Quality, _queue);
            }
#else
            SendNotification(replace);
#endif
        }