Exemplo n.º 1
0
        public void tearDown()
        {
            freePlayer  = null;
            freePlayer2 = null;
            tutoree     = null;

            myMediaElement.Visibility = System.Windows.Visibility.Visible;
            // Instructions.Visibility = System.Windows.Visibility.Visible;
            // Facts.Visibility = System.Windows.Visibility.Visible;

            mainCanvas.Background   = new SolidColorBrush(Colors.Black);
            PauseOverlay.Visibility = System.Windows.Visibility.Hidden;

            // Tell the timeline and visualizer to cleanup
            foreach (WaveformTimeline wave in Timelines)
            {
                wave.Destroy();
            }
            Visualizer.Destroy();

            MainWindow.setManipulating(false);
            Processing.Audio.End(delegate
            {
                MainWindow.currentPage = MainWindow.homePage;
                MainWindow.loadingPage.NavigationService.Navigate(MainWindow.currentPage);
            });
        }
Exemplo n.º 2
0
 public void allFramesReady(object sender, AllFramesReadyEventArgs e)
 {
     if (!_isPaused)
     {
         if (_type == "Solo")
         {
             Skeleton skeleton = KinectGesturePlayer.getFristSkeleton(e);
             if (skeleton != null)
             {
                 freePlayer.skeletonReady(e, skeleton);
             }
         }
         else if (_type == "Buddy")
         {
             Skeleton[] skeletons = KinectGesturePlayer.getFirstTwoSkeletons(e);
             Skeleton   leftSkeleton;
             Skeleton   rightSkeleton;
             if (skeletons == null)
             {
                 return;
             }
             if (skeletons.Length == 0)
             {
                 return;
             }
             else if (skeletons.Length == 1)
             {
                 leftSkeleton = skeletons[0];
                 freePlayer.skeletonReady(e, leftSkeleton);
             }
             else
             {
                 leftSkeleton  = skeletons[0];
                 rightSkeleton = skeletons[1];
                 freePlayer.skeletonReady(e, leftSkeleton);
                 freePlayer2.skeletonReady(e, rightSkeleton);
             }
         }
         else if (_type == "Tutor")
         {
             Skeleton skeleton = KinectGesturePlayer.getFristSkeleton(e);
             if (skeleton != null)
             {
                 tutoree.skeletonReady(e, skeleton);
             }
         }
     }
 }
Exemplo n.º 3
0
        public void initSoloForm(ArrayList addrList, ArrayList nameList)
        {
            _type = "Solo";
            initCommon();
            int doneCount = 0;

            // Load and set the song titles
            for (int i = 0; i < addrList.Count; i++)
            {
                string address = addrList[i] as String;
                string name    = nameList[i] as String;
                _nameList.Add(name);
                SongTitles[i].Text = name;
                Processing.Audio.LoadFile(address);

                // Initlaize the wave form
                initWaveForm(waveFormContainers[i], address, delegate()
                {
                    doneCount++;
                    if (doneCount == _nameList.Count)
                    {
                        MainWindow.currentPage = MainWindow.freeFormPage;
                        MainWindow.loadingPage.NavigationService.Navigate(MainWindow.currentPage);

                        // Sets the current track & also plays it
                        currentTrackIndex = _nameList.Count > 1 ? 1 : 0;
                        Processing.Audio.Play(currentTrackIndex);
                    }
                });
            }

            // connected to gestures
            freePlayer = new KinectGesturePlayer();
            freePlayer.registerCallBack(freePlayer.kinectGuideListener, pauseTrackingHandler, pauseChangeHandler);
            freePlayer.registerCallBack(freePlayer.handsAboveHeadListener, pitchTrackingHandler, pitchChangeHandler);
            freePlayer.registerCallBack(freePlayer.leanListener, tempoTrackingHandler, tempoChangeHandler);
            freePlayer.registerCallBack(freePlayer.handsWidenListener, volumeTrackingHandler, volumeChangeHandler);
            freePlayer.registerCallBack(freePlayer.trackMoveListener, changeTrackTrackingHandler, null);

            IsTutorialMode = false;
        }
