private BeeImage GetNextImage(bool advancePointers)
        {
            BeeStack nextStack = BeeBurnVM.Get().EnsureActiveStack();
            BeeImage biNext;

            if (advancePointers)
            {
                biNext = nextStack.GetNextImage(PlayOption == PlayOptions.RepeatThisList);
            }
            else
            {
                biNext = nextStack.PeekNextImage(PlayOption == PlayOptions.RepeatThisList);
            }

            if (biNext == null && PlayOption == PlayOptions.NextList)
            {
                nextStack = BeeBurnVM.Get().GetNextStack(true, advancePointers);

                if (nextStack != null)
                {
                    if (advancePointers)
                    {
                        return(nextStack.GetNextImage(PlayOption == PlayOptions.RepeatThisList));
                    }
                    else
                    {
                        return(nextStack.PeekNextImage(PlayOption == PlayOptions.RepeatThisList));
                    }
                }
            }
            return(biNext);
        }
        private void QueueNextImage()
        {
            EnsureProjectionWindow();
            BeeStack activeStack = BeeBurnVM.Get().EnsureActiveStack();
            BeeImage biNext      = GetNextImage(true);

            if (biNext == null)
            {
                PauseProjection(true);
                m_proj.FadeToBlack();
                return;
            }

            CurrentImage.Source = biNext.BitmapFrame;
            RefreshNextImageControl();

            double panSeconds = m_proj.QueueImage(biNext) + BeeBurnVM.Get().ConfigSettings.ImageFadeTime;

            //  DispatcherTimer setup
            if (m_dispatcherTimer == null)
            {
                m_dispatcherTimer       = new System.Windows.Threading.DispatcherTimer();
                m_dispatcherTimer.Tick += new EventHandler(ProjectionTimerTick);
            }

            m_dispatcherTimer.Tag = panSeconds;

            m_proj.UpdateProgress(0);
            m_timerStart = DateTime.Now;
            m_dispatcherTimer.Interval = new TimeSpan(0, 0, 0, 0, 50);
            m_dispatcherTimer.Start();
        }
 private void BtnAct_Click(object sender, RoutedEventArgs e)
 {
     BeeBurnVM.Get().ActiveStack = Stacks[SelectedStackIndex];
 }
 public PresenterView()
 {
     InitializeComponent();
     DataContext = BeeBurnVM.Get();
 }