public void Pause()
        {
            lock (_lock)
            {
                if (!IsConnected())
                {
                    throw _notConnected;
                }

                CppAssembly.PlayerPause(_playerPointer);
            }
        }
        private void HandleEvent(IntPtr wParam)
        {
            lock (_lock)
            {
                if (!IsConnected())
                {
                    return;
                }

                CppAssembly.PlayerHandleEvent(_playerPointer, wParam);
            }
        }
        private void SurfaceSizeChanged(object sender, EventArgs e)
        {
            if (!IsConnected())
            {
                return;
            }

            lock (_lock)
            {
                _surfaceNeedsRepaint = true;
                CppAssembly.PlayerResize(_playerPointer, Convert.ToUInt16(_surface.Width), Convert.ToUInt16(_surface.Height));
            }
        }
        public void Close()
        {
            lock (_lock)
            {
                if (!IsConnected())
                {
                    return;
                }

                _surface.Paint       -= SurfacePaint;
                _surface.SizeChanged -= SurfaceSizeChanged;
                CppAssembly.PlayerShutDown(_playerPointer);
                DisposePointerToPlayer();
            }
        }
        public void Play()
        {
            lock (_lock)
            {
                if (!IsConnected())
                {
                    throw _notConnected;
                }

                CppAssembly.PlayerPlay(_playerPointer, out var invokeResult);
                if (invokeResult != 0)
                {
                    throw new InvalidOperationException($"Failed to play #{invokeResult}.");
                }
            }
        }
        private void OpenFile(string filePath, DateTime correlationStartTime)
        {
            filePath = filePath.Replace("\"", "");
            if (!File.Exists(filePath))
            {
                throw new FileNotFoundException(filePath);
            }

            SetInitialTime(filePath, correlationStartTime);

            var seek = MilSecondsToSeekNanoSeconds(_seekTime);

            CppAssembly.PlayerOpen(_playerPointer, filePath, seek, out var invokeResult);
            if (invokeResult != 0)
            {
                throw new InvalidOperationException($"Failed to open video #{invokeResult}.");
            }
        }
Beispiel #7
0
        IAssembly IAssemblyReference.Resolve(ITypeResolveContext context)
        {
            if (context == null)
            {
                throw new ArgumentNullException("context");
            }
            var       cache = context.Compilation.CacheManager;
            IAssembly asm   = (IAssembly)cache.GetShared(this);

            if (asm != null)
            {
                return(asm);
            }
            else
            {
                asm = new CppAssembly(context.Compilation, this);
                return((IAssembly)cache.GetOrAddShared(this, asm));
            }
        }
        public void Seek(double seekTimeMilSec)
        {
            var prevSeekTime = MilSecondsToSeekNanoSeconds(_seekTime);

            _seekTime = seekTimeMilSec;
            var seek = MilSecondsToSeekNanoSeconds(_seekTime);

            lock (_lock)
            {
                if (!IsConnected())
                {
                    throw _notConnected;
                }
                if (prevSeekTime > seek)
                {
                    Debug.WriteLine($"seek time problem: {seek - prevSeekTime}");
                }
                CppAssembly.PlayerSkipToPosition(_playerPointer, seek);
            }
        }