Exemplo n.º 4
0
        public void initBuddyForm(string address, string name)
        {
            _type = "Buddy";
            initCommon();

            // Load and set the song titles
            SongTitles[1].Text = name;
            Processing.Audio.LoadFile(address);

            // NavigationService.Navigate(MainWindow.freeFormPage);
            // Initlaize the wave form
            initWaveForm(waveFormContainers[1], address, delegate()
            {
                MainWindow.currentPage = MainWindow.freeFormPage;
                MainWindow.loadingPage.NavigationService.Navigate(MainWindow.currentPage);

                // Sets the current track & also plays it
                currentTrackIndex = 1;
                Processing.Audio.Play(0);
            });
            _nameList.Add(address);

            // connected to gestures
            freePlayer = new KinectGesturePlayer();
            freePlayer.registerCallBack(freePlayer.kinectGuideListener, pauseTrackingHandler, pauseChangeHandler);
            freePlayer.registerCallBack(freePlayer.handsAboveHeadListener, pitchTrackingHandler, pitchChangeHandler);
            freePlayer.registerCallBack(freePlayer.leanListener, tempoTrackingHandler, tempoChangeHandler);
            freePlayer.registerCallBack(freePlayer.handsWidenListener, volumeTrackingHandler, volumeChangeHandler);

            freePlayer2 = new KinectGesturePlayer();
            freePlayer2.registerCallBack(freePlayer2.kinectGuideListener, pauseTrackingHandler, pauseChangeHandler);
            freePlayer2.registerCallBack(freePlayer2.handsAboveHeadListener, pitchTrackingHandler2, pitchChangeHandler);
            freePlayer2.registerCallBack(freePlayer2.leanListener, tempoTrackingHandler2, tempoChangeHandler);
            freePlayer2.registerCallBack(freePlayer2.handsWidenListener, volumeTrackingHandler2, volumeChangeHandler);

            IsTutorialMode = false;
        }
Exemplo n.º 5
0
        public void tearDown()
        {
            freePlayer = null;
            freePlayer2 = null;
            tutoree = null;

            myMediaElement.Visibility = System.Windows.Visibility.Visible;
            // Instructions.Visibility = System.Windows.Visibility.Visible;
            // Facts.Visibility = System.Windows.Visibility.Visible;

            mainCanvas.Background = new SolidColorBrush(Colors.Black);
            PauseOverlay.Visibility = System.Windows.Visibility.Hidden;

            // Tell the timeline and visualizer to cleanup
            foreach (WaveformTimeline wave in Timelines)
            {
                wave.Destroy();
            }
            Visualizer.Destroy();

            MainWindow.setManipulating(false);
            Processing.Audio.End(delegate
            {
                MainWindow.currentPage = MainWindow.homePage;
                MainWindow.loadingPage.NavigationService.Navigate(MainWindow.currentPage);
            });
        }
Exemplo n.º 6
0
        public void initTutor(int index)
        {
            _type = "Tutor";
            initCommon();
            List<string> nameList = new List<string> { "Chasing Pavements", "Enough To Fly With You" };
            ArrayList addrList = new ArrayList { @"..\..\Resources\Music\Chasing Pavements.mp3", @"..\..\Resources\Music\Enough To Fly With You.mp3" };
            int doneCount = 0;

            myMediaElement.Visibility = System.Windows.Visibility.Visible;
            Instructions.Visibility = System.Windows.Visibility.Visible;
            Facts.Visibility = System.Windows.Visibility.Visible;

            Timer = new DispatcherTimer();
            Timer.Interval = TimeSpan.FromSeconds(2);
            /*
            Timer.Tick += (delegate(object s, EventArgs args)
            {
                //Checks if the user has finished the task, and queues up the next task
                if (Tutorial.checkTask())
                {
                    Tutorial next = Tutorial.nextTutorial();
                    if (next != null)
                    {
                        showTutorialChooser(next);
                    }
                    else
                    {
                        showTutorialsFinished();
                        Timer.Stop();
                    }
                }
            });
             * */

            // Load and set the song titles
            for (int i = 0; i < addrList.Count; i++)
            {
                string address = addrList[i] as String;
                string name = nameList[i] as String;
                _nameList.Add(name);
                SongTitles[i].Text = name;
                Processing.Audio.LoadFile(address);

                // Initlaize the wave form
                initWaveForm(waveFormContainers[i], address, delegate()
                {
                    doneCount++;
                    if (doneCount == _nameList.Count)
                    {
                        MainWindow.currentPage = MainWindow.freeFormPage;
                        MainWindow.loadingPage.NavigationService.Navigate(MainWindow.currentPage);

                        // Sets the current track & also plays it
                        currentTrackIndex = _nameList.Count > 1 ? 1 : 0;
                        Processing.Audio.Play(currentTrackIndex);
                        Timer.Start();

                        Tutorial.TutorialIndex = index;
                        playTutorial(Tutorial.getCurrentTutorial());
                    }
                });
            }

            tutoree = new KinectGesturePlayer();
            tutoree.registerCallBack(tutoree.kinectGuideListener, pauseTrackingHandler, pauseChangeHandler);
            tutoree.registerCallBack(tutoree.handsAboveHeadListener, pitchTrackingHandler, pitchChangeHandler);
            tutoree.registerCallBack(tutoree.handSwingListener, seekTrackingHandler, seekChangeHandler);
            tutoree.registerCallBack(tutoree.leanListener, tempoTrackingHandler, tempoChangeHandler);
            tutoree.registerCallBack(tutoree.handsWidenListener, volumeTrackingHandler, volumeChangeHandler);
            tutoree.registerCallBack(tutoree.trackMoveListener, changeTrackTrackingHandler, volumeChangeHandler);

            IsTutorialMode = true;
        }
