Help - Search - Members - Calendar
Full Version: error compiling foo_dsp_tutorial
Hydrogenaudio Forums > Hosted Forums > foobar2000 > Development - (fb2k)
oddsock
Trying to start getting my hands around the .9 SDK, and thought I would give the foo_dsp_tutorial a compile, and ended up with the following :

CODE

    foo_dsp_tutorial\foobar2000\sdk\dsp.h(321) : error C2259: 'service_impl_t<T>' : cannot instantiate abstract class
        with
        [
            T=dsp_tutorial_nopreset
        ]
        due to following members:
        'void dsp_impl_base_t<t_baseclass>::on_endoftrack(foobar2000_io::abort_callback &)' : is abstract
        with
        [
            t_baseclass=dsp_v2
        ]
        foo_dsp_tutorial\foobar2000\sdk\dsp.h(121) : see declaration of 'dsp_impl_base_t<t_baseclass>::on_endoftrack'
        with
        [
            t_baseclass=dsp_v2
        ]
        'void dsp_impl_base_t<t_baseclass>::on_endofplayback(foobar2000_io::abort_callback &)' : is abstract
        with
        [
            t_baseclass=dsp_v2
        ]
        foo_dsp_tutorial\foobar2000\sdk\dsp.h(127) : see declaration of 'dsp_impl_base_t<t_baseclass>::on_endofplayback'
        with
        [
            t_baseclass=dsp_v2
        ]
        'bool dsp_impl_base_t<t_baseclass>::on_chunk(audio_chunk *,foobar2000_io::abort_callback &)' : is abstract
        with
        [
            t_baseclass=dsp_v2
        ]
        foo_dsp_tutorial\foobar2000\sdk\dsp.h(133) : see declaration of 'dsp_impl_base_t<t_baseclass>::on_chunk'
        with
        [
            t_baseclass=dsp_v2
        ]
        foo_dsp_tutorial\foobar2000\sdk\dsp.h(318) : while compiling class template member function 'bool dsp_entry_impl_nopreset_t<T>::instantiate(service_ptr_t<dsp> &,const dsp_preset &)'
        with
        [
            T=dsp_tutorial_nopreset
        ]
        foo_dsp_tutorial\foobar2000\sdk\service.h(406) : see reference to class template instantiation 'dsp_entry_impl_nopreset_t<T>' being compiled
        with
        [
            T=dsp_tutorial_nopreset
        ]
        foo_dsp_tutorial\foobar2000\sdk\dsp.h(372) : see reference to class template instantiation 'service_factory_single_t<T>' being compiled
        with
        [
            T=dsp_entry_impl_nopreset_t<dsp_tutorial_nopreset>
        ]
        foo_dsp_tutorial\foo_dsp_tutorial.cpp(133) : see reference to class template instantiation 'dsp_factory_nopreset_t<T>' being compiled
        with
        [
            T=dsp_tutorial_nopreset
        ]

I'm using the latest (0.9.3.1) SDK...I'm not too knowlegable on using C++ templates so I'm not exactly sure what this is telling me....

I'm using Visual Studio 2005 v 8.0.50727.42 if that matters...

oddsock
foosion
To anyone who knows more about the foobar2000 SDK, C++ templates and the corresponding error messages from the Microsoft compiler (no offense intended), those message are telling that the DSP tutorial needs to be updated for the latest SDK. tongue.gif I'll try to do that soon, but seeing how little time I currently have for foobar2000, I can't say what "soon" means. Anyway, I'll announce it in the tutorial thread when the fixed version is available.
oddsock
QUOTE(foosion @ Aug 20 2006, 10:01) *

To anyone who knows more about the foobar2000 SDK, C++ templates and the corresponding error messages from the Microsoft compiler (no offense intended), those message are telling that the DSP tutorial needs to be updated for the latest SDK. tongue.gif I'll try to do that soon, but seeing how little time I currently have for foobar2000, I can't say what "soon" means. Anyway, I'll announce it in the tutorial thread when the fixed version is available.

so which version of the SDK did you create that with ? I'm assuming that these error messages mean the SDK has changed in some of the DSP interfaces, which makes me a bit nervous I guess... so I'll ask another loaded question then, how compatable are the .9 SDKs ? if I build my plugin with version .9.x.y, will that be compatable with all .9 releases of foobar ? Or will I have to keep in lock step with the foobar releases ? Is any of this documented anywhere ? I've been scouring the site and haven't come up with much...

oddsock
Peter
Current public SDK is compatible with all 0.9.* releases, and all future 0.9.* releases will cooperate with components made with it (in real world, results may vary if new foobar2000 releases expose bugs in old components that were not obvious before for some reason).
At some point (0.9.1 from what I remember), new features were added to the DSP interface in a fully backwards compatible way, but the new SDK required sourcecode-side changes for old code to compile with it; that appears to be the source of your problem.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2008 Invision Power Services, Inc.