diff --git a/src/filters/new_interframe.hpp b/src/filters/new_interframe.hpp index aab76fb4..505a6fe9 100644 --- a/src/filters/new_interframe.hpp +++ b/src/filters/new_interframe.hpp @@ -40,30 +40,21 @@ public: bool exists() {return true;} }; -//WX -enum ifbfunc { - // this order must match order of option enum and selector widget - IFB_NONE, IFB_SMART, IFB_MOTION_BLUR -}; - ///Use this to select/create the filter to use class interframe_factory { public: - static filter_base * createIFB(ifbfunc filter_select,unsigned int width,unsigned int height) + static filter_base * createIFB(std::string filterName,unsigned int width,unsigned int height) { - switch(filter_select) + if(filterName == "Smart interframe blending") { - case IFB_SMART: - return new SmartIB(width,height); - break; - case IFB_MOTION_BLUR: - return new MotionBlurIB(width,height); - break; - default: - return new filter_base(width,height); - break; + return new SmartIB(width,height); } + else if(filterName == "Interframe motion blur") + { + return new MotionBlurIB(width,height); + } + return new filter_base(width,height); } }; diff --git a/src/wx/cmdevents.cpp b/src/wx/cmdevents.cpp index 8ac117ae..0d2e8818 100644 --- a/src/wx/cmdevents.cpp +++ b/src/wx/cmdevents.cpp @@ -2008,8 +2008,6 @@ EVT_HANDLER_MASK(ChangeFilter, "Change Pixel Filter", CMDEN_NREC_ANY) EVT_HANDLER_MASK(ChangeIFB, "Change Interframe Blending", CMDEN_NREC_ANY) { - gopts.ifb = (gopts.ifb + 1) % 3; - update_opts(); if(panel->panel) { panel->panel->Delete(); diff --git a/src/wx/opts.cpp b/src/wx/opts.cpp index 3b23d4bf..2cf0cf29 100644 --- a/src/wx/opts.cpp +++ b/src/wx/opts.cpp @@ -133,13 +133,13 @@ opt_desc opts[] = { #ifdef MMX BOOLOPT("Display/EnableMMX", wxTRANSLATE("Enable MMX"), gopts.cpu_mmx), #endif - STROPT("Display/Filter", wxTRANSLATE("Full-screen filter to apply"), gopts.filter), + STROPT ("Display/Filter", wxTRANSLATE("Full-screen filter to apply"), gopts.filter), BOOLOPT("Display/Fullscreen", wxTRANSLATE("Enter fullscreen mode at startup"), gopts.fullscreen), INTOPT ("Display/FullscreenDepth", wxTRANSLATE("Fullscreen mode color depth (0 = any)"), gopts.fs_mode.bpp, 0, 999), INTOPT ("Display/FullscreenFreq", wxTRANSLATE("Fullscreen mode frequency (0 = any)"), gopts.fs_mode.refresh, 0, 999), INTOPT ("Display/FullscreenHeight", wxTRANSLATE("Fullscreen mode height (0 = desktop)"), gopts.fs_mode.h, 0, 99999), INTOPT ("Display/FullscreenWidth", wxTRANSLATE("Fullscreen mode width (0 = desktop)"), gopts.fs_mode.w, 0, 99999), - ENUMOPT("Display/IFB", wxTRANSLATE("Interframe blending function"), gopts.ifb, wxTRANSLATE("none|smart|motionblur")), + STROPT ("Display/IFB", wxTRANSLATE("Interframe blending function"), gopts.ifb), INTOPT ("Display/MaxScale", wxTRANSLATE("Maximum scale factor (0 = no limit)"), gopts.max_scale, 0, 100), INTOPT ("Display/MaxThreads", wxTRANSLATE("Maximum number of threads to run filters in"), gopts.max_threads, 1, 8), ENUMOPT("Display/RenderMethod", wxTRANSLATE("Render method; if unsupported, simple method will be used"), gopts.render_method, diff --git a/src/wx/opts.h b/src/wx/opts.h index b14b86cc..9a752e90 100644 --- a/src/wx/opts.h +++ b/src/wx/opts.h @@ -15,7 +15,7 @@ extern struct opts_t { bool cpu_mmx; bool no_osd_status; wxString filter; - int ifb; + wxString ifb; bool fullscreen; wxVideoMode fs_mode; int max_scale; diff --git a/src/wx/panel.cpp b/src/wx/panel.cpp index 8d33478d..b897ddf7 100644 --- a/src/wx/panel.cpp +++ b/src/wx/panel.cpp @@ -1099,7 +1099,7 @@ DrawingPanel::DrawingPanel(int _width, int _height) : threads[i].band_lower = band_height * i; threads[i].dst = reinterpret_cast(&todraw); threads[i].mainFilter=filter_factory::createFilter(ToString(gopts.filter),width,band_height); - threads[i].iFilter=interframe_factory::createIFB((ifbfunc)gopts.ifb,width,band_height); + threads[i].iFilter=interframe_factory::createIFB(ToString(gopts.ifb),width,band_height); threads[i].done = &filt_done; threads[i].lock.Lock(); threads[i].Create();