Exemplo n.º 7
0
        public void initSoloForm(ArrayList addrList, ArrayList nameList)
        {
            _type = "Solo";
            initCommon();
            int doneCount = 0;
            // Load and set the song titles
            for( int i=0; i < addrList.Count; i++)
            {

                string address = addrList[i] as String;
                string name = nameList[i] as String;
                _nameList.Add(name);
                SongTitles[i].Text = name;
                Processing.Audio.LoadFile(address);

                // Initlaize the wave form
                initWaveForm(waveFormContainers[i], address, delegate()
                {
                    doneCount++;
                    if (doneCount == _nameList.Count)
                    {
                        MainWindow.currentPage = MainWindow.freeFormPage;
                        MainWindow.loadingPage.NavigationService.Navigate(MainWindow.currentPage);

                        // Sets the current track & also plays it
                        currentTrackIndex = _nameList.Count > 1 ? 1 : 0;
                        Processing.Audio.Play(currentTrackIndex);
                    }
                });
            }

            // connected to gestures
            freePlayer = new KinectGesturePlayer();
            freePlayer.registerCallBack(freePlayer.kinectGuideListener, pauseTrackingHandler, pauseChangeHandler);
            freePlayer.registerCallBack(freePlayer.handsAboveHeadListener, pitchTrackingHandler, pitchChangeHandler);
            freePlayer.registerCallBack(freePlayer.leanListener, tempoTrackingHandler, tempoChangeHandler);
            freePlayer.registerCallBack(freePlayer.handsWidenListener, volumeTrackingHandler, volumeChangeHandler);
            freePlayer.registerCallBack(freePlayer.trackMoveListener, changeTrackTrackingHandler, null);

            IsTutorialMode = false;
        }
Exemplo n.º 8
0
        public void initBuddyForm(string address, string name)
        {
            _type = "Buddy";
            initCommon();

            // Load and set the song titles
            SongTitles[1].Text = name;
            Processing.Audio.LoadFile(address);

            // NavigationService.Navigate(MainWindow.freeFormPage);
            // Initlaize the wave form
            initWaveForm(waveFormContainers[1], address, delegate()
            {
                MainWindow.currentPage = MainWindow.freeFormPage;
                MainWindow.loadingPage.NavigationService.Navigate(MainWindow.currentPage);

                // Sets the current track & also plays it
                currentTrackIndex = 1;
                Processing.Audio.Play(0);
            });
            _nameList.Add(address);

            // connected to gestures
            freePlayer = new KinectGesturePlayer();
            freePlayer.registerCallBack(freePlayer.kinectGuideListener, pauseTrackingHandler, pauseChangeHandler);
            freePlayer.registerCallBack(freePlayer.handsAboveHeadListener, pitchTrackingHandler, pitchChangeHandler);
            freePlayer.registerCallBack(freePlayer.leanListener, tempoTrackingHandler, tempoChangeHandler);
            freePlayer.registerCallBack(freePlayer.handsWidenListener, volumeTrackingHandler, volumeChangeHandler);

            freePlayer2 = new KinectGesturePlayer();
            freePlayer2.registerCallBack(freePlayer2.kinectGuideListener, pauseTrackingHandler, pauseChangeHandler);
            freePlayer2.registerCallBack(freePlayer2.handsAboveHeadListener, pitchTrackingHandler2, pitchChangeHandler);
            freePlayer2.registerCallBack(freePlayer2.leanListener, tempoTrackingHandler2, tempoChangeHandler);
            freePlayer2.registerCallBack(freePlayer2.handsWidenListener, volumeTrackingHandler2, volumeChangeHandler);

            IsTutorialMode = false;
        }
