Here's a simple patch that makes RG send an MMC LOCATE command when
the playback position is reset to 00:00:00.
Now clicking the "rewind to beginning" button in the RG transport
rewinds my multitrack too :-))
Is resetPlayback always sent when the transport jumps about? If so, I
could extend this to send LOCATEs to the multitrack at other times.
Vince
Index: AlsaDriver.cpp
***************
*** 1952,1961 ****
--- 1955,1980 ----
{
#ifdef DEBUG_ALSA
std::cerr << "\n\nAlsaDriver - resetPlayback(" << position << ")" << std::endl;
#endif
+ if ((position == RealTime::zeroTime) && (getMMCStatus() == TRANSPORT_MASTER))
+ {
+ std::cerr << "\n Jump back using MMC locate" << std::endl;
+ unsigned char locateDataArr[7] = {
+ 0x06,
+ 0x01,
+ 0x60 + 0x00, // 30ND here + hh
+ 0x00, // mm
+ 0x00, // ss
+ 0x00, // frames
+ 0x00 // subframes
+ };
+
+ sendMMC(127, MIDI_MMC_LOCATE, true, std::string((const char *) locateDataArr, 7));
+ }
+
m_playStartPosition = position;
m_alsaPlayStartTime = getAlsaTime();
// Reset note offs to correct positions
//
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Rosegarden-devel mailing list
[email protected] - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel