#include "qSystem.h"
#include "mainwgt.h"
#include <stdio.h>

qSystem::qSystem()
{
    receiver = 0;
}

void qSystem::inform(const char *fmt, ...)
{
    static char lastbuf[1024] = { 0 };
    char buf[1024];

    va_list ap;
    va_start(ap, fmt);
    vsprintf(buf, fmt, ap);
    va_end(ap);
    if (strcmp(lastbuf, buf))
    {
        //temp for plugin debug
        fprintf(stderr,"(theSystem)");
        vfprintf(stderr, fmt, ap);
        receiver->sys_mesg(buf);
        strcpy(lastbuf, buf);
    }
}

void qSystem::error(const char *fmt, ...)
{
    static char lastbuf[1024] = { 0 };
    char buf[1024];

    va_list ap;
    va_start(ap, fmt);
    vsprintf(buf, fmt, ap);
    va_end(ap);
    if (strcmp(lastbuf, buf))
    {
        //temp for plugin debug
        fprintf(stderr,"(theSystem)");
        vfprintf(stderr, fmt, ap);
        receiver->sys_mesg(buf);
        strcpy(lastbuf, buf);
    }
}

void qSystem::warn(const char *fmt, ...)
{
    static char lastbuf[1024] = { 0 };
    char buf[1024];

    va_list ap;
    va_start(ap, fmt);
    vsprintf(buf, fmt, ap);
    va_end(ap);
    if (strcmp(lastbuf, buf))
    {
        //temp for plugin debug
        fprintf(stderr,"(theSystem)");
        vfprintf(stderr, fmt, ap);
        receiver->sys_mesg(buf);
        strcpy(lastbuf, buf);
    }
}

void qSystem::debug(const char *fmt, ...)
{
    static char lastbuf[1024] = { 0 };
    char buf[1024];

    va_list ap;
    va_start(ap, fmt);
    vsprintf(buf, fmt, ap);
    va_end(ap);
    if (strcmp(lastbuf, buf))
    {
        //temp for plugin debug
        fprintf(stderr,"(theSystem)");
        vfprintf(stderr, fmt, ap);
        receiver->sys_mesg(buf);
        strcpy(lastbuf, buf);
    }
}

void qSystem::set_receiver(mainWgt* m)
{
    receiver = m;
}


