From: <man...@us...> - 2013-07-03 22:17:21
|
Revision: 2486 http://sourceforge.net/p/modplug/code/2486 Author: manxorist Date: 2013-07-03 22:17:11 +0000 (Wed, 03 Jul 2013) Log Message: ----------- [Mod] libopenmpt: Seperate repeat count from the other render params. [Fix] libopenmpt_modplug: Actually set repeat count. Modified Paths: -------------- trunk/OpenMPT/libopenmpt/libopenmpt.h trunk/OpenMPT/libopenmpt/libopenmpt.hpp trunk/OpenMPT/libopenmpt/libopenmpt_c.cpp trunk/OpenMPT/libopenmpt/libopenmpt_cxx.cpp trunk/OpenMPT/libopenmpt/libopenmpt_impl.cpp trunk/OpenMPT/libopenmpt/libopenmpt_impl.hpp trunk/OpenMPT/libopenmpt/libopenmpt_modplug.c trunk/OpenMPT/libopenmpt/libopenmpt_winamp.cpp trunk/OpenMPT/libopenmpt/libopenmpt_xmplay.cpp trunk/OpenMPT/openmpt123/openmpt123.cpp Modified: trunk/OpenMPT/libopenmpt/libopenmpt.h =================================================================== --- trunk/OpenMPT/libopenmpt/libopenmpt.h 2013-07-03 21:58:52 UTC (rev 2485) +++ trunk/OpenMPT/libopenmpt/libopenmpt.h 2013-07-03 22:17:11 UTC (rev 2486) @@ -64,12 +64,11 @@ LIBOPENMPT_API void openmpt_module_destroy( openmpt_module * mod ); -#define OPENMPT_MODULE_RENDER_REPEATCOUNT 1 -#define OPENMPT_MODULE_RENDER_MASTERGAIN_MILLIBEL 2 -#define OPENMPT_MODULE_RENDER_STEREOSEPARATION_PERCENT 3 -#define OPENMPT_MODULE_RENDER_INTERPOLATION_FILTER_LENGTH 4 -#define OPENMPT_MODULE_RENDER_VOLUMERAMP_UP_MICROSECONDS 5 -#define OPENMPT_MODULE_RENDER_VOLUMERAMP_DOWN_MICROSECONDS 6 +#define OPENMPT_MODULE_RENDER_MASTERGAIN_MILLIBEL 1 +#define OPENMPT_MODULE_RENDER_STEREOSEPARATION_PERCENT 2 +#define OPENMPT_MODULE_RENDER_INTERPOLATION_FILTER_LENGTH 3 +#define OPENMPT_MODULE_RENDER_VOLUMERAMP_UP_MICROSECONDS 4 +#define OPENMPT_MODULE_RENDER_VOLUMERAMP_DOWN_MICROSECONDS 5 #define OPENMPT_MODULE_COMMAND_NOTE 0 #define OPENMPT_MODULE_COMMAND_INSTRUMENT 1 @@ -82,6 +81,8 @@ LIBOPENMPT_API int openmpt_module_set_render_param( openmpt_module * mod, int param, int32_t value ); LIBOPENMPT_API int openmpt_module_select_subsong( openmpt_module * mod, int32_t subsong ); +LIBOPENMPT_API int openmpt_module_set_repeat_count( openmpt_module * mod, int32_t repeat_count ); +LIBOPENMPT_API int32_t openmpt_module_get_repeat_count( openmpt_module * mod ); LIBOPENMPT_API double openmpt_module_seek_seconds( openmpt_module * mod, double seconds ); Modified: trunk/OpenMPT/libopenmpt/libopenmpt.hpp =================================================================== --- trunk/OpenMPT/libopenmpt/libopenmpt.hpp 2013-07-03 21:58:52 UTC (rev 2485) +++ trunk/OpenMPT/libopenmpt/libopenmpt.hpp 2013-07-03 22:17:11 UTC (rev 2486) @@ -74,12 +74,11 @@ public: enum render_param { - RENDER_REPEATCOUNT = 1, - RENDER_MASTERGAIN_MILLIBEL = 2, - RENDER_STEREOSEPARATION_PERCENT = 3, - RENDER_INTERPOLATION_FILTER_LENGTH = 4, - RENDER_VOLUMERAMP_UP_MICROSECONDS = 5, - RENDER_VOLUMERAMP_DOWN_MICROSECONDS = 6 + RENDER_MASTERGAIN_MILLIBEL = 1, + RENDER_STEREOSEPARATION_PERCENT = 2, + RENDER_INTERPOLATION_FILTER_LENGTH = 3, + RENDER_VOLUMERAMP_UP_MICROSECONDS = 4, + RENDER_VOLUMERAMP_DOWN_MICROSECONDS = 5 }; enum command_index { @@ -117,6 +116,8 @@ void set_render_param( int param, std::int32_t value ); void select_subsong( std::int32_t subsong ); + void set_repeat_count( std::int32_t repeat_count ); + std::int32_t get_repeat_count() const; double seek_seconds( double seconds ); Modified: trunk/OpenMPT/libopenmpt/libopenmpt_c.cpp =================================================================== --- trunk/OpenMPT/libopenmpt/libopenmpt_c.cpp 2013-07-03 21:58:52 UTC (rev 2485) +++ trunk/OpenMPT/libopenmpt/libopenmpt_c.cpp 2013-07-03 22:17:11 UTC (rev 2486) @@ -361,6 +361,22 @@ return 0; } +int openmpt_module_set_repeat_count( openmpt_module * mod, int32_t repeat_count ) { + try { + OPENMPT_INTERFACE_CHECK_SOUNDFILE( mod ); + mod->impl->set_repeat_count( repeat_count ); + return 1; + } OPENMPT_INTERFACE_CATCH_TO_LOG; + return 0; +} +int32_t openmpt_module_get_repeat_count( openmpt_module * mod ) { + try { + OPENMPT_INTERFACE_CHECK_SOUNDFILE( mod ); + return mod->impl->get_repeat_count(); + } OPENMPT_INTERFACE_CATCH_TO_LOG; + return 0; +} + double openmpt_module_seek_seconds( openmpt_module * mod, double seconds ) { try { OPENMPT_INTERFACE_CHECK_SOUNDFILE( mod ); Modified: trunk/OpenMPT/libopenmpt/libopenmpt_cxx.cpp =================================================================== --- trunk/OpenMPT/libopenmpt/libopenmpt_cxx.cpp 2013-07-03 21:58:52 UTC (rev 2485) +++ trunk/OpenMPT/libopenmpt/libopenmpt_cxx.cpp 2013-07-03 22:17:11 UTC (rev 2486) @@ -114,6 +114,13 @@ impl->select_subsong( subsong ); } +void module::set_repeat_count( std::int32_t repeat_count ) { + impl->set_repeat_count( repeat_count ); +} +std::int32_t module::get_repeat_count() const { + return impl->get_repeat_count(); +} + double module::seek_seconds( double seconds ) { return impl->seek_seconds( seconds ); } Modified: trunk/OpenMPT/libopenmpt/libopenmpt_impl.cpp =================================================================== --- trunk/OpenMPT/libopenmpt/libopenmpt_impl.cpp 2013-07-03 21:58:52 UTC (rev 2485) +++ trunk/OpenMPT/libopenmpt/libopenmpt_impl.cpp 2013-07-03 22:17:11 UTC (rev 2486) @@ -294,9 +294,6 @@ case module::RENDER_STEREOSEPARATION_PERCENT: { return m_sndFile->m_MixerSettings.m_nStereoSeparation * 100 / 128; } break; - case module::RENDER_REPEATCOUNT: { - return m_sndFile->m_nRepeatCount; - } break; case module::RENDER_INTERPOLATION_FILTER_LENGTH: { return resamplingmode_to_filterlength( m_sndFile->m_Resampler.m_Settings.SrcMode ); } break; @@ -328,9 +325,6 @@ m_sndFile->SetMixerSettings( settings ); } } break; - case module::RENDER_REPEATCOUNT: { - m_sndFile->SetRepeatCount( value ); - } break; case module::RENDER_INTERPOLATION_FILTER_LENGTH: { CResamplerSettings newsettings; newsettings.SrcMode = filterlength_to_resamplingmode( value ); @@ -427,6 +421,12 @@ } m_sndFile->Order.SetSequence( subsong ); } +void module_impl::set_repeat_count( std::int32_t repeat_count ) { + m_sndFile->SetRepeatCount( repeat_count ); +} +std::int32_t module_impl::get_repeat_count() const { + return m_sndFile->GetRepeatCount(); +} double module_impl::seek_seconds( double seconds ) { GetLengthType t = m_sndFile->GetLength( eNoAdjust, GetLengthTarget( seconds ) ); m_sndFile->InitializeVisitedRows(); Modified: trunk/OpenMPT/libopenmpt/libopenmpt_impl.hpp =================================================================== --- trunk/OpenMPT/libopenmpt/libopenmpt_impl.hpp 2013-07-03 21:58:52 UTC (rev 2485) +++ trunk/OpenMPT/libopenmpt/libopenmpt_impl.hpp 2013-07-03 22:17:11 UTC (rev 2486) @@ -91,6 +91,8 @@ double get_duration_seconds() const; double get_current_position_seconds() const; void select_subsong( std::int32_t subsong ); + void set_repeat_count( std::int32_t repeat_count ); + std::int32_t get_repeat_count() const; double seek_seconds( double seconds ); std::vector<std::string> get_metadata_keys() const; std::string get_metadata( const std::string & key ) const; Modified: trunk/OpenMPT/libopenmpt/libopenmpt_modplug.c =================================================================== --- trunk/OpenMPT/libopenmpt/libopenmpt_modplug.c 2013-07-03 21:58:52 UTC (rev 2485) +++ trunk/OpenMPT/libopenmpt/libopenmpt_modplug.c 2013-07-03 22:17:11 UTC (rev 2486) @@ -128,6 +128,7 @@ free(file); return NULL; } + openmpt_module_set_repeat_count(file->mod,file->settings.mLoopCount); file->name = openmpt_module_get_metadata(file->mod,"title"); file->message = openmpt_module_get_metadata(file->mod,"message"); openmpt_module_set_render_param(file->mod,OPENMPT_MODULE_RENDER_STEREOSEPARATION_PERCENT,file->settings.mStereoSeparation*100/128); Modified: trunk/OpenMPT/libopenmpt/libopenmpt_winamp.cpp =================================================================== --- trunk/OpenMPT/libopenmpt/libopenmpt_winamp.cpp 2013-07-03 21:58:52 UTC (rev 2485) +++ trunk/OpenMPT/libopenmpt/libopenmpt_winamp.cpp 2013-07-03 22:17:11 UTC (rev 2486) @@ -96,9 +96,9 @@ static void apply_options() { if ( self->mod ) { + self->mod->set_repeat_count( self->settings.repeatcount ); self->mod->set_render_param( openmpt::module::RENDER_MASTERGAIN_MILLIBEL, self->settings.mastergain_millibel ); self->mod->set_render_param( openmpt::module::RENDER_STEREOSEPARATION_PERCENT, self->settings.stereoseparation ); - self->mod->set_render_param( openmpt::module::RENDER_REPEATCOUNT, self->settings.repeatcount ); self->mod->set_render_param( openmpt::module::RENDER_INTERPOLATION_FILTER_LENGTH, self->settings.interpolationfilterlength ); self->mod->set_render_param( openmpt::module::RENDER_VOLUMERAMP_UP_MICROSECONDS, self->settings.volrampinus ); self->mod->set_render_param( openmpt::module::RENDER_VOLUMERAMP_DOWN_MICROSECONDS, self->settings.volrampoutus ); Modified: trunk/OpenMPT/libopenmpt/libopenmpt_xmplay.cpp =================================================================== --- trunk/OpenMPT/libopenmpt/libopenmpt_xmplay.cpp 2013-07-03 21:58:52 UTC (rev 2485) +++ trunk/OpenMPT/libopenmpt/libopenmpt_xmplay.cpp 2013-07-03 22:17:11 UTC (rev 2486) @@ -133,9 +133,9 @@ static void apply_options() { if ( self->mod ) { + self->mod->set_repeat_count( self->settings.repeatcount ); self->mod->set_render_param( openmpt::module::RENDER_MASTERGAIN_MILLIBEL, self->settings.mastergain_millibel ); self->mod->set_render_param( openmpt::module::RENDER_STEREOSEPARATION_PERCENT, self->settings.stereoseparation ); - self->mod->set_render_param( openmpt::module::RENDER_REPEATCOUNT, self->settings.repeatcount ); self->mod->set_render_param( openmpt::module::RENDER_INTERPOLATION_FILTER_LENGTH, self->settings.interpolationfilterlength ); self->mod->set_render_param( openmpt::module::RENDER_VOLUMERAMP_UP_MICROSECONDS, self->settings.volrampinus ); self->mod->set_render_param( openmpt::module::RENDER_VOLUMERAMP_DOWN_MICROSECONDS, self->settings.volrampoutus ); Modified: trunk/OpenMPT/openmpt123/openmpt123.cpp =================================================================== --- trunk/OpenMPT/openmpt123/openmpt123.cpp 2013-07-03 21:58:52 UTC (rev 2485) +++ trunk/OpenMPT/openmpt123/openmpt123.cpp 2013-07-03 22:17:11 UTC (rev 2486) @@ -377,7 +377,8 @@ openmpt::module mod( data_stream ); - mod.set_render_param( openmpt::module::RENDER_REPEATCOUNT, flags.repeatcount ); + mod.set_repeat_count( flags.repeatcount ); + mod.set_render_param( openmpt::module::RENDER_INTERPOLATION_FILTER_LENGTH, flags.filtertaps ); mod.set_render_param( openmpt::module::RENDER_MASTERGAIN_MILLIBEL, flags.gain ); mod.set_render_param( openmpt::module::RENDER_VOLUMERAMP_UP_MICROSECONDS, flags.rampupus ); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |