Files
watrbx-game-engine/GameChat/ChatUserSerialization/CxStyle/RemoteChatUser.cpp
T
2025-09-18 17:55:52 -04:00

77 lines
1.7 KiB
C++

//// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
//// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
//// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
//// PARTICULAR PURPOSE.
////
//// Copyright (c) Microsoft Corporation. All rights reserved
#include "pch.h"
#include "RemoteChatUser.h"
#if TV_API
using namespace Concurrency;
using namespace Windows::Foundation;
using namespace Windows::Foundation::Collections;
namespace Microsoft {
namespace Xbox {
namespace GameChat {
const UINT REMOTE_USER_ID_SEED = 0x01001000;
RemoteChatUser::RemoteChatUser(
_In_ Platform::String^ xuid,
_In_ bool isGuest,
_In_ Wfc::IVectorView< Wxs::IAudioDeviceInfo^ >^ audioDevices
) :
m_isGuest(isGuest)
{
Initialize( xuid, audioDevices );
}
RemoteChatUser::RemoteChatUser() :
m_xuid( nullptr ),
m_isGuest(false)
{
}
void RemoteChatUser::Initialize(
_In_ Platform::String^ xuid,
_In_ Wfc::IVectorView< Wxs::IAudioDeviceInfo^ >^ audioDevices)
{
m_xuid = xuid;
for( unsigned int i = 0; i < audioDevices->Size; ++i )
{
AddAudioDevice( audioDevices->GetAt( i ) );
}
static UINT remoteIdTracker = REMOTE_USER_ID_SEED;
m_id = InterlockedIncrement(&remoteIdTracker);
}
void RemoteChatUser::AddAudioDevice( _In_ Wxs::IAudioDeviceInfo^ audioDevice )
{
m_audioDevices.Append( audioDevice );
}
void RemoteChatUser::ClearAudioDevices()
{
m_audioDevices.Clear();
}
void RemoteChatUser::ResetAudioDevices(
_In_ Wfc::IVectorView< Wxs::IAudioDeviceInfo^ >^ audioDevices
)
{
m_audioDevices.Clear();
for (auto device : audioDevices)
{
m_audioDevices.Append( device );
}
}
}}}
#endif