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

Reply via email to