Exemplo n.º 1
0
        /// <summary>
        /// Called when page is loaded
        /// Initialize app assets such as skills
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void Page_Loaded(object sender, RoutedEventArgs e)
        {
            // Disable buttons while we initialize
            await UpdateMediaSourceButtonsAsync(false);

            // Initialize helper class used to render the skill results on screen
            m_renderer = new ObjectTrackRenderer(UIOverlayCanvas);

            m_lock.Wait();
            {
                NotifyUser("Initializing skills...");
                m_detectorDescriptor       = new ObjectDetectorDescriptor();
                m_detectorExecutionDevices = await m_detectorDescriptor.GetSupportedExecutionDevicesAsync();
                await InitializeObjectDetectorAsync();

                m_trackerDescriptor       = new ObjectTrackerDescriptor();
                m_trackerExecutionDevices = await m_trackerDescriptor.GetSupportedExecutionDevicesAsync();
                await InitializeObjectTrackerAsync();

                await UpdateSkillUIAsync();
            }
            m_lock.Release();

            // Ready to begin, enable buttons
            NotifyUser("Skill initialized. Select a media source from the top to begin.");
            await UpdateMediaSourceButtonsAsync(true);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Initialize the skill related members
        /// </summary>
        /// <param name="executionDevice"></param>
        /// <returns></returns>
        private async Task InitializeSkillAsync(ISkillExecutionDevice executionDevice = null)
        {
            m_descriptor = new ObjectTrackerDescriptor();
            m_availableExecutionDevices = await m_descriptor.GetSupportedExecutionDevicesAsync();

            if (m_availableExecutionDevices.Count == 0)
            {
                NotifyUser("No execution devices available, this skill cannot run on this device", NotifyType.ErrorMessage);
                return; // Abort
            }

            // Either create skill using provided execution device or let skill create with default device if none provided
            if (executionDevice != null)
            {
                m_skill = await m_descriptor.CreateSkillAsync(executionDevice) as ObjectTrackerSkill;
            }
            else
            {
                m_skill = await m_descriptor.CreateSkillAsync() as ObjectTrackerSkill;
            }

            m_bindings       = new List <ObjectTrackerBinding>();
            m_trackerHistory = new List <Queue <TrackerResult> >();
        }