OSDN Git Service

Moved JobObject as well as the remaining GUI functions into the MUtilities library.
[lamexp/LameXP.git] / src / Global_IPC.cpp
index 5a5737d..ac2b960 100644 (file)
@@ -1,6 +1,6 @@
 ///////////////////////////////////////////////////////////////////////////////
 // LameXP - Audio Encoder Front-End
-// Copyright (C) 2004-2013 LoRd_MuldeR <MuldeR2@GMX.de>
+// Copyright (C) 2004-2014 LoRd_MuldeR <MuldeR2@GMX.de>
 //
 // This program is free software; you can redistribute it and/or modify
 // it under the terms of the GNU General Public License as published by
 
 #include "Global.h"
 
+//MUtils
+#include <MUtils/Global.h>
+#include <MUtils/Exception.h>
+
 //Qt includes
 #include <QSharedMemory>
 #include <QSystemSemaphore>
@@ -106,41 +110,41 @@ int lamexp_init_ipc(void)
        if(g_lamexp_ipc_ptr.semaphore_read->error() != QSystemSemaphore::NoError)
        {
                QString errorMessage = g_lamexp_ipc_ptr.semaphore_read->errorString();
-               LAMEXP_DELETE(g_lamexp_ipc_ptr.semaphore_read);
-               LAMEXP_DELETE(g_lamexp_ipc_ptr.semaphore_write);
-               LAMEXP_DELETE(g_lamexp_ipc_ptr.semaphore_read_mutex);
-               LAMEXP_DELETE(g_lamexp_ipc_ptr.semaphore_write_mutex);
-               qFatal("Failed to create system smaphore: %s", QUTF8(errorMessage));
+               MUTILS_DELETE(g_lamexp_ipc_ptr.semaphore_read);
+               MUTILS_DELETE(g_lamexp_ipc_ptr.semaphore_write);
+               MUTILS_DELETE(g_lamexp_ipc_ptr.semaphore_read_mutex);
+               MUTILS_DELETE(g_lamexp_ipc_ptr.semaphore_write_mutex);
+               qFatal("Failed to create system smaphore: %s", MUTILS_UTF8(errorMessage));
                return -1;
        }
        if(g_lamexp_ipc_ptr.semaphore_write->error() != QSystemSemaphore::NoError)
        {
                QString errorMessage = g_lamexp_ipc_ptr.semaphore_write->errorString();
-               LAMEXP_DELETE(g_lamexp_ipc_ptr.semaphore_read);
-               LAMEXP_DELETE(g_lamexp_ipc_ptr.semaphore_write);
-               LAMEXP_DELETE(g_lamexp_ipc_ptr.semaphore_read_mutex);
-               LAMEXP_DELETE(g_lamexp_ipc_ptr.semaphore_write_mutex);
-               qFatal("Failed to create system smaphore: %s", QUTF8(errorMessage));
+               MUTILS_DELETE(g_lamexp_ipc_ptr.semaphore_read);
+               MUTILS_DELETE(g_lamexp_ipc_ptr.semaphore_write);
+               MUTILS_DELETE(g_lamexp_ipc_ptr.semaphore_read_mutex);
+               MUTILS_DELETE(g_lamexp_ipc_ptr.semaphore_write_mutex);
+               qFatal("Failed to create system smaphore: %s", MUTILS_UTF8(errorMessage));
                return -1;
        }
        if(g_lamexp_ipc_ptr.semaphore_read_mutex->error() != QSystemSemaphore::NoError)
        {
                QString errorMessage = g_lamexp_ipc_ptr.semaphore_read_mutex->errorString();
-               LAMEXP_DELETE(g_lamexp_ipc_ptr.semaphore_read);
-               LAMEXP_DELETE(g_lamexp_ipc_ptr.semaphore_write);
-               LAMEXP_DELETE(g_lamexp_ipc_ptr.semaphore_read_mutex);
-               LAMEXP_DELETE(g_lamexp_ipc_ptr.semaphore_write_mutex);
-               qFatal("Failed to create system smaphore: %s", QUTF8(errorMessage));
+               MUTILS_DELETE(g_lamexp_ipc_ptr.semaphore_read);
+               MUTILS_DELETE(g_lamexp_ipc_ptr.semaphore_write);
+               MUTILS_DELETE(g_lamexp_ipc_ptr.semaphore_read_mutex);
+               MUTILS_DELETE(g_lamexp_ipc_ptr.semaphore_write_mutex);
+               qFatal("Failed to create system smaphore: %s", MUTILS_UTF8(errorMessage));
                return -1;
        }
        if(g_lamexp_ipc_ptr.semaphore_write_mutex->error() != QSystemSemaphore::NoError)
        {
                QString errorMessage = g_lamexp_ipc_ptr.semaphore_write_mutex->errorString();
-               LAMEXP_DELETE(g_lamexp_ipc_ptr.semaphore_read);
-               LAMEXP_DELETE(g_lamexp_ipc_ptr.semaphore_write);
-               LAMEXP_DELETE(g_lamexp_ipc_ptr.semaphore_read_mutex);
-               LAMEXP_DELETE(g_lamexp_ipc_ptr.semaphore_write_mutex);
-               qFatal("Failed to create system smaphore: %s", QUTF8(errorMessage));
+               MUTILS_DELETE(g_lamexp_ipc_ptr.semaphore_read);
+               MUTILS_DELETE(g_lamexp_ipc_ptr.semaphore_write);
+               MUTILS_DELETE(g_lamexp_ipc_ptr.semaphore_read_mutex);
+               MUTILS_DELETE(g_lamexp_ipc_ptr.semaphore_write_mutex);
+               qFatal("Failed to create system smaphore: %s", MUTILS_UTF8(errorMessage));
                return -1;
        }
 
