changeset 951:df18b664f4e0 trunk

[svn] D00 Vibrato and Slides fix by Dennis Lindroos (from upstream CVS).
author chainsaw
date Fri, 13 Apr 2007 08:07:32 -0700
parents 668110a6a412
children 87666f9bf6d0
files ChangeLog src/adplug/core/d00.cxx src/adplug/core/d00.h
diffstat 3 files changed, 18 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Fri Apr 13 05:23:27 2007 -0700
+++ b/ChangeLog	Fri Apr 13 08:07:32 2007 -0700
@@ -1,3 +1,10 @@
+2007-04-13 12:23:27 +0000  Giacomo Lozito <james@develia.org>
+  revision [2034]
+  - curl: do NOT use signals with the new multi-thread layout, and take care of the url string value
+  trunk/src/curl/curl.c |   14 +++++++++-----
+  1 file changed, 9 insertions(+), 5 deletions(-)
+
+
 2007-04-12 22:03:53 +0000  William Pitcock <nenolod@sacredspiral.co.uk>
   revision [2032]
   - revert r2028.
--- a/src/adplug/core/d00.cxx	Fri Apr 13 05:23:27 2007 -0700
+++ b/src/adplug/core/d00.cxx	Fri Apr 13 08:07:32 2007 -0700
@@ -1,6 +1,6 @@
 /*
  * Adplug - Replayer for many OPL2/OPL3 audio file formats.
- * Copyright (C) 1999 - 2006 Simon Peter, <dn.tlp@gmx.net>, et al.
+ * Copyright (C) 1999 - 2007 Simon Peter, <dn.tlp@gmx.net>, et al.
  * 
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -251,6 +251,7 @@
 	patt = (unsigned short *)((char *)filedata + LE_WORD(&seqptr[ord]));
 	break;
       }
+    channel[c].fxflag = 0;
     readseq:	// process sequence (pattern)
       if(!version)	// v0: always initialize rhcnt
 	channel[c].rhcnt = channel[c].irhcnt;
@@ -282,7 +283,10 @@
 	  break;
 	default:					// play note
 	  // restart fx
-	  channel[c].slideval = 0; channel[c].slide = 0; channel[c].vibdepth = 0;
+	  if(!(channel[c].fxflag & 1))
+	    channel[c].vibdepth = 0;
+	  if(!(channel[c].fxflag & 2))
+	    channel[c].slideval = channel[c].slide = 0;
 
 	  if(version) {	// note handling for v1 and above
 	    if(note > 0x80)	// locked note (no channel transpose)
@@ -350,6 +354,7 @@
 	  channel[c].vibspeed = fxop & 0xff;
 	  channel[c].vibdepth = fxop >> 8;
 	  channel[c].trigger = fxop >> 9;
+	  channel[c].fxflag |= 1;
 	  break;
 	case 8:		// v0: Duration
 	  if(!version)
@@ -381,9 +386,11 @@
 	  break;
 	case 0xd:	// Slide up
 	  channel[c].slide = fxop;
+	  channel[c].fxflag |= 2;
 	  break;
 	case 0xe:	// Slide down
 	  channel[c].slide = -fxop;
+	  channel[c].fxflag |= 2;
 	  break;
 	}
 	goto readseq;	// event is incomplete, note follows
--- a/src/adplug/core/d00.h	Fri Apr 13 05:23:27 2007 -0700
+++ b/src/adplug/core/d00.h	Fri Apr 13 08:07:32 2007 -0700
@@ -1,6 +1,6 @@
 /*
  * AdPlug - Replayer for many OPL2/OPL3 audio file formats.
- * Copyright (C) 1999 - 2006 Simon Peter, <dn.tlp@gmx.net>, et al.
+ * Copyright (C) 1999 - 2007 Simon Peter, <dn.tlp@gmx.net>, et al.
  * 
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -67,7 +67,7 @@
 	struct {
 		unsigned short	*order,ordpos,pattpos,del,speed,rhcnt,key,freq,inst,spfx,ispfx,irhcnt;
 		signed short	transpose,slide,slideval,vibspeed;
-		unsigned char	seqend,vol,vibdepth,fxdel,modvol,cvol,levpuls,frameskip,nextnote,note,ilevpuls,trigger;
+		unsigned char	seqend,vol,vibdepth,fxdel,modvol,cvol,levpuls,frameskip,nextnote,note,ilevpuls,trigger,fxflag;
 	} channel[9];
 
 	struct Sinsts {