Exemplo n.º 9
0
        public void initTutor(int index)
        {
            _type = "Tutor";
            initCommon();
            List <string> nameList = new List <string> {
                "Chasing Pavements", "Enough To Fly With You"
            };
            ArrayList addrList = new ArrayList {
                @"..\..\Resources\Music\Chasing Pavements.mp3", @"..\..\Resources\Music\Enough To Fly With You.mp3"
            };
            int doneCount = 0;

            myMediaElement.Visibility = System.Windows.Visibility.Visible;
            Instructions.Visibility   = System.Windows.Visibility.Visible;
            Facts.Visibility          = System.Windows.Visibility.Visible;

            Timer          = new DispatcherTimer();
            Timer.Interval = TimeSpan.FromSeconds(2);

            /*
             * Timer.Tick += (delegate(object s, EventArgs args)
             * {
             *  //Checks if the user has finished the task, and queues up the next task
             *  if (Tutorial.checkTask())
             *  {
             *      Tutorial next = Tutorial.nextTutorial();
             *      if (next != null)
             *      {
             *          showTutorialChooser(next);
             *      }
             *      else
             *      {
             *          showTutorialsFinished();
             *          Timer.Stop();
             *      }
             *  }
             * });
             * */

            // Load and set the song titles
            for (int i = 0; i < addrList.Count; i++)
            {
                string address = addrList[i] as String;
                string name    = nameList[i] as String;
                _nameList.Add(name);
                SongTitles[i].Text = name;
                Processing.Audio.LoadFile(address);

                // Initlaize the wave form
                initWaveForm(waveFormContainers[i], address, delegate()
                {
                    doneCount++;
                    if (doneCount == _nameList.Count)
                    {
                        MainWindow.currentPage = MainWindow.freeFormPage;
                        MainWindow.loadingPage.NavigationService.Navigate(MainWindow.currentPage);

                        // Sets the current track & also plays it
                        currentTrackIndex = _nameList.Count > 1 ? 1 : 0;
                        Processing.Audio.Play(currentTrackIndex);
                        Timer.Start();

                        Tutorial.TutorialIndex = index;
                        playTutorial(Tutorial.getCurrentTutorial());
                    }
                });
            }


            tutoree = new KinectGesturePlayer();
            tutoree.registerCallBack(tutoree.kinectGuideListener, pauseTrackingHandler, pauseChangeHandler);
            tutoree.registerCallBack(tutoree.handsAboveHeadListener, pitchTrackingHandler, pitchChangeHandler);
            tutoree.registerCallBack(tutoree.handSwingListener, seekTrackingHandler, seekChangeHandler);
            tutoree.registerCallBack(tutoree.leanListener, tempoTrackingHandler, tempoChangeHandler);
            tutoree.registerCallBack(tutoree.handsWidenListener, volumeTrackingHandler, volumeChangeHandler);
            tutoree.registerCallBack(tutoree.trackMoveListener, changeTrackTrackingHandler, volumeChangeHandler);

            IsTutorialMode = true;
        }
 /// <summary>
 /// Register gesture joint to specified point tracker. Needs to be used after load or initialize.
 /// </summary>
 /// <param name="player">Point tracked that supplies related data for this gesture.</param>
 public void RegisterJointListeners(KinectGesturePlayer player)
 {
     player.RegisterJoint(trackedJoint, this);
     registered = true;
 }