shithub: dumb

Download patch

ref: 242c96c172f5203f595a4ba24f9649c2c975846f
parent: 83a79f2c29b2601d78087aaa8e8363157e0b4ecb
author: Chris Moeller <[email protected]>
date: Mon Jan 11 04:01:04 EST 2010

{5/1/2008 3:06:24 PM~5/1/2008 3:07:24 PM}

git-tfs-id: [http://localhost:8080/tfs/DefaultCollection/]$/foobar2000/files/plugins.root;C196

--- a/dumb/src/it/itrender.c
+++ b/dumb/src/it/itrender.c
@@ -4047,6 +4047,19 @@
 		if (vol > 64 << 5)
 			vol = 64 << 5;
 
+		if ( sigrenderer->sigdata->flags & IT_WAS_A_PTM )
+		{
+			int v = aiPTMVolScaled[ vol >> 5 ];
+			if ( vol < 64 << 5 )
+			{
+				int f = vol & ( ( 1 << 5 ) - 1 );
+				int f2 = ( 1 << 5 ) - f;
+				int v2 = aiPTMVolScaled[ ( vol >> 5 ) + 1 ];
+				v = ( v * f2 + v2 * f ) >> 5;
+			}
+			vol = v << 1;
+		}
+
 		volume *= vol; /* 64 << 5 */
 		volume *= playing->sample->global_volume; /* 64 */
 		volume *= playing->channel_volume; /* 64 */
--- a/dumb/src/it/readdsmf.c
+++ b/dumb/src/it/readdsmf.c
@@ -282,7 +282,7 @@
 			ptr = ( unsigned char * ) c->data;
 			memcpy( sigdata->name, c->data, 28 );
 			sigdata->name[ 28 ] = 0;
-			sigdata->flags = IT_WAS_AN_XM | IT_WAS_A_MOD | IT_STEREO | IT_OLD_EFFECTS | IT_COMPATIBLE_GXX;
+			sigdata->flags = IT_STEREO | IT_OLD_EFFECTS | IT_COMPATIBLE_GXX;
 			sigdata->n_orders = ptr[ 36 ] | ( ptr[ 37 ] << 8 );
 			//sigdata->n_samples = ptr[ 38 ] | ( ptr[ 39 ] << 8 ); // whatever
 			//sigdata->n_patterns = ptr[ 40 ] | ( ptr[ 41 ] << 8 );