// ----------------------------------------------------------------------- // // Copyright (c) Microsoft Corporation. All rights reserved. // // ----------------------------------------------------------------------- namespace Microsoft.Samples.Kinect.Webserver.Sensor { using System; using System.Collections.Generic; using Microsoft.Kinect; using Microsoft.Kinect.Toolkit.Interaction; /// /// Interface for objects that keep track of state of users associated with a specific /// Kinect sensor. /// public interface IUserStateManager { /// /// Event triggered whenever user state changes. /// event EventHandler UserStateChanged; /// /// Dictionary mapping user tracking Ids to names used for states corresponding to /// those users. /// IDictionary UserStates { get; } /// /// Tracking id of primary user associated with UI interactions. /// int PrimaryUserTrackingId { get; } /// /// Determines which users should be tracked in the future, based on selection /// metrics and engagement state. /// /// /// Array of skeletons from which the appropriate user tracking Ids will be selected. /// /// /// Timestamp from skeleton frame. /// /// /// Array that will contain the tracking Ids of users to track, sorted from most /// important to least important user to track. /// void ChooseTrackedUsers(Skeleton[] frameSkeletons, long timestamp, int[] chosenTrackingIds); /// /// Called whenever the set of tracked users has changed. /// /// /// User information from which we'll update the set of tracked users and the primary user. /// /// /// Interaction frame timestamp corresponding to given user information. /// void UpdateUserInformation(IEnumerable trackedUserInfo, long timestamp); /// /// Clear out all user state and start from scratch. /// void Reset(); } }