Merge pull request #32 from irtimmer/customlog

Use application callback instead of standard error stream for logging
This commit is contained in:
Cameron Gutman 2017-06-11 13:22:51 -07:00 committed by GitHub
commit fdb256185a
3 changed files with 10 additions and 13 deletions

View File

@ -35,6 +35,7 @@ static void fakeClConnectionStarted(void) {}
static void fakeClConnectionTerminated(long errorCode) {} static void fakeClConnectionTerminated(long errorCode) {}
static void fakeClDisplayMessage(const char* message) {} static void fakeClDisplayMessage(const char* message) {}
static void fakeClDisplayTransientMessage(const char* message) {} static void fakeClDisplayTransientMessage(const char* message) {}
static void fakeClLogMessage(const char* format, ...) {}
static CONNECTION_LISTENER_CALLBACKS fakeClCallbacks = { static CONNECTION_LISTENER_CALLBACKS fakeClCallbacks = {
.stageStarting = fakeClStageStarting, .stageStarting = fakeClStageStarting,
@ -44,6 +45,7 @@ static CONNECTION_LISTENER_CALLBACKS fakeClCallbacks = {
.connectionTerminated = fakeClConnectionTerminated, .connectionTerminated = fakeClConnectionTerminated,
.displayMessage = fakeClDisplayMessage, .displayMessage = fakeClDisplayMessage,
.displayTransientMessage = fakeClDisplayTransientMessage, .displayTransientMessage = fakeClDisplayTransientMessage,
.logMessage = fakeClLogMessage,
}; };
void fixupMissingCallbacks(PDECODER_RENDERER_CALLBACKS* drCallbacks, PAUDIO_RENDERER_CALLBACKS* arCallbacks, void fixupMissingCallbacks(PDECODER_RENDERER_CALLBACKS* drCallbacks, PAUDIO_RENDERER_CALLBACKS* arCallbacks,
@ -116,5 +118,8 @@ void fixupMissingCallbacks(PDECODER_RENDERER_CALLBACKS* drCallbacks, PAUDIO_REND
if ((*clCallbacks)->displayTransientMessage == NULL) { if ((*clCallbacks)->displayTransientMessage == NULL) {
(*clCallbacks)->displayTransientMessage = fakeClDisplayTransientMessage; (*clCallbacks)->displayTransientMessage = fakeClDisplayTransientMessage;
} }
if ((*clCallbacks)->logMessage == NULL) {
(*clCallbacks)->logMessage = fakeClLogMessage;
}
} }
} }

View File

@ -232,6 +232,9 @@ typedef void(*ConnListenerDisplayMessage)(const char* message);
// while streaming // while streaming
typedef void(*ConnListenerDisplayTransientMessage)(const char* message); typedef void(*ConnListenerDisplayTransientMessage)(const char* message);
// This callback is invoked to log debug message
typedef void(*ConnListenerLogMessage)(const char* format, ...);
typedef struct _CONNECTION_LISTENER_CALLBACKS { typedef struct _CONNECTION_LISTENER_CALLBACKS {
ConnListenerStageStarting stageStarting; ConnListenerStageStarting stageStarting;
ConnListenerStageComplete stageComplete; ConnListenerStageComplete stageComplete;
@ -240,6 +243,7 @@ typedef struct _CONNECTION_LISTENER_CALLBACKS {
ConnListenerConnectionTerminated connectionTerminated; ConnListenerConnectionTerminated connectionTerminated;
ConnListenerDisplayMessage displayMessage; ConnListenerDisplayMessage displayMessage;
ConnListenerDisplayTransientMessage displayTransientMessage; ConnListenerDisplayTransientMessage displayTransientMessage;
ConnListenerLogMessage logMessage;
} CONNECTION_LISTENER_CALLBACKS, *PCONNECTION_LISTENER_CALLBACKS; } CONNECTION_LISTENER_CALLBACKS, *PCONNECTION_LISTENER_CALLBACKS;
// Use this function to zero the connection callbacks when allocated on the stack or heap // Use this function to zero the connection callbacks when allocated on the stack or heap

View File

@ -35,20 +35,8 @@
#include <stdio.h> #include <stdio.h>
#include "Limelight.h" #include "Limelight.h"
#if defined(LC_WINDOWS)
void LimelogWindows(char* Format, ...);
#define Limelog(s, ...) \ #define Limelog(s, ...) \
LimelogWindows(s, ##__VA_ARGS__) ListenerCallbacks.logMessage(s, ##__VA_ARGS__)
#elif defined(__vita__)
#define Limelog sceClibPrintf
#elif defined(LC_ANDROID)
#include <android/log.h>
#define Limelog(s, ...) \
__android_log_print(ANDROID_LOG_INFO, "moonlight-common-c", s, ##__VA_ARGS__)
#else
#define Limelog(s, ...) \
fprintf(stderr, s, ##__VA_ARGS__)
#endif
#if defined(LC_WINDOWS) #if defined(LC_WINDOWS)
#include <crtdbg.h> #include <crtdbg.h>