[STATE][Qt] csp_state_utils:: use QObject's messaging system for logging.
#endif
#endif
#endif
-#ifdef _USE_OT
+#ifdef _USE_QT
#define USE_ZLIB
#endif
* Dec 30, 2014 Move from XM7/SDL, this was Ohta's original code.
* Licence : GPLv2
*/
-
+#include <QObject>
#include <QMutex>
#include <QMutexLocker>
#include "menu_flags.h"
#include "../osd.h"
-CSP_Logger::CSP_Logger(bool b_syslog, bool cons, const char *devname)
+CSP_Logger::CSP_Logger(QObject *parent, bool b_syslog, bool cons, const char *devname) : QObject(parent)
{
lock_mutex = new QMutex(QMutex::Recursive);
this->reset();
this->open(b_syslog, cons, devname);
+ level_state_out_record = false;
+ level_state_out_syslog = false;
+ level_state_out_console = false;
}
level_dev_out_console[i][j] = true;
}
}
- level_state_out_record = false;
- level_state_out_syslog = false;
- level_state_out_console = false;
}
//extern class USING_FLAGS *using_flags;
va_end(ap);
}
+void CSP_Logger::do_debug_log(int level, int domain_num, QString mes)
+{
+ debug_log(level, domain_num, (char *)mes.toUtf8().constData());
+}
+
void CSP_Logger::debug_log(int level, int domain_num, char *strbuf)
{
struct tm *timedat;
} else {
level_flag |= LOG_DEBUG;
}
-#endif
+#endif
char *p;
char *p_bak;
const char delim[2] = "\n";
protected:
public:
- CSP_Logger(bool b_syslog, bool cons, const char *devname);
+ CSP_Logger(QObject *parent, bool b_syslog, bool cons, const char *devname);
~CSP_Logger();
void set_osd(OSD *p) { p_osd = p; }
void open(bool b_syslog, bool cons, const char *devname);
int64_t write_log(const _TCHAR *name, const char *domain_name = NULL, bool utf8 = true, bool forget = false);
int64_t copy_log(char *buffer, int64_t buf_size, int64_t *lines = NULL, char *domainname = NULL, bool utf8 = true, bool forget = false, int64_t start = 0, int64_t start_size = 0, int64_t *end_line = 0);
void *get_raw_data(bool forget = false, int64_t start = 0, int64_t *end_line = NULL);
+public slots:
+ void do_debug_log(int level, int domain_num, QString mes);
};
QT_END_NAMESPACE
return mb;
}
+#include "config.h"
+#include "csp_logger.h"
+#if defined(_USE_QT)
+#include <QObject>
+#include <QString>
+csp_state_utils::csp_state_utils(int _version, int device_id, const _TCHAR *classname, CSP_Logger* p_logger) : QObject(NULL)
+#else
csp_state_utils::csp_state_utils(int _version, int device_id, const _TCHAR *classname, CSP_Logger* p_logger)
+#endif
{
listptr.clear();
crc_value = 0;
add_entry(_T("INTERNAL_VER"), &internal_version_bak);
fio = NULL;
+#if defined(_USE_QT)
+ if(p_logger != NULL) connect(this, SIGNAL(sig_debug_log(int, int, QString)), p_logger, SLOT(do_debug_log(int, int, QString)), Qt::QueuedConnection);
+#endif
}
csp_state_utils::~csp_state_utils()
* With MinGW and DLL linker, not able top find extern symbols.
*/
-#include "config.h"
-#include "csp_logger.h"
void csp_state_utils::out_debug_log(const char *fmt, ...)
{
- if(logger == NULL) return;
// Temporally disabled 20180618
//#if !defined(__MINGW32__) && !defined(__MINGW64__)
char strbuf[8192];
va_list ap;
va_start(ap, fmt);
vsnprintf(strbuf, 8192, fmt, ap);
- logger->debug_log(CSP_LOG_DEBUG, CSP_LOG_TYPE_VM_STATE, strbuf);
- //printf("%s\n", strbuf);
+#if defined(_USE_QT)
+ QString mes = QString::fromUtf8(strbuf);
+ emit sig_debug_log(CSP_LOG_DEBUG, CSP_LOG_TYPE_VM_STATE, mes);
+#else
+ /* PUT MESSAGE HANDLER HERE */
+#endif
va_end(ap);
//#endif
}
#define _CSP_STATE_SUB_H
#include "common.h"
#include "fileio.h"
-
+#include "fifo.h"
#include <string>
#include <list>
#include <typeindex>
#include <map>
#include "state_data.h"
-
-enum {
+#if defined(_USE_QT)
+#include <QObject>
+#include <QString>
+#endif
+typedef enum csp_saver_type_t {
csp_saver_entry_int = 0,
csp_saver_entry_uint8,
csp_saver_entry_int8,
class CSP_Logger;
+
+#if defined(_USE_QT)
+ QT_BEGIN_NAMESPACE
+class DLL_PREFIX csp_state_utils : public QObject {
+#else
class DLL_PREFIX csp_state_utils {
+#endif
+#if defined(_USE_QT)
+ Q_OBJECT
+#endif
protected:
typedef union {
int64_t s;
{ typeid(bool), csp_saver_entry_bool },
{ typeid(void), csp_saver_entry_void },
{ typeid(FIFO), csp_saver_entry_fifo },
- { typeid(cur_time_t), csp_saver_entry_cur_time_t },
+ { typeid(cur_time_t), csp_saver_entry_cur_time_t }
};
public:
csp_state_utils(int _version = 1, int device_id = 1, const _TCHAR *classname = NULL, CSP_Logger* p_logger = NULL);
void get_class_name(_TCHAR *buf, int len);
bool save_state(FILEIO *__fio, uint32_t *pcrc = NULL);
bool load_state(FILEIO *__fio, uint32_t *pcrc = NULL);
+#if defined(_USE_QT)
+signals:
+ int sig_debug_log(int, int, QString);
+#endif
};
-
+#if defined(_USE_QT)
+ QT_END_NAMESPACE
+#endif
#define DECL_STATE_ENTRY0(_n_name, __list) { \
__list->add_entry((const _TCHAR *)_T(#_n_name), &_n_name); \