Added active? function, fixed CRLF line endings

This commit is contained in:
Mathew Velasquez 2016-11-04 00:04:27 -04:00
parent 78c4c3b9bf
commit 6312ce865c
4 changed files with 336 additions and 326 deletions

View File

@ -11,6 +11,7 @@ static SDL_Thread *thread = NULL;
static SDL_mutex *mutex = NULL; static SDL_mutex *mutex = NULL;
static volatile char message_buffer[OUT_BUFFER_SIZE]; static volatile char message_buffer[OUT_BUFFER_SIZE];
static volatile int message_len = 0; static volatile int message_len = 0;
static volatile bool active = false;
int server_thread(void *data) int server_thread(void *data)
{ {
@ -27,6 +28,7 @@ int server_thread(void *data)
ConnectNamedPipe(pipe, NULL); ConnectNamedPipe(pipe, NULL);
SDL_LockMutex(mutex); SDL_LockMutex(mutex);
WriteFile(pipe, (const void*)message_buffer, OUT_BUFFER_SIZE, NULL, NULL); WriteFile(pipe, (const void*)message_buffer, OUT_BUFFER_SIZE, NULL, NULL);
active = true;
SDL_UnlockMutex(mutex); SDL_UnlockMutex(mutex);
FlushFileBuffers(pipe); FlushFileBuffers(pipe);
DisconnectNamedPipe(pipe); DisconnectNamedPipe(pipe);
@ -59,6 +61,7 @@ RB_METHOD(journalSet)
message_len = len; message_len = len;
SDL_UnlockMutex(mutex); SDL_UnlockMutex(mutex);
if (pipe != INVALID_HANDLE_VALUE) { if (pipe != INVALID_HANDLE_VALUE) {
active = true;
WriteFile(pipe, (const void*)message_buffer, OUT_BUFFER_SIZE, NULL, NULL); WriteFile(pipe, (const void*)message_buffer, OUT_BUFFER_SIZE, NULL, NULL);
FlushFileBuffers(pipe); FlushFileBuffers(pipe);
CloseHandle(pipe); CloseHandle(pipe);
@ -67,10 +70,16 @@ RB_METHOD(journalSet)
return Qnil; return Qnil;
} }
RB_METHOD(journalActive)
{
return active ? Qtrue : Qfalse;
}
void journalBindingInit() void journalBindingInit()
{ {
mutex = SDL_CreateMutex(); mutex = SDL_CreateMutex();
VALUE module = rb_define_module("Journal"); VALUE module = rb_define_module("Journal");
_rb_define_module_function(module, "set", journalSet); _rb_define_module_function(module, "set", journalSet);
_rb_define_module_function(module, "active?", journalActive);
} }

View File

@ -70,7 +70,7 @@ DWORD WINAPI ipc_thread(LPVOID lpParam)
&& len == IN_BUFFER_SIZE) && len == IN_BUFFER_SIZE)
{ {
WaitForSingleObject(image_mutex, INFINITE); WaitForSingleObject(image_mutex, INFINITE);
if (strcmp(message, "default") == 0) { if (*message == 0) {
exit(0); exit(0);
} }
loadImage(message); loadImage(message);
@ -109,6 +109,7 @@ int do_journal()
if (ReadFile(pipe, (void*)message, IN_BUFFER_SIZE, &len, NULL) if (ReadFile(pipe, (void*)message, IN_BUFFER_SIZE, &len, NULL)
&& len == IN_BUFFER_SIZE) && len == IN_BUFFER_SIZE)
{ {
if (*message)
loadImage(message); loadImage(message);
} }
CloseHandle(pipe); CloseHandle(pipe);