diff --git a/idl/Windows.Xbox.Input.idl b/idl/Windows.Xbox.Input.idl index c057e71..ff52e35 100644 --- a/idl/Windows.Xbox.Input.idl +++ b/idl/Windows.Xbox.Input.idl @@ -148,14 +148,19 @@ namespace Windows.Xbox.Input NavigationButtons Buttons; }; - [interface_name("IBodyController", ABCAAAAB-AAAA-AABA-AAAA-AACCFFDAAAAF)] - runtimeclass BodyController + [uuid(ABCAAAAB-AAAA-AABA-AAAA-AACCFFDAAAAF)] + interface IBodyController requires IController { UInt32 BiometricUserId { get; }; event Windows.Foundation.TypedEventHandler BiometricUserChanged; BodyControllerReading GetCurrentReading; event Windows.Foundation.TypedEventHandler ReadingChanged; } + + runtimeclass BodyController : [default] IBodyController + { + BodyController(); + } [interface_name("IBodyControllerReading", ABCAAAAB-AAAA-AABA-AAAA-AACC88DAAAAF)] runtimeclass BodyControllerReading @@ -169,6 +174,7 @@ namespace Windows.Xbox.Input [interface_name("IBodyHandPair", AB88AA8B-AAAA-AABA-AAAA-AACC88DAAAAF)] runtimeclass BodyHandPair { + BodyHandPair(); UInt64 BodyTrackingId { get; set; }; HandType HandType { get; set; }; } @@ -247,6 +253,11 @@ namespace Windows.Xbox.Input RawNavigationReading GetRawNavigationReading(); } + runtimeclass NavigationController : [default] INavigationController + { + NavigationController(); + } + [uuid(AACAAAAB-AADC-AAAA-AAAA-AFAAAAAAAAAA)] interface IGamepad requires INavigationController { diff --git a/idl/Windows.Xbox.System.idl b/idl/Windows.Xbox.System.idl index dacc829..3a33574 100644 --- a/idl/Windows.Xbox.System.idl +++ b/idl/Windows.Xbox.System.idl @@ -83,7 +83,7 @@ namespace Windows.Xbox.System static Guid GetNetworkCacheIdForUsers(Windows.Foundation.Collections.IVectorView unk); UInt32 Id { get; }; Windows.Foundation.Collections.IVectorView AudioDevices { get; }; - Windows.Foundation.Collections.IVectorView Controllers { get; }; + Windows.Foundation.Collections.IVectorView Controllers { get; }; UserDisplayInfo DisplayInfo { get; }; Boolean IsGuest { get; }; Boolean IsSignedIn { get; }; @@ -166,9 +166,15 @@ namespace Windows.Xbox.System User User { get; }; } - // Placeholder GUID TODO - [interface_name("ISignOutDeferral", AAAFFDDA-AFAA-AAAA-AAAA-AAAAAAAAAAAA)] - runtimeclass SignOutDeferral + // Placeholder GUID + [uuid(AAAFFDDA-AFAA-AAAA-AAAA-AAAAAAAA22AA)] + [version(1.0)] + interface ISignOutDeferral + { + HRESULT Complete(); + } + + runtimeclass SignOutDeferral : [default] ISignOutDeferral { } diff --git a/projects/WinDurango.KernelX/src/CurrentApp.cpp b/projects/WinDurango.KernelX/src/CurrentApp.cpp index 193069d..e7d51ec 100644 --- a/projects/WinDurango.KernelX/src/CurrentApp.cpp +++ b/projects/WinDurango.KernelX/src/CurrentApp.cpp @@ -10,7 +10,10 @@ HRESULT EraXboxUserLicenseInformationWrapper::QueryInterface(const IID &riid, vo } *ppvObject = nullptr; - winDurango->log.Warn("WinDurango::KernelX::CurrentApp", "No Interface Found: EraXboxUserLicenseInformationWrapper - {}-{}-{}-{}", riid.Data1, riid.Data2, riid.Data3, riid.Data4); + winDurango->log.Warn("WinDurango::KernelX::CurrentApp", "No Interface Found: EraXboxUserLicenseInformationWrapper - {:08x}-{:04x}-{:04x}-{:02x}{:02x}-{:02x}{:02x}{:02x}{:02x}{:02x}{:02x}", + riid.Data1, riid.Data2, riid.Data3, riid.Data4[0], + riid.Data4[1], riid.Data4[2], riid.Data4[3], riid.Data4[4], + riid.Data4[5], riid.Data4[6], riid.Data4[7]); return E_NOINTERFACE; } @@ -73,11 +76,10 @@ HRESULT EraLicenseInformationWrapper::QueryInterface(const IID &riid, void **ppv OLECHAR iidwstr[sizeof(iidstr)]; StringFromGUID2(riid, iidwstr, ARRAYSIZE(iidwstr)); WideCharToMultiByte(CP_UTF8, 0, iidwstr, -1, iidstr, sizeof(iidstr), nullptr, nullptr); - printf("[LicenseInformationWrapperX] Interface Not Implemented: %s\n", iidstr); + winDurango->log.Warn("WinDurango::KernelX::CurrentApp", "No Interface Found: EraLicenseInformationWrapper - {}", iidstr); } *ppvObject = nullptr; - winDurango->log.Warn("WinDurango::KernelX::CurrentApp", "No Interface Found: EraLicenseInformationWrapper - {}-{}-{}-{}", riid.Data1, riid.Data2, riid.Data3, riid.Data4); return E_NOINTERFACE; } @@ -161,11 +163,10 @@ HRESULT __stdcall EraCurrentAppWrapper::QueryInterface(REFIID riid, void **ppvOb OLECHAR iidwstr[sizeof(iidstr)]; StringFromGUID2(riid, iidwstr, ARRAYSIZE(iidwstr)); WideCharToMultiByte(CP_UTF8, 0, iidwstr, -1, iidstr, sizeof(iidstr), nullptr, nullptr); - printf("[EraCurrentAppWrapper] Interface Not Implemented: %s\n", iidstr); + winDurango->log.Warn("WinDurango::KernelX::CurrentApp", "No Interface Found: EraCurrentAppWrapper - {}", iidstr); } *ppvObject = nullptr; - winDurango->log.Warn("WinDurango::KernelX::CurrentApp", "No Interface Found: EraCurrentAppWrapper - {}-{}-{}-{}", riid.Data1, riid.Data2, riid.Data3, riid.Data4); return E_NOINTERFACE; } diff --git a/projects/WinDurango.WinRT/CMakeLists.txt b/projects/WinDurango.WinRT/CMakeLists.txt index ab9e895..c041bce 100644 --- a/projects/WinDurango.WinRT/CMakeLists.txt +++ b/projects/WinDurango.WinRT/CMakeLists.txt @@ -41,6 +41,16 @@ set(FILES "src/Windows/Xbox/Media/Windows.Xbox.Media.GameTransportControls.cpp" "src/Windows/Xbox/Media/Windows.Xbox.Media.GameTransportControlsButtonPressedEventArgs.cpp" "src/Windows/Xbox/Media/Windows.Xbox.Media.GameTransportControlsPropertyChangedEventArgs.cpp" + "src/Windows/Xbox/Input/Windows.Xbox.Input.BiometricUser.cpp" + "src/Windows/Xbox/Input/Windows.Xbox.Input.BodyController.cpp" + "src/Windows/Xbox/Input/Windows.Xbox.Input.BodyHandPair.cpp" + "src/Windows/Xbox/Input/Windows.Xbox.Input.Controller.cpp" + "src/Windows/Xbox/Input/Windows.Xbox.Input.Gamepad.cpp" + "src/Windows/Xbox/Input/Windows.Xbox.Input.NavigationController.cpp" + "src/Windows/Xbox/System/Windows.Xbox.System.AudioDeviceInfo.cpp" + "src/Windows/Xbox/System/Windows.Xbox.System.cpp" + "src/Windows/Xbox/System/Windows.Xbox.System.User.cpp" + "src/Windows/Xbox/System/Windows.Xbox.System.UserDisplayInfo.cpp" "src/WinDurangoWinRT.cpp" ) @@ -55,6 +65,8 @@ target_include_directories(WinDurango.WinRT PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include" "${CMAKE_CURRENT_SOURCE_DIR}/include/WinDurango.WinRT" "${CMAKE_CURRENT_SOURCE_DIR}/include/WinDurango.WinRT/Windows/Xbox/Media" + "${CMAKE_CURRENT_SOURCE_DIR}/include/WinDurango.WinRT/Windows/Xbox/System" + "${CMAKE_CURRENT_SOURCE_DIR}/include/WinDurango.WinRT/Windows/Xbox/Input" "${CMAKE_CURRENT_SOURCE_DIR}/Generated Files" "${CMAKE_SOURCE_DIR}/projects/WinDurango.Common/include" ) diff --git a/projects/WinDurango.WinRT/include/WinDurango.WinRT/Windows/Xbox/Input/Windows.Xbox.Input.BiometricUser.h b/projects/WinDurango.WinRT/include/WinDurango.WinRT/Windows/Xbox/Input/Windows.Xbox.Input.BiometricUser.h new file mode 100644 index 0000000..9bc4577 --- /dev/null +++ b/projects/WinDurango.WinRT/include/WinDurango.WinRT/Windows/Xbox/Input/Windows.Xbox.Input.BiometricUser.h @@ -0,0 +1,15 @@ +#pragma once +#include "Windows.Xbox.Input.BiometricUserChangedEventArgs.g.h" + +namespace winrt::Windows::Xbox::Input::implementation +{ + struct BiometricUserChangedEventArgs : BiometricUserChangedEventArgsT + { + BiometricUserChangedEventArgs() = default; + BiometricUserChangedEventArgs(uint32_t id) : id(id) {} + + uint32_t BiometricUserId(); + private: + uint32_t id = 0; + }; +} diff --git a/projects/WinDurango.WinRT/include/WinDurango.WinRT/Windows/Xbox/Input/Windows.Xbox.Input.BodyController.h b/projects/WinDurango.WinRT/include/WinDurango.WinRT/Windows/Xbox/Input/Windows.Xbox.Input.BodyController.h new file mode 100644 index 0000000..735c825 --- /dev/null +++ b/projects/WinDurango.WinRT/include/WinDurango.WinRT/Windows/Xbox/Input/Windows.Xbox.Input.BodyController.h @@ -0,0 +1,81 @@ +#pragma once +#include "Windows.Xbox.Input.BodyController.g.h" +#include "Windows.Xbox.Input.BodyControllerAddedEventArgs.g.h" +#include "Windows.Xbox.Input.BodyControllerRemovedEventArgs.g.h" +#include "Windows.Xbox.Input.BodyControllerReading.g.h" +#include "Windows.Xbox.Input.BodyControllerReadingChangedEventArgs.g.h" + +namespace winrt::Windows::Xbox::Input::implementation +{ + struct BodyControllerAddedEventArgs : BodyControllerAddedEventArgsT + { + BodyControllerAddedEventArgs() = default; + BodyControllerAddedEventArgs(winrt::Windows::Xbox::Input::BodyController controller) : controller(controller) {} + + winrt::Windows::Xbox::Input::BodyController BodyController(); + private: + winrt::Windows::Xbox::Input::BodyController controller; + }; + + struct BodyControllerRemovedEventArgs : BodyControllerRemovedEventArgsT + { + BodyControllerRemovedEventArgs() = default; + BodyControllerRemovedEventArgs(winrt::Windows::Xbox::Input::BodyController controller) : controller(controller) {} + + winrt::Windows::Xbox::Input::BodyController BodyController(); + private: + winrt::Windows::Xbox::Input::BodyController controller; + }; + + struct BodyControllerReading : BodyControllerReadingT + { + BodyControllerReading() = default; + BodyControllerReading(winrt::Windows::Foundation::DateTime time, bool isLeanTracked, float leanX, float leanY) + : time(time), isLeanTracked(isLeanTracked), leanX(leanX), leanY(leanY) {} + + winrt::Windows::Foundation::DateTime Timestamp(); + bool IsLeanTracked(); + float LeanX(); + float LeanY(); + private: + winrt::Windows::Foundation::DateTime time; + bool isLeanTracked = false; + float leanX = 0.0f; + float leanY = 1.0f; + }; + + struct BodyControllerReadingChangedEventArgs : BodyControllerReadingChangedEventArgsT + { + BodyControllerReadingChangedEventArgs() = default; + BodyControllerReadingChangedEventArgs(winrt::Windows::Xbox::Input::BodyControllerReading reading) : reading(reading) {} + + winrt::Windows::Xbox::Input::BodyControllerReading Reading(); + private: + winrt::Windows::Xbox::Input::BodyControllerReading reading; + }; + + struct BodyController : BodyControllerT + { + BodyController() = default; + BodyController(uint64_t id) : id(id) {} + + uint64_t Id(); + hstring Type(); + winrt::Windows::Xbox::System::User User(); + uint32_t BiometricUserId(); + winrt::event_token BiometricUserChanged(winrt::Windows::Foundation::TypedEventHandler const& handler); + void BiometricUserChanged(winrt::event_token const& token) noexcept; + winrt::Windows::Xbox::Input::BodyControllerReading GetCurrentReading(); + void GetCurrentReading(winrt::Windows::Xbox::Input::BodyControllerReading const& value); + winrt::event_token ReadingChanged(winrt::Windows::Foundation::TypedEventHandler const& handler); + void ReadingChanged(winrt::event_token const& token) noexcept; + private: + uint64_t id = 0; + }; +} +namespace winrt::Windows::Xbox::Input::factory_implementation +{ + struct BodyController : BodyControllerT + { + }; +} diff --git a/projects/WinDurango.WinRT/include/WinDurango.WinRT/Windows/Xbox/Input/Windows.Xbox.Input.BodyHandPair.h b/projects/WinDurango.WinRT/include/WinDurango.WinRT/Windows/Xbox/Input/Windows.Xbox.Input.BodyHandPair.h new file mode 100644 index 0000000..33f8867 --- /dev/null +++ b/projects/WinDurango.WinRT/include/WinDurango.WinRT/Windows/Xbox/Input/Windows.Xbox.Input.BodyHandPair.h @@ -0,0 +1,24 @@ +#pragma once +#include "Windows.Xbox.Input.BodyHandPair.g.h" + +namespace winrt::Windows::Xbox::Input::implementation +{ + struct BodyHandPair : BodyHandPairT + { + BodyHandPair() = default; + + uint64_t BodyTrackingId(); + void BodyTrackingId(uint64_t value); + winrt::Windows::Xbox::Input::HandType HandType(); + void HandType(winrt::Windows::Xbox::Input::HandType const& value); + private: + winrt::Windows::Xbox::Input::HandType handType = winrt::Windows::Xbox::Input::HandType::LEFT; + uint64_t trackingID = 0; + }; +} +namespace winrt::Windows::Xbox::Input::factory_implementation +{ + struct BodyHandPair : BodyHandPairT + { + }; +} diff --git a/projects/WinDurango.WinRT/include/WinDurango.WinRT/Windows/Xbox/Input/Windows.Xbox.Input.Controller.h b/projects/WinDurango.WinRT/include/WinDurango.WinRT/Windows/Xbox/Input/Windows.Xbox.Input.Controller.h new file mode 100644 index 0000000..efe6ee6 --- /dev/null +++ b/projects/WinDurango.WinRT/include/WinDurango.WinRT/Windows/Xbox/Input/Windows.Xbox.Input.Controller.h @@ -0,0 +1,83 @@ +#pragma once +#include "Windows.Xbox.Input.Controller.g.h" +#include "Windows.Xbox.Input.ControllerAddedEventArgs.g.h" +#include "Windows.Xbox.Input.ControllerOrderChangedEventArgs.g.h" +#include "Windows.Xbox.Input.ControllerPairingChangedEventArgs.g.h" +#include "Windows.Xbox.Input.ControllerRemovedEventArgs.g.h" + +namespace winrt::Windows::Xbox::Input::implementation +{ + struct ControllerAddedEventArgs : ControllerAddedEventArgsT + { + ControllerAddedEventArgs() = default; + ControllerAddedEventArgs(winrt::Windows::Xbox::Input::Controller controller) : controller(controller) {} + + winrt::Windows::Xbox::Input::Controller Controller(); + private: + winrt::Windows::Xbox::Input::Controller controller; + }; + + struct ControllerOrderChangedEventArgs : ControllerOrderChangedEventArgsT + { + ControllerOrderChangedEventArgs() = default; + }; + + struct ControllerPairingChangedEventArgs : ControllerPairingChangedEventArgsT + { + ControllerPairingChangedEventArgs() = default; + ControllerPairingChangedEventArgs(winrt::Windows::Xbox::Input::Controller controller, winrt::Windows::Xbox::System::User user, + winrt::Windows::Xbox::System::User previousUser) : controller(controller), user(user), previousUser(previousUser) {} + + winrt::Windows::Xbox::Input::Controller Controller(); + winrt::Windows::Xbox::System::User User(); + winrt::Windows::Xbox::System::User PreviousUser(); + private: + winrt::Windows::Xbox::Input::Controller controller; + winrt::Windows::Xbox::System::User user; + winrt::Windows::Xbox::System::User previousUser; + }; + + struct ControllerRemovedEventArgs : ControllerRemovedEventArgsT + { + ControllerRemovedEventArgs() = default; + ControllerRemovedEventArgs(winrt::Windows::Xbox::Input::Controller controller) : controller(controller) {} + + winrt::Windows::Xbox::Input::Controller Controller(); + private: + winrt::Windows::Xbox::Input::Controller controller; + }; + + struct Controller : ControllerT + { + Controller() = default; + Controller(uint64_t id) : id(id) {} + + static winrt::Windows::Foundation::Collections::IVectorView Controllers(); + static winrt::event_token ControllerAdded(winrt::Windows::Foundation::EventHandler const& handler); + static void ControllerAdded(winrt::event_token const& token) noexcept; + static winrt::event_token ControllerRemoved(winrt::Windows::Foundation::EventHandler const& handler); + static void ControllerRemoved(winrt::event_token const& token) noexcept; + static winrt::event_token ControllerPairingChanged(winrt::Windows::Foundation::EventHandler const& handler); + static void ControllerPairingChanged(winrt::event_token const& token) noexcept; + static winrt::event_token ControllerOrderChanged(winrt::Windows::Foundation::EventHandler const& handler); + static void ControllerOrderChanged(winrt::event_token const& token) noexcept; + static winrt::Windows::Xbox::Input::Controller GetControllerById(uint64_t unk); + static void GetControllerMetadata(uint64_t unk, winrt::Windows::Xbox::Input::MetadataVersion const& version, winrt::Windows::Foundation::Collections::IVector const& unka); + static winrt::Windows::Foundation::Collections::IVectorView GetControllersOrderedLeftToRight(winrt::Windows::Xbox::Input::ControllerOrderFilter const& filter); + uint64_t Id(); + hstring Type(); + winrt::Windows::Xbox::System::User User(); + private: + uint64_t id = 0; + static winrt::event> e_ControllerAdded; + static winrt::event> e_ControllerRemoved; + static winrt::event> e_ControllerPairingChanged; + static winrt::event> e_ControllerOrderChanged; + }; +} +namespace winrt::Windows::Xbox::Input::factory_implementation +{ + struct Controller : ControllerT + { + }; +} diff --git a/projects/WinDurango.WinRT/include/WinDurango.WinRT/Windows/Xbox/Input/Windows.Xbox.Input.Gamepad.h b/projects/WinDurango.WinRT/include/WinDurango.WinRT/Windows/Xbox/Input/Windows.Xbox.Input.Gamepad.h new file mode 100644 index 0000000..287e77f --- /dev/null +++ b/projects/WinDurango.WinRT/include/WinDurango.WinRT/Windows/Xbox/Input/Windows.Xbox.Input.Gamepad.h @@ -0,0 +1,91 @@ +#pragma once +#include "Windows.Xbox.Input.Gamepad.g.h" +#include "Windows.Xbox.Input.GamepadAddedEventArgs.g.h" +#include "Windows.Xbox.Input.GamepadRemovedEventArgs.g.h" +#include "Windows.Xbox.Input.GamepadReading.g.h" + +namespace winrt::Windows::Xbox::Input::implementation +{ + struct GamepadAddedEventArgs : GamepadAddedEventArgsT + { + GamepadAddedEventArgs() = default; + GamepadAddedEventArgs(winrt::Windows::Xbox::Input::Gamepad gamepad) : gamepad(gamepad) {} + + winrt::Windows::Xbox::Input::Gamepad Gamepad(); + private: + winrt::Windows::Xbox::Input::Gamepad gamepad; + }; + + struct GamepadRemovedEventArgs : GamepadRemovedEventArgsT + { + GamepadRemovedEventArgs() = default; + GamepadRemovedEventArgs(winrt::Windows::Xbox::Input::Gamepad gamepad) : gamepad(gamepad) {} + + winrt::Windows::Xbox::Input::Gamepad Gamepad(); + private: + winrt::Windows::Xbox::Input::Gamepad gamepad; + }; + + struct GamepadReading : GamepadReadingT + { + GamepadReading() = default; + GamepadReading(winrt::Windows::Foundation::DateTime time, winrt::Windows::Xbox::Input::GamepadButtons buttons) + : time(time), buttons(buttons) {} + + winrt::Windows::Foundation::DateTime Timestamp(); + winrt::Windows::Xbox::Input::GamepadButtons Buttons(); + bool IsDPadUpPressed(); + bool IsDPadDownPressed(); + bool IsDPadLeftPressed(); + bool IsDPadRightPressed(); + bool IsMenuPressed(); + bool IsViewPressed(); + bool IsLeftThumbstickPressed(); + bool IsRightThumbstickPressed(); + bool IsLeftShoulderPressed(); + bool IsRightShoulderPressed(); + bool IsAPressed(); + bool IsBPressed(); + bool IsXPressed(); + bool IsYPressed(); + float LeftTrigger(); + float RightTrigger(); + float LeftThumbstickX(); + float LeftThumbstickY(); + float RightThumbstickX(); + float RightThumbstickY(); + private: + winrt::Windows::Foundation::DateTime time; + winrt::Windows::Xbox::Input::GamepadButtons buttons = winrt::Windows::Xbox::Input::GamepadButtons::None; + }; + + struct Gamepad : GamepadT + { + Gamepad() = default; + Gamepad(uint64_t id) : id(id) {} + + static winrt::Windows::Foundation::Collections::IVectorView Gamepads(); + static winrt::event_token GamepadAdded(winrt::Windows::Foundation::EventHandler const& handler); + static void GamepadAdded(winrt::event_token const& token) noexcept; + static winrt::event_token GamepadRemoved(winrt::Windows::Foundation::EventHandler const& handler); + static void GamepadRemoved(winrt::event_token const& token) noexcept; + uint64_t Id(); + hstring Type(); + winrt::Windows::Xbox::System::User User(); + winrt::Windows::Xbox::Input::INavigationReading GetNavigationReading(); + winrt::Windows::Xbox::Input::RawNavigationReading GetRawNavigationReading(); + winrt::Windows::Xbox::Input::GamepadVibration SetVibration(); + winrt::Windows::Xbox::Input::GamepadReading GetCurrentReading(); + winrt::Windows::Xbox::Input::RawGamepadReading GetRawCurrentReading(); + private: + uint64_t id = 0; + static winrt::event> e_GamepadAdded; + static winrt::event> e_GamepadRemoved; + }; +} +namespace winrt::Windows::Xbox::Input::factory_implementation +{ + struct Gamepad : GamepadT + { + }; +} diff --git a/projects/WinDurango.WinRT/include/WinDurango.WinRT/Windows/Xbox/Input/Windows.Xbox.Input.NavigationController.h b/projects/WinDurango.WinRT/include/WinDurango.WinRT/Windows/Xbox/Input/Windows.Xbox.Input.NavigationController.h new file mode 100644 index 0000000..9d39f3c --- /dev/null +++ b/projects/WinDurango.WinRT/include/WinDurango.WinRT/Windows/Xbox/Input/Windows.Xbox.Input.NavigationController.h @@ -0,0 +1,25 @@ +#pragma once +#include "Windows.Xbox.Input.NavigationController.g.h" + +namespace winrt::Windows::Xbox::Input::implementation +{ + struct NavigationController : NavigationControllerT + { + NavigationController() = default; + NavigationController(uint64_t id) : id(id) {} + + uint64_t Id(); + hstring Type(); + winrt::Windows::Xbox::System::User User(); + winrt::Windows::Xbox::Input::INavigationReading GetNavigationReading(); + winrt::Windows::Xbox::Input::RawNavigationReading GetRawNavigationReading(); + private: + uint64_t id = 0; + }; +} +namespace winrt::Windows::Xbox::Input::factory_implementation +{ + struct NavigationController : NavigationControllerT + { + }; +} diff --git a/projects/WinDurango.WinRT/include/WinDurango.WinRT/Windows/Xbox/System/Windows.Xbox.System.AudioDeviceInfo.h b/projects/WinDurango.WinRT/include/WinDurango.WinRT/Windows/Xbox/System/Windows.Xbox.System.AudioDeviceInfo.h new file mode 100644 index 0000000..5271a9d --- /dev/null +++ b/projects/WinDurango.WinRT/include/WinDurango.WinRT/Windows/Xbox/System/Windows.Xbox.System.AudioDeviceInfo.h @@ -0,0 +1,68 @@ +#pragma once +#include "Windows.Xbox.System.AudioDeviceInfo.g.h" +#include "Windows.Xbox.System.AudioDeviceAddedEventArgs.g.h" +#include "Windows.Xbox.System.AudioDeviceChangedEventArgs.g.h" +#include "Windows.Xbox.System.AudioDeviceRemovedEventArgs.g.h" + +namespace winrt::Windows::Xbox::System::implementation +{ + struct AudioDeviceAddedEventArgs : AudioDeviceAddedEventArgsT + { + AudioDeviceAddedEventArgs() = default; + AudioDeviceAddedEventArgs(winrt::Windows::Xbox::System::User aUser, + winrt::Windows::Xbox::System::AudioDeviceInfo aAudioDevice) : user(aUser), audioDevice(aAudioDevice) {}; + + winrt::Windows::Xbox::System::User User(); + winrt::Windows::Xbox::System::AudioDeviceInfo AudioDevice(); + private: + winrt::Windows::Xbox::System::User user; + winrt::Windows::Xbox::System::AudioDeviceInfo audioDevice; + }; + + struct AudioDeviceChangedEventArgs : AudioDeviceChangedEventArgsT + { + AudioDeviceChangedEventArgs() = default; + AudioDeviceChangedEventArgs(winrt::Windows::Xbox::System::User aUser, + winrt::Windows::Xbox::System::AudioDeviceInfo aAudioDevice) : user(aUser), audioDevice(aAudioDevice) {}; + + winrt::Windows::Xbox::System::User User(); + winrt::Windows::Xbox::System::AudioDeviceInfo AudioDevice(); + private: + winrt::Windows::Xbox::System::User user; + winrt::Windows::Xbox::System::AudioDeviceInfo audioDevice; + }; + + struct AudioDeviceRemovedEventArgs : AudioDeviceRemovedEventArgsT + { + AudioDeviceRemovedEventArgs() = default; + AudioDeviceRemovedEventArgs(winrt::Windows::Xbox::System::User aUser, + winrt::Windows::Xbox::System::AudioDeviceInfo aAudioDevice) : user(aUser), audioDevice(aAudioDevice) {}; + + winrt::Windows::Xbox::System::User User(); + winrt::Windows::Xbox::System::AudioDeviceInfo AudioDevice(); + private: + winrt::Windows::Xbox::System::User user; + winrt::Windows::Xbox::System::AudioDeviceInfo audioDevice; + }; + + struct AudioDeviceInfo : AudioDeviceInfoT + { + AudioDeviceInfo() = default; + AudioDeviceInfo(hstring Id, winrt::Windows::Xbox::System::AudioDeviceType audioDeviceType, + winrt::Windows::Xbox::System::AudioDeviceSharing audioDeviceSharing, + winrt::Windows::Xbox::System::AudioDeviceCategory audioDeviceCategory, bool muted) + : id(Id), deviceType(audioDeviceType), sharing(audioDeviceSharing), deviceCategory(audioDeviceCategory), isMuted(muted) {}; + + hstring Id(); + winrt::Windows::Xbox::System::AudioDeviceType DeviceType(); + winrt::Windows::Xbox::System::AudioDeviceSharing Sharing(); + winrt::Windows::Xbox::System::AudioDeviceCategory DeviceCategory(); + bool IsMicrophoneMuted(); + private: + hstring id = L""; + winrt::Windows::Xbox::System::AudioDeviceType deviceType = winrt::Windows::Xbox::System::AudioDeviceType::Capture; + winrt::Windows::Xbox::System::AudioDeviceSharing sharing = winrt::Windows::Xbox::System::AudioDeviceSharing::Exclusive; + winrt::Windows::Xbox::System::AudioDeviceCategory deviceCategory = winrt::Windows::Xbox::System::AudioDeviceCategory::Communications; + bool isMuted = true; + }; +} diff --git a/projects/WinDurango.WinRT/include/WinDurango.WinRT/Windows/Xbox/System/Windows.Xbox.System.User.h b/projects/WinDurango.WinRT/include/WinDurango.WinRT/Windows/Xbox/System/Windows.Xbox.System.User.h new file mode 100644 index 0000000..919f53b --- /dev/null +++ b/projects/WinDurango.WinRT/include/WinDurango.WinRT/Windows/Xbox/System/Windows.Xbox.System.User.h @@ -0,0 +1,93 @@ +#pragma once +#include "Windows.Xbox.System.User.g.h" +#include "Windows.Xbox.System.UserAddedEventArgs.g.h" +#include "Windows.Xbox.System.UserRemovedEventArgs.g.h" +#include "Windows.Xbox.System.UserDisplayInfo.h" + +namespace winrt::Windows::Xbox::System::implementation +{ + struct UserAddedEventArgs : UserAddedEventArgsT + { + UserAddedEventArgs() = default; + UserAddedEventArgs(winrt::Windows::Xbox::System::User user) : m_user(user) {} + + winrt::Windows::Xbox::System::User User(); + private: + winrt::Windows::Xbox::System::User m_user; + }; + + struct UserRemovedEventArgs : UserRemovedEventArgsT + { + UserRemovedEventArgs() = default; + UserRemovedEventArgs(winrt::Windows::Xbox::System::User user) : m_user(user) {} + + winrt::Windows::Xbox::System::User User(); + private: + winrt::Windows::Xbox::System::User m_user; + }; + + struct User : UserT + { + User() = default; + User(uint32_t id) : id(id) {} + + static winrt::Windows::Xbox::System::UserOnlineState OnlineState(); + static winrt::event_token OnlineStateChanged(winrt::Windows::Foundation::EventHandler const& handler); + static void OnlineStateChanged(winrt::event_token const& token) noexcept; + static winrt::Windows::Foundation::Collections::IVectorView Users(); + static winrt::event_token UserAdded(winrt::Windows::Foundation::EventHandler const& handler); + static void UserAdded(winrt::event_token const& token) noexcept; + static winrt::event_token UserRemoved(winrt::Windows::Foundation::EventHandler const& handler); + static void UserRemoved(winrt::event_token const& token) noexcept; + static winrt::Windows::Xbox::System::User GetUserById(uint32_t Id); + static winrt::Windows::Foundation::IAsyncOperation GetTokenAndSignatureForAllUsersAsync(hstring method, hstring url, hstring headers); + static winrt::Windows::Foundation::IAsyncOperation GetTokenAndSignatureForAllUsersAsync(hstring method, hstring url, hstring headers, winrt::Windows::Foundation::Collections::IVector body); + static winrt::Windows::Foundation::IAsyncOperation GetTokenAndSignatureForAllUsersAsync(hstring method, hstring url, hstring headers, hstring body); + static winrt::event_token AudioDeviceAdded(winrt::Windows::Foundation::EventHandler const& handler); + static void AudioDeviceAdded(winrt::event_token const& token) noexcept; + static winrt::event_token AudioDeviceRemoved(winrt::Windows::Foundation::EventHandler const& handler); + static void AudioDeviceRemoved(winrt::event_token const& token) noexcept; + static winrt::event_token AudioDeviceChanged(winrt::Windows::Foundation::EventHandler const& handler); + static void AudioDeviceChanged(winrt::event_token const& token) noexcept; + static winrt::event_token SignInCompleted(winrt::Windows::Foundation::EventHandler const& handler); + static void SignInCompleted(winrt::event_token const& token) noexcept; + static winrt::event_token SignOutStarted(winrt::Windows::Foundation::EventHandler const& handler); + static void SignOutStarted(winrt::event_token const& token) noexcept; + static winrt::event_token SignOutCompleted(winrt::Windows::Foundation::EventHandler const& handler); + static void SignOutCompleted(winrt::event_token const& token) noexcept; + static winrt::event_token UserDisplayInfoChanged(winrt::Windows::Foundation::EventHandler const& handler); + static void UserDisplayInfoChanged(winrt::event_token const& token) noexcept; + static winrt::guid GetNetworkCacheIdForUsers(winrt::Windows::Foundation::Collections::IVectorView const& unk); + uint32_t Id(); + winrt::Windows::Foundation::Collections::IVectorView AudioDevices(); + winrt::Windows::Foundation::Collections::IVectorView Controllers(); + winrt::Windows::Xbox::System::UserDisplayInfo DisplayInfo(); + bool IsGuest(); + bool IsSignedIn(); + winrt::Windows::Xbox::System::UserLocation Location(); + winrt::Windows::Xbox::System::User Sponsor(); + hstring XboxUserHash(); + hstring XboxUserId(); + winrt::Windows::Foundation::IAsyncOperation GetTokenAndSignatureAsync(hstring method, hstring url, hstring headers); + winrt::Windows::Foundation::IAsyncOperation GetTokenAndSignatureAsync(hstring method, hstring url, hstring headers, winrt::Windows::Foundation::Collections::IVector body); + winrt::Windows::Foundation::IAsyncOperation GetTokenAndSignatureAsync(hstring method, hstring url, hstring headers, hstring body); + private: + uint32_t id = 0; + static winrt::event> m_OnlineStateChanged; + static winrt::event> m_UserAdded; + static winrt::event> m_UserRemoved; + static winrt::event> m_AudioDeviceAdded; + static winrt::event> m_AudioDeviceRemoved; + static winrt::event> m_AudioDeviceChanged; + static winrt::event> m_SignInCompleted; + static winrt::event> m_SignOutStarted; + static winrt::event> m_SignOutCompleted; + static winrt::event> m_UserDisplayInfoChanged; + }; +} +namespace winrt::Windows::Xbox::System::factory_implementation +{ + struct User : UserT + { + }; +} diff --git a/projects/WinDurango.WinRT/include/WinDurango.WinRT/Windows/Xbox/System/Windows.Xbox.System.UserDisplayInfo.h b/projects/WinDurango.WinRT/include/WinDurango.WinRT/Windows/Xbox/System/Windows.Xbox.System.UserDisplayInfo.h new file mode 100644 index 0000000..b0c6987 --- /dev/null +++ b/projects/WinDurango.WinRT/include/WinDurango.WinRT/Windows/Xbox/System/Windows.Xbox.System.UserDisplayInfo.h @@ -0,0 +1,43 @@ +#pragma once +#include "Windows.Xbox.System.UserDisplayInfo.g.h" +#include "Windows.Xbox.System.UserDisplayInfoChangedEventArgs.g.h" + +namespace winrt::Windows::Xbox::System::implementation +{ + struct UserDisplayInfoChangedEventArgs : UserDisplayInfoChangedEventArgsT + { + UserDisplayInfoChangedEventArgs() = default; + UserDisplayInfoChangedEventArgs(winrt::Windows::Xbox::System::User user) : user(user) {} + + winrt::Windows::Xbox::System::User User(); + private: + winrt::Windows::Xbox::System::User user; + }; + + struct UserDisplayInfo : UserDisplayInfoT + { + UserDisplayInfo() = default; + UserDisplayInfo(hstring gamertag, uint32_t gamerscore, hstring appDisplayName, hstring gameDisplayName, uint32_t reputation, + winrt::Windows::Xbox::System::UserAgeGroup ageGroup, winrt::Windows::Foundation::Collections::IVectorView privileges) + : gamertag(gamertag), gamerscore(gamerscore), appDisplayName(appDisplayName), gameDisplayName(gameDisplayName), reputation(reputation), + ageGroup(ageGroup), privileges(privileges) {} + + hstring Gamertag(); + uint32_t GamerScore(); + hstring ApplicationDisplayName(); + hstring GameDisplayName(); + uint32_t Reputation(); + winrt::Windows::Xbox::System::UserAgeGroup AgeGroup(); + winrt::Windows::Foundation::Collections::IVectorView Privileges(); + winrt::Windows::Foundation::IAsyncOperation GetApplicationPictureAsync(winrt::Windows::Xbox::System::UserPictureSize unk, winrt::Windows::Storage::Streams::IBuffer unka); + winrt::Windows::Foundation::IAsyncOperation GetGamerPictureAsync(winrt::Windows::Xbox::System::UserPictureSize unk, winrt::Windows::Storage::Streams::IBuffer unka); + private: + hstring gamertag = L"WinDurango2"; + uint32_t gamerscore = 2419; + hstring appDisplayName = L""; + hstring gameDisplayName = L""; + uint32_t reputation = 0; + winrt::Windows::Xbox::System::UserAgeGroup ageGroup = winrt::Windows::Xbox::System::UserAgeGroup::Adult; + winrt::Windows::Foundation::Collections::IVectorView privileges = {0}; + }; +} diff --git a/projects/WinDurango.WinRT/include/WinDurango.WinRT/Windows/Xbox/System/Windows.Xbox.System.h b/projects/WinDurango.WinRT/include/WinDurango.WinRT/Windows/Xbox/System/Windows.Xbox.System.h new file mode 100644 index 0000000..8311af3 --- /dev/null +++ b/projects/WinDurango.WinRT/include/WinDurango.WinRT/Windows/Xbox/System/Windows.Xbox.System.h @@ -0,0 +1,87 @@ +#pragma once +#include "Windows.Xbox.System.GetTokenAndSignatureResult.g.h" +#include "Windows.Xbox.System.OnlineStateChangedEventArgs.g.h" +#include "Windows.Xbox.System.GetPictureResult.g.h" +#include "Windows.Xbox.System.SignInCompletedEventArgs.g.h" +#include "Windows.Xbox.System.SignOutStartedEventArgs.g.h" +#include "Windows.Xbox.System.SignOutCompletedEventArgs.g.h" +#include "Windows.Xbox.System.SignOutDeferral.g.h" + +namespace winrt::Windows::Xbox::System::implementation +{ + struct GetTokenAndSignatureResult : GetTokenAndSignatureResultT + { + GetTokenAndSignatureResult() = default; + GetTokenAndSignatureResult(hstring signature, hstring token) : signature(signature), token(token) {} + + hstring Signature(); + hstring Token(); + private: + hstring signature = L""; + hstring token = L""; + }; + + struct OnlineStateChangedEventArgs : OnlineStateChangedEventArgsT + { + OnlineStateChangedEventArgs() = default; + OnlineStateChangedEventArgs(winrt::Windows::Xbox::System::UserOnlineState state) : state(state) {} + + winrt::Windows::Xbox::System::UserOnlineState State(); + private: + winrt::Windows::Xbox::System::UserOnlineState state = winrt::Windows::Xbox::System::UserOnlineState::Offline; + }; + + struct GetPictureResult : GetPictureResultT + { + GetPictureResult() = default; + GetPictureResult(winrt::hresult result, uint32_t requiredBufferSize) : result(result), bufferSize(requiredBufferSize) {} + + winrt::hresult Result(); + uint32_t RequiredBufferSize(); + private: + winrt::hresult result = 0; + uint32_t bufferSize = 0; + }; + + struct SignInCompletedEventArgs : SignInCompletedEventArgsT + { + SignInCompletedEventArgs() = default; + SignInCompletedEventArgs(winrt::Windows::Xbox::System::User user) : user(user) {} + + winrt::Windows::Xbox::System::User User(); + private: + winrt::Windows::Xbox::System::User user; + }; + + struct SignOutStartedEventArgs : SignOutStartedEventArgsT + { + SignOutStartedEventArgs() = default; + SignOutStartedEventArgs(winrt::Windows::Xbox::System::SignOutDeferral deferral, winrt::Windows::Xbox::System::User user) + : deferral(deferral), user(user) {} + + winrt::Windows::Xbox::System::SignOutDeferral GetDeferral(); + winrt::Windows::Xbox::System::User User(); + private: + winrt::Windows::Xbox::System::SignOutDeferral deferral; + winrt::Windows::Xbox::System::User user; + }; + + struct SignOutCompletedEventArgs : SignOutCompletedEventArgsT + { + SignOutCompletedEventArgs() = default; + SignOutCompletedEventArgs(winrt::hresult result, winrt::Windows::Xbox::System::User user) : result(result), user(user) {} + + winrt::hresult Result(); + winrt::Windows::Xbox::System::User User(); + private: + winrt::hresult result; + winrt::Windows::Xbox::System::User user; + }; + + struct SignOutDeferral : SignOutDeferralT + { + SignOutDeferral() = default; + + void Complete(); + }; +} diff --git a/projects/WinDurango.WinRT/src/Windows/Xbox/Input/Windows.Xbox.Input.BiometricUser.cpp b/projects/WinDurango.WinRT/src/Windows/Xbox/Input/Windows.Xbox.Input.BiometricUser.cpp new file mode 100644 index 0000000..af97160 --- /dev/null +++ b/projects/WinDurango.WinRT/src/Windows/Xbox/Input/Windows.Xbox.Input.BiometricUser.cpp @@ -0,0 +1,9 @@ +#include "Windows.Xbox.Input.BiometricUser.h" + +namespace winrt::Windows::Xbox::Input::implementation +{ + uint32_t BiometricUserChangedEventArgs::BiometricUserId() + { + return id; + } +} diff --git a/projects/WinDurango.WinRT/src/Windows/Xbox/Input/Windows.Xbox.Input.BodyController.cpp b/projects/WinDurango.WinRT/src/Windows/Xbox/Input/Windows.Xbox.Input.BodyController.cpp new file mode 100644 index 0000000..dd30e8e --- /dev/null +++ b/projects/WinDurango.WinRT/src/Windows/Xbox/Input/Windows.Xbox.Input.BodyController.cpp @@ -0,0 +1,98 @@ +#include "Windows.Xbox.Input.BodyController.h" +#include "WinDurangoWinRT.h" + +namespace winrt::Windows::Xbox::Input::implementation +{ + winrt::Windows::Xbox::Input::BodyController BodyControllerAddedEventArgs::BodyController() + { + return controller; + } + winrt::Windows::Xbox::Input::BodyController BodyControllerRemovedEventArgs::BodyController() + { + return controller; + } + + winrt::Windows::Foundation::DateTime BodyControllerReading::Timestamp() + { + return time; + } + + bool BodyControllerReading::IsLeanTracked() + { + return isLeanTracked; + } + + float BodyControllerReading::LeanX() + { + return leanX; + } + + float BodyControllerReading::LeanY() + { + return leanY; + } + + winrt::Windows::Xbox::Input::BodyControllerReading BodyControllerReadingChangedEventArgs::Reading() + { + return reading; + } + + uint64_t BodyController::Id() + { + return id; + } + + hstring BodyController::Type() + { + p_wd->log.Warn("WinDurango::WinRT::Windows::Xbox::Input", "Unimplemented: Type"); + throw hresult_not_implemented(); + } + + winrt::Windows::Xbox::System::User BodyController::User() + { + p_wd->log.Warn("WinDurango::WinRT::Windows::Xbox::Input", "Unimplemented: User"); + throw hresult_not_implemented(); + } + + uint32_t BodyController::BiometricUserId() + { + p_wd->log.Warn("WinDurango::WinRT::Windows::Xbox::Input", "Unimplemented: BiometricUserId"); + throw hresult_not_implemented(); + } + + winrt::event_token BodyController::BiometricUserChanged(winrt::Windows::Foundation::TypedEventHandler const& handler) + { + p_wd->log.Warn("WinDurango::WinRT::Windows::Xbox::Input", "Unimplemented: add_BiometricUserChanged"); + throw hresult_not_implemented(); + } + + void BodyController::BiometricUserChanged(winrt::event_token const& token) noexcept + { + p_wd->log.Warn("WinDurango::WinRT::Windows::Xbox::Input", "Unimplemented: remove_BiometricUserChanged"); + throw hresult_not_implemented(); + } + + winrt::Windows::Xbox::Input::BodyControllerReading BodyController::GetCurrentReading() + { + p_wd->log.Warn("WinDurango::WinRT::Windows::Xbox::Input", "Unimplemented: put_GetCurrentReading"); + throw hresult_not_implemented(); + } + + void BodyController::GetCurrentReading(winrt::Windows::Xbox::Input::BodyControllerReading const& value) + { + p_wd->log.Warn("WinDurango::WinRT::Windows::Xbox::Input", "Unimplemented: set_GetCurrentReading"); + throw hresult_not_implemented(); + } + + winrt::event_token BodyController::ReadingChanged(winrt::Windows::Foundation::TypedEventHandler const& handler) + { + p_wd->log.Warn("WinDurango::WinRT::Windows::Xbox::Input", "Unimplemented: add_ReadingChanged"); + throw hresult_not_implemented(); + } + + void BodyController::ReadingChanged(winrt::event_token const& token) noexcept + { + p_wd->log.Warn("WinDurango::WinRT::Windows::Xbox::Input", "Unimplemented: remove_ReadingChanged"); + throw hresult_not_implemented(); + } +} diff --git a/projects/WinDurango.WinRT/src/Windows/Xbox/Input/Windows.Xbox.Input.BodyHandPair.cpp b/projects/WinDurango.WinRT/src/Windows/Xbox/Input/Windows.Xbox.Input.BodyHandPair.cpp new file mode 100644 index 0000000..356da95 --- /dev/null +++ b/projects/WinDurango.WinRT/src/Windows/Xbox/Input/Windows.Xbox.Input.BodyHandPair.cpp @@ -0,0 +1,24 @@ +#include "Windows.Xbox.Input.BodyHandPair.h" + +namespace winrt::Windows::Xbox::Input::implementation +{ + uint64_t BodyHandPair::BodyTrackingId() + { + return trackingID; + } + + void BodyHandPair::BodyTrackingId(uint64_t value) + { + trackingID = value; + } + + winrt::Windows::Xbox::Input::HandType BodyHandPair::HandType() + { + return handType; + } + + void BodyHandPair::HandType(winrt::Windows::Xbox::Input::HandType const& value) + { + handType = value; + } +} diff --git a/projects/WinDurango.WinRT/src/Windows/Xbox/Input/Windows.Xbox.Input.Controller.cpp b/projects/WinDurango.WinRT/src/Windows/Xbox/Input/Windows.Xbox.Input.Controller.cpp new file mode 100644 index 0000000..66bf858 --- /dev/null +++ b/projects/WinDurango.WinRT/src/Windows/Xbox/Input/Windows.Xbox.Input.Controller.cpp @@ -0,0 +1,116 @@ +#include "Windows.Xbox.Input.Controller.h" +#include "WinDurangoWinRT.h" + +namespace winrt::Windows::Xbox::Input::implementation +{ + winrt::Windows::Xbox::Input::Controller ControllerAddedEventArgs::Controller() + { + return controller; + } + + winrt::Windows::Xbox::Input::Controller ControllerPairingChangedEventArgs::Controller() + { + return controller; + } + + winrt::Windows::Xbox::System::User ControllerPairingChangedEventArgs::User() + { + return user; + } + + winrt::Windows::Xbox::System::User ControllerPairingChangedEventArgs::PreviousUser() + { + return previousUser; + } + + winrt::Windows::Xbox::Input::Controller ControllerRemovedEventArgs::Controller() + { + return controller; + } + + winrt::Windows::Foundation::Collections::IVectorView Controller::Controllers() + { + p_wd->log.Warn("WinDurango::WinRT::Windows::Xbox::Input", "Unimplemented: Controllers"); + throw hresult_not_implemented(); + } + + winrt::event_token Controller::ControllerAdded(winrt::Windows::Foundation::EventHandler const& handler) + { + return e_ControllerAdded.add(handler); + } + + void Controller::ControllerAdded(winrt::event_token const& token) noexcept + { + e_ControllerAdded.remove(token); + } + + winrt::event_token Controller::ControllerRemoved(winrt::Windows::Foundation::EventHandler const& handler) + { + return e_ControllerRemoved.add(handler); + } + + void Controller::ControllerRemoved(winrt::event_token const& token) noexcept + { + e_ControllerRemoved.remove(token); + } + + winrt::event_token Controller::ControllerPairingChanged(winrt::Windows::Foundation::EventHandler const& handler) + { + return e_ControllerPairingChanged.add(handler); + } + + void Controller::ControllerPairingChanged(winrt::event_token const& token) noexcept + { + e_ControllerPairingChanged.remove(token); + } + + winrt::event_token Controller::ControllerOrderChanged(winrt::Windows::Foundation::EventHandler const& handler) + { + return e_ControllerOrderChanged.add(handler); + } + + void Controller::ControllerOrderChanged(winrt::event_token const& token) noexcept + { + e_ControllerOrderChanged.remove(token); + } + + winrt::Windows::Xbox::Input::Controller Controller::GetControllerById(uint64_t unk) + { + p_wd->log.Warn("WinDurango::WinRT::Windows::Xbox::Input", "Unimplemented: GetControllerById"); + throw hresult_not_implemented(); + } + + void Controller::GetControllerMetadata(uint64_t unk, winrt::Windows::Xbox::Input::MetadataVersion const& version, winrt::Windows::Foundation::Collections::IVector const& unka) + { + p_wd->log.Warn("WinDurango::WinRT::Windows::Xbox::Input", "Unimplemented: GetControllerMetadata"); + throw hresult_not_implemented(); + } + + winrt::Windows::Foundation::Collections::IVectorView Controller::GetControllersOrderedLeftToRight(winrt::Windows::Xbox::Input::ControllerOrderFilter const& filter) + { + p_wd->log.Warn("WinDurango::WinRT::Windows::Xbox::Input", "Unimplemented: GetControllersOrderedLeftToRight"); + throw hresult_not_implemented(); + } + + uint64_t Controller::Id() + { + return id; + } + + hstring Controller::Type() + { + p_wd->log.Warn("WinDurango::WinRT::Windows::Xbox::Input", "Unimplemented: Type"); + throw hresult_not_implemented(); + } + + winrt::Windows::Xbox::System::User Controller::User() + { + p_wd->log.Warn("WinDurango::WinRT::Windows::Xbox::Input", "Unimplemented: User"); + throw hresult_not_implemented(); + } + + winrt::event> Controller::e_ControllerAdded{}; + winrt::event> Controller::e_ControllerRemoved{}; + winrt::event> Controller::e_ControllerPairingChanged{}; + winrt::event> Controller::e_ControllerOrderChanged{}; +} diff --git a/projects/WinDurango.WinRT/src/Windows/Xbox/Input/Windows.Xbox.Input.Gamepad.cpp b/projects/WinDurango.WinRT/src/Windows/Xbox/Input/Windows.Xbox.Input.Gamepad.cpp new file mode 100644 index 0000000..02a74eb --- /dev/null +++ b/projects/WinDurango.WinRT/src/Windows/Xbox/Input/Windows.Xbox.Input.Gamepad.cpp @@ -0,0 +1,207 @@ +#include "Windows.Xbox.Input.Gamepad.h" +#include "WinDurangoWinRT.h" + +namespace winrt::Windows::Xbox::Input::implementation +{ + winrt::Windows::Xbox::Input::Gamepad GamepadAddedEventArgs::Gamepad() + { + return gamepad; + } + + winrt::Windows::Xbox::Input::Gamepad GamepadRemovedEventArgs::Gamepad() + { + return gamepad; + } + + winrt::Windows::Foundation::DateTime GamepadReading::Timestamp() + { + return time; + } + + winrt::Windows::Xbox::Input::GamepadButtons GamepadReading::Buttons() + { + return buttons; + } + + bool GamepadReading::IsDPadUpPressed() + { + return (buttons & GamepadButtons::DPadUp) != GamepadButtons::None; + } + + bool GamepadReading::IsDPadDownPressed() + { + return (buttons & GamepadButtons::DPadDown) != GamepadButtons::None; + } + + bool GamepadReading::IsDPadLeftPressed() + { + return (buttons & GamepadButtons::DPadLeft) != GamepadButtons::None; + } + + bool GamepadReading::IsDPadRightPressed() + { + return (buttons & GamepadButtons::DPadRight) != GamepadButtons::None; + } + + bool GamepadReading::IsMenuPressed() + { + return (buttons & GamepadButtons::Menu) != GamepadButtons::None; + } + + bool GamepadReading::IsViewPressed() + { + return (buttons & GamepadButtons::View) != GamepadButtons::None; + } + + bool GamepadReading::IsLeftThumbstickPressed() + { + return (buttons & GamepadButtons::LeftThumbstick) != GamepadButtons::None; + } + + bool GamepadReading::IsRightThumbstickPressed() + { + return (buttons & GamepadButtons::RightThumbstick) != GamepadButtons::None; + } + + bool GamepadReading::IsLeftShoulderPressed() + { + return (buttons & GamepadButtons::LeftShoulder) != GamepadButtons::None; + } + + bool GamepadReading::IsRightShoulderPressed() + { + return (buttons & GamepadButtons::RightShoulder) != GamepadButtons::None; + } + + bool GamepadReading::IsAPressed() + { + return (buttons & GamepadButtons::A) != GamepadButtons::None; + } + + bool GamepadReading::IsBPressed() + { + return (buttons & GamepadButtons::B) != GamepadButtons::None; + } + + bool GamepadReading::IsXPressed() + { + return (buttons & GamepadButtons::X) != GamepadButtons::None; + } + + bool GamepadReading::IsYPressed() + { + return (buttons & GamepadButtons::Y) != GamepadButtons::None; + } + + float GamepadReading::LeftTrigger() + { + p_wd->log.Warn("WinDurango::WinRT::Windows::Xbox::Input", "Unimplemented: LeftTrigger"); + return 0.0f; + } + + float GamepadReading::RightTrigger() + { + p_wd->log.Warn("WinDurango::WinRT::Windows::Xbox::Input", "Unimplemented: RightTrigger"); + return 0.0f; + } + + float GamepadReading::LeftThumbstickX() + { + p_wd->log.Warn("WinDurango::WinRT::Windows::Xbox::Input", "Unimplemented: LeftThumbstickX"); + return 0.0f; + } + + float GamepadReading::LeftThumbstickY() + { + p_wd->log.Warn("WinDurango::WinRT::Windows::Xbox::Input", "Unimplemented: LeftThumbstickY"); + return 0.0f; + } + + float GamepadReading::RightThumbstickX() + { + p_wd->log.Warn("WinDurango::WinRT::Windows::Xbox::Input", "Unimplemented: RightThumbstickX"); + return 0.0f; + } + + float GamepadReading::RightThumbstickY() + { + p_wd->log.Warn("WinDurango::WinRT::Windows::Xbox::Input", "Unimplemented: RightThumbstickY"); + return 0.0f; + } + + winrt::Windows::Foundation::Collections::IVectorView Gamepad::Gamepads() + { + p_wd->log.Warn("WinDurango::WinRT::Windows::Xbox::Input", "Unimplemented: Gamepads"); + throw hresult_not_implemented(); + } + + winrt::event_token Gamepad::GamepadAdded(winrt::Windows::Foundation::EventHandler const& handler) + { + return e_GamepadAdded.add(handler); + } + + void Gamepad::GamepadAdded(winrt::event_token const& token) noexcept + { + e_GamepadAdded.remove(token); + } + + winrt::event_token Gamepad::GamepadRemoved(winrt::Windows::Foundation::EventHandler const& handler) + { + return e_GamepadRemoved.add(handler); + } + + void Gamepad::GamepadRemoved(winrt::event_token const& token) noexcept + { + e_GamepadRemoved.remove(token); + } + + uint64_t Gamepad::Id() + { + return id; + } + + hstring Gamepad::Type() + { + p_wd->log.Warn("WinDurango::WinRT::Windows::Xbox::Input", "Unimplemented: RightThumbstickY"); + throw hresult_not_implemented(); + } + + winrt::Windows::Xbox::System::User Gamepad::User() + { + p_wd->log.Warn("WinDurango::WinRT::Windows::Xbox::Input", "Unimplemented: RightThumbstickY"); + throw hresult_not_implemented(); + } + + winrt::Windows::Xbox::Input::INavigationReading Gamepad::GetNavigationReading() + { + p_wd->log.Warn("WinDurango::WinRT::Windows::Xbox::Input", "Unimplemented: RightThumbstickY"); + throw hresult_not_implemented(); + } + + winrt::Windows::Xbox::Input::RawNavigationReading Gamepad::GetRawNavigationReading() + { + p_wd->log.Warn("WinDurango::WinRT::Windows::Xbox::Input", "Unimplemented: RightThumbstickY"); + throw hresult_not_implemented(); + } + + winrt::Windows::Xbox::Input::GamepadVibration Gamepad::SetVibration() + { + p_wd->log.Warn("WinDurango::WinRT::Windows::Xbox::Input", "Unimplemented: RightThumbstickY"); + throw hresult_not_implemented(); + } + + winrt::Windows::Xbox::Input::GamepadReading Gamepad::GetCurrentReading() + { + p_wd->log.Warn("WinDurango::WinRT::Windows::Xbox::Input", "Unimplemented: RightThumbstickY"); + throw hresult_not_implemented(); + } + + winrt::Windows::Xbox::Input::RawGamepadReading Gamepad::GetRawCurrentReading() + { + p_wd->log.Warn("WinDurango::WinRT::Windows::Xbox::Input", "Unimplemented: RightThumbstickY"); + throw hresult_not_implemented(); + } + + winrt::event> Gamepad::e_GamepadAdded{}; + winrt::event> Gamepad::e_GamepadRemoved{}; +} diff --git a/projects/WinDurango.WinRT/src/Windows/Xbox/Input/Windows.Xbox.Input.NavigationController.cpp b/projects/WinDurango.WinRT/src/Windows/Xbox/Input/Windows.Xbox.Input.NavigationController.cpp new file mode 100644 index 0000000..59c4623 --- /dev/null +++ b/projects/WinDurango.WinRT/src/Windows/Xbox/Input/Windows.Xbox.Input.NavigationController.cpp @@ -0,0 +1,33 @@ +#include "Windows.Xbox.Input.NavigationController.h" +#include "WinDurangoWinRT.h" +namespace winrt::Windows::Xbox::Input::implementation +{ + uint64_t NavigationController::Id() + { + return id; + } + + hstring NavigationController::Type() + { + p_wd->log.Warn("WinDurango::WinRT::Windows::Xbox::Input", "Unimplemented: Type"); + throw hresult_not_implemented(); + } + + winrt::Windows::Xbox::System::User NavigationController::User() + { + p_wd->log.Warn("WinDurango::WinRT::Windows::Xbox::Input", "Unimplemented: User"); + throw hresult_not_implemented(); + } + + winrt::Windows::Xbox::Input::INavigationReading NavigationController::GetNavigationReading() + { + p_wd->log.Warn("WinDurango::WinRT::Windows::Xbox::Input", "Unimplemented: GetNavigationReading"); + throw hresult_not_implemented(); + } + + winrt::Windows::Xbox::Input::RawNavigationReading NavigationController::GetRawNavigationReading() + { + p_wd->log.Warn("WinDurango::WinRT::Windows::Xbox::Input", "Unimplemented: GetRawNavigationReading"); + throw hresult_not_implemented(); + } +} diff --git a/projects/WinDurango.WinRT/src/Windows/Xbox/System/Windows.Xbox.System.AudioDeviceInfo.cpp b/projects/WinDurango.WinRT/src/Windows/Xbox/System/Windows.Xbox.System.AudioDeviceInfo.cpp new file mode 100644 index 0000000..38a72f8 --- /dev/null +++ b/projects/WinDurango.WinRT/src/Windows/Xbox/System/Windows.Xbox.System.AudioDeviceInfo.cpp @@ -0,0 +1,59 @@ +#include "Windows.Xbox.System.AudioDeviceInfo.h" + +namespace winrt::Windows::Xbox::System::implementation +{ + winrt::Windows::Xbox::System::User AudioDeviceAddedEventArgs::User() + { + return user; + } + + winrt::Windows::Xbox::System::AudioDeviceInfo AudioDeviceAddedEventArgs::AudioDevice() + { + return audioDevice; + } + + winrt::Windows::Xbox::System::User AudioDeviceChangedEventArgs::User() + { + return user; + } + + winrt::Windows::Xbox::System::AudioDeviceInfo AudioDeviceChangedEventArgs::AudioDevice() + { + return audioDevice; + } + + winrt::Windows::Xbox::System::User AudioDeviceRemovedEventArgs::User() + { + return user; + } + + winrt::Windows::Xbox::System::AudioDeviceInfo AudioDeviceRemovedEventArgs::AudioDevice() + { + return audioDevice; + } + + hstring AudioDeviceInfo::Id() + { + return id; + } + + winrt::Windows::Xbox::System::AudioDeviceType AudioDeviceInfo::DeviceType() + { + return deviceType; + } + + winrt::Windows::Xbox::System::AudioDeviceSharing AudioDeviceInfo::Sharing() + { + return sharing; + } + + winrt::Windows::Xbox::System::AudioDeviceCategory AudioDeviceInfo::DeviceCategory() + { + return deviceCategory; + } + + bool AudioDeviceInfo::IsMicrophoneMuted() + { + return isMuted; + } +} diff --git a/projects/WinDurango.WinRT/src/Windows/Xbox/System/Windows.Xbox.System.User.cpp b/projects/WinDurango.WinRT/src/Windows/Xbox/System/Windows.Xbox.System.User.cpp new file mode 100644 index 0000000..6dd236f --- /dev/null +++ b/projects/WinDurango.WinRT/src/Windows/Xbox/System/Windows.Xbox.System.User.cpp @@ -0,0 +1,242 @@ +#include "Windows.Xbox.System.User.h" +#include "WinDurangoWinRT.h" + +namespace winrt::Windows::Xbox::System::implementation +{ + winrt::Windows::Xbox::System::User UserAddedEventArgs::User() + { + return m_user; + } + + winrt::Windows::Xbox::System::User UserRemovedEventArgs::User() + { + return m_user; + } + + winrt::Windows::Xbox::System::UserOnlineState User::OnlineState() + { + p_wd->log.Warn("WinDurango::WinRT::Windows::Xbox::System", "Unimplemented: OnlineState"); + return winrt::Windows::Xbox::System::UserOnlineState::Offline; + } + + winrt::event_token User::OnlineStateChanged(winrt::Windows::Foundation::EventHandler const& handler) + { + return m_OnlineStateChanged.add(handler); + } + + void User::OnlineStateChanged(winrt::event_token const& token) noexcept + { + m_OnlineStateChanged.remove(token); + } + + winrt::Windows::Foundation::Collections::IVectorView User::Users() + { + p_wd->log.Warn("WinDurango::WinRT::Windows::Xbox::System", "Unimplemented: Users"); + throw hresult_not_implemented(); + } + + winrt::event_token User::UserAdded(winrt::Windows::Foundation::EventHandler const& handler) + { + return m_UserAdded.add(handler); + } + + void User::UserAdded(winrt::event_token const& token) noexcept + { + m_UserAdded.remove(token); + } + + winrt::event_token User::UserRemoved(winrt::Windows::Foundation::EventHandler const& handler) + { + return m_UserRemoved.add(handler); + } + + void User::UserRemoved(winrt::event_token const& token) noexcept + { + m_UserRemoved.remove(token); + } + + winrt::Windows::Xbox::System::User User::GetUserById(uint32_t Id) + { + p_wd->log.Warn("WinDurango::WinRT::Windows::Xbox::System", "Unimplemented: Users"); + throw hresult_not_implemented(); + } + + winrt::Windows::Foundation::IAsyncOperation User::GetTokenAndSignatureForAllUsersAsync(hstring method, hstring url, hstring headers) + { + p_wd->log.Warn("WinDurango::WinRT::Windows::Xbox::System", "Unimplemented: GetTokenAndSignatureForAllUsersAsync(hstring, hstring, hstring)"); + throw hresult_not_implemented(); + } + + winrt::Windows::Foundation::IAsyncOperation User::GetTokenAndSignatureForAllUsersAsync(hstring method, hstring url, hstring headers, winrt::Windows::Foundation::Collections::IVector body) + { + p_wd->log.Warn("WinDurango::WinRT::Windows::Xbox::System", "Unimplemented: GetTokenAndSignatureForAllUsersAsync(hstring, hstring, hstring, array)"); + throw hresult_not_implemented(); + } + + winrt::Windows::Foundation::IAsyncOperation User::GetTokenAndSignatureForAllUsersAsync(hstring method, hstring url, hstring headers, hstring body) + { + p_wd->log.Warn("WinDurango::WinRT::Windows::Xbox::System", "Unimplemented: GetTokenAndSignatureForAllUsersAsync(hstring, hstring, hstring, hstring)"); + throw hresult_not_implemented(); + } + + winrt::event_token User::AudioDeviceAdded(winrt::Windows::Foundation::EventHandler const& handler) + { + return m_AudioDeviceAdded.add(handler); + } + + void User::AudioDeviceAdded(winrt::event_token const& token) noexcept + { + m_AudioDeviceAdded.remove(token); + } + + winrt::event_token User::AudioDeviceRemoved(winrt::Windows::Foundation::EventHandler const& handler) + { + return m_AudioDeviceRemoved.add(handler); + } + + void User::AudioDeviceRemoved(winrt::event_token const& token) noexcept + { + m_AudioDeviceRemoved.remove(token); + } + + winrt::event_token User::AudioDeviceChanged(winrt::Windows::Foundation::EventHandler const& handler) + { + return m_AudioDeviceChanged.add(handler); + } + + void User::AudioDeviceChanged(winrt::event_token const& token) noexcept + { + m_AudioDeviceChanged.remove(token); + } + + winrt::event_token User::SignInCompleted(winrt::Windows::Foundation::EventHandler const& handler) + { + return m_SignInCompleted.add(handler); + } + + void User::SignInCompleted(winrt::event_token const& token) noexcept + { + m_SignInCompleted.remove(token); + } + + winrt::event_token User::SignOutStarted(winrt::Windows::Foundation::EventHandler const& handler) + { + return m_SignOutStarted.add(handler); + } + + void User::SignOutStarted(winrt::event_token const& token) noexcept + { + m_SignOutStarted.remove(token); + } + + winrt::event_token User::SignOutCompleted(winrt::Windows::Foundation::EventHandler const& handler) + { + return m_SignOutCompleted.add(handler); + } + + void User::SignOutCompleted(winrt::event_token const& token) noexcept + { + m_SignOutCompleted.remove(token); + } + + winrt::event_token User::UserDisplayInfoChanged(winrt::Windows::Foundation::EventHandler const& handler) + { + return m_UserDisplayInfoChanged.add(handler); + } + + void User::UserDisplayInfoChanged(winrt::event_token const& token) noexcept + { + m_UserDisplayInfoChanged.remove(token); + } + + winrt::guid User::GetNetworkCacheIdForUsers(winrt::Windows::Foundation::Collections::IVectorView const& unk) + { + p_wd->log.Warn("WinDurango::WinRT::Windows::Xbox::System", "Unimplemented: GetNetworkCacheIdForUsers"); + throw hresult_not_implemented(); + } + + uint32_t User::Id() + { + return id; + } + + winrt::Windows::Foundation::Collections::IVectorView User::AudioDevices() + { + return winrt::single_threaded_vector().GetView(); + } + + winrt::Windows::Foundation::Collections::IVectorView User::Controllers() + { + return winrt::single_threaded_vector().GetView(); + } + + winrt::Windows::Xbox::System::UserDisplayInfo User::DisplayInfo() + { + p_wd->log.Warn("WinDurango::WinRT::Windows::Xbox::System", "Unimplemented: DisplayInfo"); + return winrt::make(); + } + + bool User::IsGuest() + { + p_wd->log.Warn("WinDurango::WinRT::Windows::Xbox::System", "Unimplemented: IsGuest"); + return false; + } + + bool User::IsSignedIn() + { + p_wd->log.Warn("WinDurango::WinRT::Windows::Xbox::System", "Unimplemented: IsSignedIn"); + return true; + } + + winrt::Windows::Xbox::System::UserLocation User::Location() + { + p_wd->log.Warn("WinDurango::WinRT::Windows::Xbox::System", "Unimplemented: Location"); + return winrt::Windows::Xbox::System::UserLocation::Local; + } + + winrt::Windows::Xbox::System::User User::Sponsor() + { + p_wd->log.Warn("WinDurango::WinRT::Windows::Xbox::System", "Unimplemented: Sponsor"); + throw hresult_not_implemented(); + } + + hstring User::XboxUserHash() + { + p_wd->log.Warn("WinDurango::WinRT::Windows::Xbox::System", "Unimplemented: XboxUserHash"); + return L""; + } + + hstring User::XboxUserId() + { + p_wd->log.Warn("WinDurango::WinRT::Windows::Xbox::System", "Unimplemented: XboxUserId"); + return L""; + } + + winrt::Windows::Foundation::IAsyncOperation User::GetTokenAndSignatureAsync(hstring method, hstring url, hstring headers) + { + p_wd->log.Warn("WinDurango::WinRT::Windows::Xbox::System", "Unimplemented: GetTokenAndSignatureAsync(hstring, hstring, hstring)"); + throw hresult_not_implemented(); + } + + winrt::Windows::Foundation::IAsyncOperation User::GetTokenAndSignatureAsync(hstring method, hstring url, hstring headers, winrt::Windows::Foundation::Collections::IVector body) + { + p_wd->log.Warn("WinDurango::WinRT::Windows::Xbox::System", "Unimplemented: GetTokenAndSignatureAsync(hstring, hstring, hstring, array)"); + throw hresult_not_implemented(); + } + + winrt::Windows::Foundation::IAsyncOperation User::GetTokenAndSignatureAsync(hstring method, hstring url, hstring headers, hstring body) + { + p_wd->log.Warn("WinDurango::WinRT::Windows::Xbox::System", "Unimplemented: GetTokenAndSignatureAsync(hstring, hstring, hstring, hstring)"); + throw hresult_not_implemented(); + } + winrt::event> User::m_OnlineStateChanged{}; + winrt::event> User::m_UserAdded{}; + winrt::event> User::m_UserRemoved{}; + winrt::event> User::m_AudioDeviceAdded{}; + winrt::event> User::m_AudioDeviceRemoved{}; + winrt::event> User::m_AudioDeviceChanged{}; + winrt::event> User::m_SignInCompleted{}; + winrt::event> User::m_SignOutStarted{}; + winrt::event> User::m_SignOutCompleted{}; + winrt::event> User::m_UserDisplayInfoChanged{}; +} diff --git a/projects/WinDurango.WinRT/src/Windows/Xbox/System/Windows.Xbox.System.UserDisplayInfo.cpp b/projects/WinDurango.WinRT/src/Windows/Xbox/System/Windows.Xbox.System.UserDisplayInfo.cpp new file mode 100644 index 0000000..6b8c093 --- /dev/null +++ b/projects/WinDurango.WinRT/src/Windows/Xbox/System/Windows.Xbox.System.UserDisplayInfo.cpp @@ -0,0 +1,57 @@ +#include "Windows.Xbox.System.UserDisplayInfo.h" +#include "WinDurangoWinRT.h" + +namespace winrt::Windows::Xbox::System::implementation +{ + winrt::Windows::Xbox::System::User UserDisplayInfoChangedEventArgs::User() + { + return user; + } + + hstring UserDisplayInfo::Gamertag() + { + return gamertag; + } + + uint32_t UserDisplayInfo::GamerScore() + { + return gamerscore; + } + + hstring UserDisplayInfo::ApplicationDisplayName() + { + return appDisplayName; + } + + hstring UserDisplayInfo::GameDisplayName() + { + return gameDisplayName; + } + + uint32_t UserDisplayInfo::Reputation() + { + return reputation; + } + + winrt::Windows::Xbox::System::UserAgeGroup UserDisplayInfo::AgeGroup() + { + return ageGroup; + } + + winrt::Windows::Foundation::Collections::IVectorView UserDisplayInfo::Privileges() + { + return privileges; + } + + winrt::Windows::Foundation::IAsyncOperation UserDisplayInfo::GetApplicationPictureAsync(winrt::Windows::Xbox::System::UserPictureSize unk, winrt::Windows::Storage::Streams::IBuffer unka) + { + p_wd->log.Warn("WinDurango::WinRT::Windows::Xbox::System", "Unimplemented: GetApplicationPictureAsync"); + throw hresult_not_implemented(); + } + + winrt::Windows::Foundation::IAsyncOperation UserDisplayInfo::GetGamerPictureAsync(winrt::Windows::Xbox::System::UserPictureSize unk, winrt::Windows::Storage::Streams::IBuffer unka) + { + p_wd->log.Warn("WinDurango::WinRT::Windows::Xbox::System", "Unimplemented: GetGamerPictureAsync"); + throw hresult_not_implemented(); + } +} diff --git a/projects/WinDurango.WinRT/src/Windows/Xbox/System/Windows.Xbox.System.cpp b/projects/WinDurango.WinRT/src/Windows/Xbox/System/Windows.Xbox.System.cpp new file mode 100644 index 0000000..f545125 --- /dev/null +++ b/projects/WinDurango.WinRT/src/Windows/Xbox/System/Windows.Xbox.System.cpp @@ -0,0 +1,59 @@ +#include "Windows.Xbox.System.h" + +namespace winrt::Windows::Xbox::System::implementation +{ + hstring GetTokenAndSignatureResult::Signature() + { + return signature; + } + + hstring GetTokenAndSignatureResult::Token() + { + return token; + } + + winrt::Windows::Xbox::System::UserOnlineState OnlineStateChangedEventArgs::State() + { + return state; + } + + winrt::hresult GetPictureResult::Result() + { + return result; + } + + uint32_t GetPictureResult::RequiredBufferSize() + { + return bufferSize; + } + + winrt::Windows::Xbox::System::User SignInCompletedEventArgs::User() + { + return user; + } + + winrt::Windows::Xbox::System::SignOutDeferral SignOutStartedEventArgs::GetDeferral() + { + return deferral; + } + + winrt::Windows::Xbox::System::User SignOutStartedEventArgs::User() + { + return user; + } + + winrt::hresult SignOutCompletedEventArgs::Result() + { + return result; + } + + winrt::Windows::Xbox::System::User SignOutCompletedEventArgs::User() + { + return user; + } + + void SignOutDeferral::Complete() + { + + } +}