From: Andrew <no...@fl...> - 2010-02-22 02:19:50
|
On Sun, Feb 21, 2010 at 02:44:33PM -0500, Andrew wrote: > > > > > That said, it might be useful to add an "UNDO" and "REDO" and perhaps a > > > few other essentials to the config. > > > > As you seem to have some experience with lirc and RG, what are the other > > essentials you are missing? > > not sure. I have made several attempts over the years to grab RG by the horns (a-hem, by the keyboards, really -- sorry, couldn't resist), but due to glitches on my end and one missing component or another, have not really graduated past "tinkerer" (hoping to finally change that this time soon). > > > It seems to be easy to connect a button on the remote to any already > > available RG slot. So if I find that UNDO and REDO slot it should be no > > problem to add these ... > > well, there are references to both "undo()" and "redo()" in > src/gui/application/TranzportClient.* files > > so, I added undo and redo to all the listings of slots and signals within > > src/gui/application/LircCommander.* > > as well as my .lircrc, of course (with new config names "UNDO" and "REDO"). > The source then compiled without errors, and LIRC continued to work but only with the original set of singals/slots, my two don't seem to work.... something undeclared somewhere? (but then the compiler would complain, right?) OK -- I guess I'm not even capable of mindless aping/mimicking I altered my own code, previously quoted here: from... > connect(this, SIGNAL(undo()), > m_rgGUIApp, SLOT(undo()) ); > connect(this, SIGNAL(redo()), > m_rgGUIApp, SLOT(redo()) ); to.... connect(this, SIGNAL(undo()), CommandHistory::getInstance(), SLOT(undo()) ); connect(this, SIGNAL(redo()), CommandHistory::getInstance(), SLOT(redo()) ); (and also included the proper header as it is included in the TranzportClient.cpp #include "document/CommandHistory.h" ) ---- However, (in debug mode), rosegarden now says: --- debug quote: ------------- [generic] LircCommander::slotExecute: invoking command: UNDO [generic] LircCommander::slotExecute: invoking command: UNDO failed (command not defined in LircCommander::commands[]) ------ end quote --------------- But! I debuggingly added "emit undo()" next to another working command (trackMute()), like so: case cmd_trackMute: emit trackMute(); emit undo(); then compiled, and result: Clicking the LIRC button mapped to trackMute (TRACK-MUTE), now SUCCESSFULLY TRIGGERS a Rosegarden "Undo" ! So, the failure seems to be with "LircCommander::commands[]", but I cannot see (not surprisingly, with my near-zero knowledge of C/C++) why my additions to the "LircCommander::commands[]" declaration list is inadequate... Thorsten, can you slam-dunk this one in? thanks! andrew PS (i'm not subscribed to the devel list; didn't think this calls for that yet, but if this continues (unlikely), perhaps I should) > ---------------------- > > Regarding controls over the network: I do not see a dire, sine-qua-non need for such, but have a vague notion such a feature might yield interesting things, creative solutions... if the coding isn't tedious, i vot yes on it. > > ----------------------------------- > code changes, FWIW : > > in file LircCommander.h: > > signals: > <snip most of list> > void trackRecord(); > void undo(); > void redo(); > > -------------- > enum commandCode { > <snip most of list> > cmd_trackRecord, > cmd_undo, > cmd_redo, > }; > > > in file LircCommander.cpp: > > LircCommander::LircCommander(LircClient *lirc, RosegardenMainWindow *rgGUIApp) > : QObject() > { > m_lirc = lirc; > m_rgGUIApp = rgGUIApp; > > <skip most of items...> > > connect(this, SIGNAL(trackRecord()), > m_rgGUIApp, SLOT(slotToggleRecordCurrentTrack()) ); > connect(this, SIGNAL(undo()), > m_rgGUIApp, SLOT(undo()) ); > connect(this, SIGNAL(redo()), > m_rgGUIApp, SLOT(redo()) ); > > } > > ------------------------ > > LircCommander::command LircCommander::commands[] = > { > > <skip most of items> > > { "TRACK-RECORD", cmd_trackRecord }, > { "UNDO", cmd_undo }, > { "REDO", cmd_redo }, > > }; > > > ---------------------- > > if (res != NULL) > { > switch (res->code) > { > > <skip most of items> > > case cmd_trackRecord: > emit trackRecord(); > break; > case cmd_undo: > emit undo(); > break; > case cmd_redo: > emit redo(); > break; > > --------- > > > ------------------------------------------------------------------------------ > Download Intel® Parallel Studio Eval > Try the new software tools for yourself. Speed compiling, find bugs > proactively, and fine-tune applications for parallel performance. > See why Intel Parallel Studio got high marks during beta. > http://p.sf.net/sfu/intel-sw-dev > _______________________________________________ > Rosegarden-user mailing list > Ros...@li... - use the link below to unsubscribe > https://lists.sourceforge.net/lists/listinfo/rosegarden-user -- |