@@ -158,16 +162,16 @@ int lamexp_init_ipc(void)
                        else
                        {
                                QString errorMessage = g_lamexp_ipc_ptr.sharedmem->errorString();
-                               LAMEXP_DELETE(g_lamexp_ipc_ptr.sharedmem);
-                               qFatal("Failed to attach to shared memory: %s", QUTF8(errorMessage));
+                               MUTILS_DELETE(g_lamexp_ipc_ptr.sharedmem);
+                               qFatal("Failed to attach to shared memory: %s", MUTILS_UTF8(errorMessage));
                                return -1;
                        }
                }
                else
                {
                        QString errorMessage = g_lamexp_ipc_ptr.sharedmem->errorString();
-                       LAMEXP_DELETE(g_lamexp_ipc_ptr.sharedmem);
-                       qFatal("Failed to create shared memory: %s", QUTF8(errorMessage));
+                       MUTILS_DELETE(g_lamexp_ipc_ptr.sharedmem);
+                       qFatal("Failed to create shared memory: %s", MUTILS_UTF8(errorMessage));
                        return -1;
                }
        }
@@ -189,7 +193,7 @@ void lamexp_ipc_send(unsigned int command, const char* message)
 
        if(!g_lamexp_ipc_ptr.sharedmem || !g_lamexp_ipc_ptr.semaphore_read || !g_lamexp_ipc_ptr.semaphore_write || !g_lamexp_ipc_ptr.semaphore_read_mutex || !g_lamexp_ipc_ptr.semaphore_write_mutex)
        {
-               THROW("Shared memory for IPC not initialized yet.");
+               MUTILS_THROW("Shared memory for IPC not initialized yet.");
        }
 
        lamexp_ipc_data_t ipc_data;
@@ -226,7 +230,7 @@ void lamexp_ipc_read(unsigned int *command, char* message, size_t buffSize)
        
        if(!g_lamexp_ipc_ptr.sharedmem || !g_lamexp_ipc_ptr.semaphore_read || !g_lamexp_ipc_ptr.semaphore_write || !g_lamexp_ipc_ptr.semaphore_read_mutex || !g_lamexp_ipc_ptr.semaphore_write_mutex)
        {
-               THROW("Shared memory for IPC not initialized yet.");
+               MUTILS_THROW("Shared memory for IPC not initialized yet.");
        }
 
        lamexp_ipc_data_t ipc_data;
@@ -255,24 +259,29 @@ void lamexp_ipc_read(unsigned int *command, char* message, size_t buffSize)
        }
 }
 
-/*
- * Exit and clean-up IPC
- */
-void lamexp_ipc_exit(void)
+///////////////////////////////////////////////////////////////////////////////
+// INITIALIZATION
+///////////////////////////////////////////////////////////////////////////////
+
+extern "C" void _lamexp_global_init_ipcom(void)
 {
-       if(g_lamexp_ipc_ptr.sharedmem) g_lamexp_ipc_ptr.sharedmem->detach();
-       LAMEXP_DELETE(g_lamexp_ipc_ptr.sharedmem);
-       LAMEXP_DELETE(g_lamexp_ipc_ptr.semaphore_read);
-       LAMEXP_DELETE(g_lamexp_ipc_ptr.semaphore_write);
-       LAMEXP_DELETE(g_lamexp_ipc_ptr.semaphore_read_mutex);
-       LAMEXP_DELETE(g_lamexp_ipc_ptr.semaphore_write_mutex);
+       MUTILS_ZERO_MEMORY(g_lamexp_ipc_ptr);
 }
 
 ///////////////////////////////////////////////////////////////////////////////
-// INITIALIZATION
+// FINALIZATION
 ///////////////////////////////////////////////////////////////////////////////
 
-extern "C" void _lamexp_global_init_ipcom(void)
+extern "C" void _lamexp_global_free_ipcom(void)
 {
-       LAMEXP_ZERO_MEMORY(g_lamexp_ipc_ptr);
+       if(g_lamexp_ipc_ptr.sharedmem)
+       {
+               g_lamexp_ipc_ptr.sharedmem->detach();
+       }
+
+       MUTILS_DELETE(g_lamexp_ipc_ptr.sharedmem);
+       MUTILS_DELETE(g_lamexp_ipc_ptr.semaphore_read);
+       MUTILS_DELETE(g_lamexp_ipc_ptr.semaphore_write);
+       MUTILS_DELETE(g_lamexp_ipc_ptr.semaphore_read_mutex);
+       MUTILS_DELETE(g_lamexp_ipc_ptr.semaphore_write_mutex);
 }