using System; using ANX.Framework.NonXNA; // This file is part of the ANX.Framework created by the // "ANX.Framework developer group" and released under the Ms-PL license. // For details see: http://anxframework.codeplex.com/license namespace ANX.InputSystem.Recording { public class Creator : IInputSystemCreator { //It not a good idea to have more than one RecordingDevice per Input Device, so we cache the request. RecordingMouse mouse; RecordingKeyboard keyboard; RecordingGamePad gamePad; #if XNAEXT RecordingMotionSensingDevice msd; #endif public ITouchPanel TouchPanel { get { AddInSystemFactory.Instance.PreventSystemChange(AddInType.InputSystem); throw new NotImplementedException(); } } public IGamePad GamePad { get { AddInSystemFactory.Instance.PreventSystemChange(AddInType.InputSystem); if (gamePad == null) gamePad = new RecordingGamePad(); return gamePad; } } public IMouse Mouse { get { AddInSystemFactory.Instance.PreventSystemChange(AddInType.InputSystem); if (mouse == null) mouse = new RecordingMouse(); return mouse; } } public IKeyboard Keyboard { get { AddInSystemFactory.Instance.PreventSystemChange(AddInType.InputSystem); if (keyboard == null) keyboard = new RecordingKeyboard(); return keyboard; } } #if XNAEXT public IMotionSensingDevice MotionSensingDevice { get { AddInSystemFactory.Instance.PreventSystemChange(AddInType.InputSystem); if (msd == null) msd = new RecordingMotionSensingDevice(); return msd; } } #endif public string Name { get { return "Recording"; } } public int Priority { get { return int.MaxValue; } } public bool IsSupported { get { // This is just a proxy, so it runs on all plattforms return true; } } } }