Mixxx

/home/maxime/Projets/Mixxx/1.10/mixxx/src/script/scriptrecorder.cpp

Go to the documentation of this file.
00001 #include "signalrecorder.h"
00002 #include "scriptrecorder.h"
00003 #include "numberrecorder.h"
00004 #include "trackrecorder.h"
00005 #include "interp.h"
00006 
00007 #ifdef __LUA__
00008 #include "lua/luarecorder.h"
00009 #endif
00010 
00011 ScriptRecorder::ScriptRecorder(Track* track) {
00012         m_track = track;
00013         
00014         m_all = new QLinkedList<SignalRecorder*>();
00015         install("[Master]", "crossfader");
00016         install("[Master]", "balance");
00017         install("[Master]", "volume");
00018         installRaw("[Master]", "headVolume");
00019         installRaw("[Master]", "headMix");
00020         
00021         install("[Channel1]", "volume");
00022         install("[Channel2]", "volume");
00023         install("[Channel1]", "pregain");
00024         install("[Channel2]", "pregain");
00025         install("[Channel1]", "rate");
00026         install("[Channel2]", "rate");
00027         install("[Channel1]", "filterLow");
00028         install("[Channel1]", "filterMid");
00029         install("[Channel1]", "filterHigh");
00030         install("[Channel2]", "filterLow");
00031         install("[Channel2]", "filterMid");
00032         install("[Channel2]", "filterHigh");
00033 
00034         installTrack(1);
00035         installTrack(2);
00036 
00037         installRaw("[Channel1]", "play");
00038         installRaw("[Channel2]", "play");
00039         installRaw("[Channel1]", "reverse");
00040         installRaw("[Channel2]", "reverse");
00041         installRaw("[Channel1]", "fwd");
00042         installRaw("[Channel2]", "fwd");
00043         installRaw("[Channel1]", "back");
00044         installRaw("[Channel2]", "back");
00045 
00046         install("[Flanger]", "lfoDepth");
00047         install("[Flanger]", "lfoDelay");
00048         install("[Flanger]", "lfoPeriod");
00049 
00050         installRaw("[Channel1]", "flanger");
00051         installRaw("[Channel2]", "flanger");
00052 
00053         installRaw("[Channel1]", "loop");
00054         installRaw("[Channel2]", "loop");
00055 
00056         installRaw("[Channel1]", "cue_set");
00057         installRaw("[Channel2]", "cue_set");
00058         installRaw("[Channel1]", "cue_preview");
00059         installRaw("[Channel2]", "cue_preview");
00060         
00061 }
00062 
00063 void ScriptRecorder::install(const char* group, const char* name) {
00064         m_all->append(new NumberRecorder(group, name)); 
00065 }
00066 
00067 void ScriptRecorder::installRaw(const char* group, const char* name) {
00068         m_all->append(new NumberRecorder(group, name, INTERP_NONE));
00069 }
00070 
00071 void ScriptRecorder::installTrack(int channel) {
00072         m_all->append(new TrackRecorder(m_track, channel));
00073 }
00074 
00075 ScriptRecorder::~ScriptRecorder() {
00076 }
00077 
00078 void ScriptRecorder::startRecord() {
00079         SDateTime* start = SDateTime::now();
00080 
00081         QLinkedList<SignalRecorder*>::iterator iter;
00082 
00083         for (iter = m_all->begin(); iter != m_all->end(); iter++) {
00084                 (*iter)->startRecord(start);
00085         }
00086 }
00087 
00088 void ScriptRecorder::stopRecord() {
00089 
00090         QLinkedList<SignalRecorder*>::iterator iter;
00091         
00092         for (iter = m_all->begin(); iter != m_all->end(); iter++) {
00093                 (*iter)->stopRecord();
00094     }
00095 }
00096 
00097 Macro* ScriptRecorder::getMacro() {
00098 #ifdef __LUA__
00099         Macro* rmacro = new Macro(Macro::LANG_LUA, "Recorded Macro");
00100         QString *macro = new QString();
00101         LuaRecorder *rec = new LuaRecorder(macro);
00102 #else
00103         qDebug("Lua support required for recording macros");
00104         return NULL;
00105 #endif
00106 
00107 #ifdef __LUA__
00108         SignalRecorder *ptr;
00109         for (ptr = m_all->first(); ptr; ptr = m_all->next()) {
00110                 ptr->writeToScript(rec);
00111         }
00112 
00113         delete rec;
00114         rmacro->setScript(*macro);
00115         delete macro;
00116         return rmacro;
00117 #endif
00118 }
00119 
00120 void ScriptRecorder::reset() {
00121         QLinkedList<SignalRecorder*>::iterator iter;
00122         
00123         for (iter = m_all->begin(); iter != m_all->end(); iter++) {
00124                 (*iter)->reset();
00125     }
00126 }
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines