Skip to content

Commit

Permalink
Merge v1.2.0 prerelease to master (#19)
Browse files Browse the repository at this point in the history
* Releases/ios v1.2.0 prerelease (#17)

* merge partysample 1.2

* update cppsdk for ios 1.2

* update network manager for ios 1.2

* update iOS partysample app for 1.2

* merge partysample 1.2 (#18)
  • Loading branch information
MichaelMackendMS authored Dec 9, 2019
1 parent c740cb5 commit 54933a2
Show file tree
Hide file tree
Showing 459 changed files with 245,034 additions and 21,051 deletions.
8 changes: 8 additions & 0 deletions android/PartySample/demo/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,14 @@
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service
android:name="com.microsoft.playfab.partysample.demo.PartySampleFocusService"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.AUDIOFOCUSSERVICE_MESSAGE"/>
</intent-filter>
</service>
</application>

</manifest>
82 changes: 41 additions & 41 deletions android/PartySample/demo/src/main/cpp/NetworkStateChangeManager.h
Original file line number Diff line number Diff line change
@@ -1,42 +1,42 @@
class NetworkStateChangeManager : public PartySample::INetworkStateChangeManager
{
public:

NetworkStateChangeManager();

// Called when a chat control has been destroyed
void onPlayerLeft(
PartyString playerId
);

// Called when an endpoint message is received from another chat control.
// Used to send the user display name to other chat controls. Replaces the onPlayerJoin functionality.
void
ProcessEndpointMessage(
std::string& sender,
std::string& message
);

// Called when a text chat message is sent to the chat control.
void ProcessTextMessage(
std::string& sender,
std::string &message
);

// Called when a voice transcription is sent to the chat control.
void ProcessVoiceMessage(
std::string& sender,
std::string &message
);

std::map<const std::string, const std::string>*
GetUserMap();

private:

std::map<const std::string, const std::string> m_userMap;

const std::string GetUserName(
const std::string& sender
);
class NetworkStateChangeManager : public PartySample::INetworkStateChangeManager
{
public:

NetworkStateChangeManager();

// Called when a chat control has been destroyed
void onPlayerLeft(
PartyString playerId
);

// Called when an endpoint message is received from another chat control.
// Used to send the user display name to other chat controls. Replaces the onPlayerJoin functionality.
void
ProcessEndpointMessage(
std::string& sender,
std::string& message
);

// Called when a text chat message is sent to the chat control.
void ProcessTextMessage(
std::string& sender,
std::string &message
);

// Called when a voice transcription is sent to the chat control.
void ProcessVoiceMessage(
std::string& sender,
std::string &message
);

std::map<const std::string, const std::string>*
GetUserMap();

private:

std::map<const std::string, const std::string> m_userMap;

const std::string GetUserName(
const std::string& sender
);
};
75 changes: 70 additions & 5 deletions android/PartySample/demo/src/main/cpp/PartyDemo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ bool g_isSpinDone = false;
bool g_isRunning = false;
bool g_shouldShutdown = false;
bool g_reconnecting = false;
bool g_connected = false;
constexpr uint32_t c_maxReconnectAttempts = 10;
uint32_t g_reconnectsRemaining = 0;
bool g_initializeCompleted = false;
Expand Down Expand Up @@ -145,6 +146,7 @@ OnNetworkConnected(
std::string network
)
{
g_connected = true;
RunJavaMethod(
"onNetworkCreated",
"(Ljava/lang/String;)V",
Expand Down Expand Up @@ -266,32 +268,41 @@ OnPlayerStateChange(
});
}

template <typename TSignInCallback>
void
InitializePartyNetwork()
SignInToPlayFab(TSignInCallback onComplete)
{
Managers::Get<PlayFabManager>()->Initialize(g_playfabTitleId.c_str());
Managers::Get<PlayFabManager>()->SignIn(
[](
[onComplete](
bool isSuccess,
std::string message
)
{

if (isSuccess)
{
SendSysLogToUI("Sign: OK");
SendSysLogToUI("PlayFab SignIn: OK");
std::map<const std::string, const std::string>* map = Managers::Get<NetworkStateChangeManager>()->GetUserMap();
map->emplace(Managers::Get<PlayFabManager>()->EntityId(), Managers::Get<PlayFabManager>()->displayName());
g_initializeCompleted = true;
onComplete(true);
}
else
{
SendSysLogToUI("SignIn Failed! error=\"%s\"", message.c_str());
onComplete(false);
}
},
g_customId);
}

void
InitializePlayFabParty()
{
Managers::Get<NetworkManager>()->Initialize(g_playfabTitleId.c_str());
}

void
HoldSpin()
{
Expand Down Expand Up @@ -403,6 +414,7 @@ OnDisconnect(
bool disconnectWasExpected
)
{
g_connected = false;
if(!disconnectWasExpected)
{
if(!g_reconnecting && g_reconnectsRemaining == 0)
Expand All @@ -420,6 +432,27 @@ OnDisconnect(

extern "C"
{

JNIEXPORT void JNICALL
Java_com_microsoft_playfab_partysample_demo_PartySampleFocusService_disconnectAudioInput(
JNIEnv *env,
jobject thiz
)
{
SendSysLogToUI("Lost Focus! Disconnecting Audio Input/Output Devices");
Managers::Get<NetworkManager>()->DisconnectAudioInput();
}

JNIEXPORT void JNICALL
Java_com_microsoft_playfab_partysample_demo_PartySampleFocusService_connectAudioInput(
JNIEnv *env,
jobject thiz
)
{
SendSysLogToUI("Gained Focus! Restoring Audio Input/Output Devices (if any)");
Managers::Get<NetworkManager>()->ConnectAudioInput();
}

JNIEXPORT void JNICALL
Java_com_microsoft_playfab_partysample_sdk_NetworkManager_setLanguage(
JNIEnv* env,
Expand Down Expand Up @@ -452,11 +485,31 @@ extern "C"
g_isRunning = true;
Managers::Initialize<NetworkStateChangeManager>();
Managers::Get<NetworkManager>()->SetOnNetworkDestroyed(OnDisconnect);
InitializePartyNetwork();
SignInToPlayFab([](bool success)
{
if (success)
{
InitializePlayFabParty();
}
else
{
SendSysLogToUI("Failed PlayFab Sign-In!");
}
});

return true;
}

JNIEXPORT void JNICALL
Java_com_microsoft_playfab_partysample_sdk_NetworkManager_setPlayerVolume(
JNIEnv* env,
jobject thiz,
jfloat volumeZeroToOne
)
{
Managers::Get<NetworkManager>()->SetPlayerVolume(volumeZeroToOne);
}

JNIEXPORT jboolean JNICALL
Java_com_microsoft_playfab_partysample_sdk_NetworkManager_createAndConnectToNetwork(
JNIEnv* env,
Expand All @@ -467,7 +520,7 @@ extern "C"
{
if (g_isRunning && g_initializeCompleted)
{
Managers::Get<NetworkManager>()->Initialize(g_playfabTitleId.c_str());

const char* networkNameCStr = env->GetStringUTFChars(type, NULL);
g_networkName = networkNameCStr;
env->ReleaseStringUTFChars(type, networkNameCStr);
Expand All @@ -484,6 +537,8 @@ extern "C"
SendSysLogToUI("set network descriptor succeeded");
ReleaseSpin();
});

OnNetworkConnected(g_networkName);
},
[](PartyError error)
{
Expand All @@ -503,6 +558,15 @@ extern "C"
}
}

JNIEXPORT jboolean JNICALL
Java_com_microsoft_playfab_partysample_sdk_NetworkManager_connectedToNetwork(
JNIEnv* env,
jobject thiz
)
{
return g_connected;
}

bool joinNetwork(bool rejoining)
{
if (g_isRunning && g_initializeCompleted)
Expand Down Expand Up @@ -617,6 +681,7 @@ extern "C"
{
g_shouldShutdown = false;
Managers::Get<NetworkManager>()->Shutdown();
Managers::Get<NetworkManager>()->Initialize(g_playfabTitleId.c_str());
ReleaseSpin();
}
else if(Managers::Get<NetworkManager>()->IsConnecting() == false)
Expand Down
94 changes: 47 additions & 47 deletions android/PartySample/demo/src/main/cpp/pch.h
Original file line number Diff line number Diff line change
@@ -1,48 +1,48 @@
#include <jni.h>
#include <memory>
#include <thread>
#include <errno.h>

#include "PartyPal.h"
#include "Party.h"

#include "NetworkManager.h"
#include "NetworkStateChangeManager.h"
#include "Managers.h"
#include "LanguageOptions.h"

#define RETURN_VOID_IF(expr) \
do { \
if (expr) \
{ \
return; \
} \
} while (false) \


#define RETURN_VOID_IF_FALSE(expr) \
do { \
if (!(expr)) \
{ \
return; \
} \
} while (false) \

#define RETURN_IF(expression, retVal) \
do { \
bool expr = (expression); \
if (expr) \
{ \
return (retVal); \
} \
} while (false) \

#ifndef __APPLE__
typedef int errno_t;
#endif

inline errno_t fopen_s(FILE **file, const char *filename, const char *mode)
{
*file = fopen(filename, mode);
return *file == nullptr ? errno : 0;
#include <jni.h>
#include <memory>
#include <thread>
#include <errno.h>

#include "PartyPal.h"
#include "Party.h"

#include "NetworkManager.h"
#include "NetworkStateChangeManager.h"
#include "Managers.h"
#include "LanguageOptions.h"

#define RETURN_VOID_IF(expr) \
do { \
if (expr) \
{ \
return; \
} \
} while (false) \


#define RETURN_VOID_IF_FALSE(expr) \
do { \
if (!(expr)) \
{ \
return; \
} \
} while (false) \

#define RETURN_IF(expression, retVal) \
do { \
bool expr = (expression); \
if (expr) \
{ \
return (retVal); \
} \
} while (false) \

#ifndef __APPLE__
typedef int errno_t;
#endif

inline errno_t fopen_s(FILE **file, const char *filename, const char *mode)
{
*file = fopen(filename, mode);
return *file == nullptr ? errno : 0;
}
Loading

0 comments on commit 54933a2

Please sign in to comment.