1 /************************************************************************ 2 * 3 * Copyright 2010-2011 Jakob Leben (jakob.leben@gmail.com) 4 * 5 * This file is part of SuperCollider Qt GUI. 6 * 7 * This program is free software: you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License as published by 9 * the Free Software Foundation, either version 2 of the License, or 10 * (at your option) any later version. 11 * 12 * This program is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License 18 * along with this program. If not, see <http://www.gnu.org/licenses/>. 19 * 20 ************************************************************************/ 21 22 namespace QtCollider { 23 int debugLevel(); 24 void setDebugLevel(int); 25 } 26 27 #include <QString> 28 29 extern void postfl(const char* fmt, ...); 30 extern void error(const char* fmt, ...); 31 32 #ifdef QC_DEBUG 33 # define qcDebugMsg(LEVEL, MSG) \ 34 if (LEVEL <= QtCollider::debugLevel()) { \ 35 postfl("Qt: %s\n", QString(MSG).toStdString().c_str()); \ 36 } 37 #else 38 # define qcDebugMsg(LEVEL, MSG) 39 #endif 40 41 #define qcSCObjectDebugMsg(LEVEL, OBJ, MSG) \ 42 qcDebugMsg(LEVEL, QStringLiteral("[%1] %2").arg(OBJ ? slotRawSymbol(&OBJ->classptr->name)->name : "null").arg(MSG)) 43 44 #define qcErrorMsg(MSG) error("Qt: %s\n", QString(MSG).toStdString().c_str()) 45 46 #define qcWarningMsg(MSG) postfl("Qt: %s\n", QString(MSG).toStdString().c_str()) 47