|
From: <sag...@us...> - 2014-11-02 12:38:05
|
Revision: 4536
http://sourceforge.net/p/modplug/code/4536
Author: saga-games
Date: 2014-11-02 12:37:47 +0000 (Sun, 02 Nov 2014)
Log Message:
-----------
[Ref] Introduce a typedef for FlagSet<ChannelFlags, uint16> and clarify why we use it.
Modified Paths:
--------------
trunk/OpenMPT/soundlib/ModSample.h
trunk/OpenMPT/soundlib/Snd_defs.h
trunk/OpenMPT/soundlib/Sndfile.cpp
trunk/OpenMPT/soundlib/WAVTools.cpp
trunk/OpenMPT/soundlib/WAVTools.h
Modified: trunk/OpenMPT/soundlib/ModSample.h
===================================================================
--- trunk/OpenMPT/soundlib/ModSample.h 2014-11-02 01:18:42 UTC (rev 4535)
+++ trunk/OpenMPT/soundlib/ModSample.h 2014-11-02 12:37:47 UTC (rev 4536)
@@ -30,7 +30,7 @@
uint16 nPan; // Default sample panning (if pan flag is set), 0...256
uint16 nVolume; // Default volume, 0...256
uint16 nGlobalVol; // Global volume (sample volume is multiplied by this), 0...64
- FlagSet<ChannelFlags, uint16> uFlags; // Sample flags
+ SampleFlags uFlags; // Sample flags (see ChannelFlags enum)
int8 RelativeTone; // Relative note to middle c (for MOD/XM)
int8 nFineTune; // Finetune period (for MOD/XM), -128...127
uint8 nVibType; // Auto vibrato type, see VibratoType enum
Modified: trunk/OpenMPT/soundlib/Snd_defs.h
===================================================================
--- trunk/OpenMPT/soundlib/Snd_defs.h 2014-11-02 01:18:42 UTC (rev 4535)
+++ trunk/OpenMPT/soundlib/Snd_defs.h 2014-11-02 12:37:47 UTC (rev 4536)
@@ -166,11 +166,13 @@
};
DECLARE_FLAGSET(ChannelFlags)
-
#define CHN_SAMPLEFLAGS (CHN_16BIT | CHN_LOOP | CHN_PINGPONGLOOP | CHN_SUSTAINLOOP | CHN_PINGPONGSUSTAIN | CHN_PANNING | CHN_STEREO | CHN_PINGPONGFLAG | CHN_REVERSE)
#define CHN_CHANNELFLAGS (~CHN_SAMPLEFLAGS)
+// Sample flags fit into the first 16 bits, and with the current memory layout, storing them as a 16-bit integer gives struct ModSample a nice cacheable 64 bytes size in 32-bit builds.
+typedef FlagSet<ChannelFlags, uint16> SampleFlags;
+
// Instrument envelope-specific flags
enum EnvelopeFlags
{
Modified: trunk/OpenMPT/soundlib/Sndfile.cpp
===================================================================
--- trunk/OpenMPT/soundlib/Sndfile.cpp 2014-11-02 01:18:42 UTC (rev 4535)
+++ trunk/OpenMPT/soundlib/Sndfile.cpp 2014-11-02 12:37:47 UTC (rev 4536)
@@ -2100,7 +2100,7 @@
ModSample &sample = GetSample(smp);
SmpLength newLength = sample.nLength;
void *newData = sample.pSample;
- FlagSet<ChannelFlags, uint16> newFlags = sample.uFlags;
+ SampleFlags newFlags = sample.uFlags;
sample = origSample;
sample.nLength = newLength;
Modified: trunk/OpenMPT/soundlib/WAVTools.cpp
===================================================================
--- trunk/OpenMPT/soundlib/WAVTools.cpp 2014-11-02 01:18:42 UTC (rev 4535)
+++ trunk/OpenMPT/soundlib/WAVTools.cpp 2014-11-02 12:37:47 UTC (rev 4536)
@@ -207,8 +207,8 @@
// Apply WAV loop information to a mod sample.
-void WAVSampleLoop::ApplyToSample(SmpLength &start, SmpLength &end, SmpLength sampleLength, FlagSet<ChannelFlags, uint16> &flags, ChannelFlags enableFlag, ChannelFlags bidiFlag, bool mptLoopFix) const
-//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+void WAVSampleLoop::ApplyToSample(SmpLength &start, SmpLength &end, SmpLength sampleLength, SampleFlags &flags, ChannelFlags enableFlag, ChannelFlags bidiFlag, bool mptLoopFix) const
+//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
{
if(loopEnd == 0)
{
Modified: trunk/OpenMPT/soundlib/WAVTools.h
===================================================================
--- trunk/OpenMPT/soundlib/WAVTools.h 2014-11-02 01:18:42 UTC (rev 4535)
+++ trunk/OpenMPT/soundlib/WAVTools.h 2014-11-02 12:37:47 UTC (rev 4536)
@@ -239,7 +239,7 @@
}
// Apply WAV loop information to a mod sample.
- void ApplyToSample(SmpLength &start, SmpLength &end, SmpLength sampleLength, FlagSet<ChannelFlags, uint16> &flags, ChannelFlags enableFlag, ChannelFlags bidiFlag, bool mptLoopFix) const;
+ void ApplyToSample(SmpLength &start, SmpLength &end, SmpLength sampleLength, SampleFlags &flags, ChannelFlags enableFlag, ChannelFlags bidiFlag, bool mptLoopFix) const;
// Convert internal loop information into a WAV loop.
void ConvertToWAV(SmpLength start, SmpLength end, bool bidi);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|