Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: Recompiling an old 0.85 component to run on v1.1 (Read 5273 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Recompiling an old 0.85 component to run on v1.1

Hi

I am attempting to make an old foobar plugin work with the new 1.1 version

The plugin "foo_httpserver_ctrl" used to allow foobar to be controlled by mediaportal (an HTPC app) so that foobar handles the music playback.

http://foohttpserver.cvs.sourceforge.net/v.../foohttpserver/

I have the source code for the old mediaportal plugin part and have made some progress in making it work with MP but the foobar plugin part has a very complex arrangement of dependencies and libraries.

I have visual C++ express 2008, The latest foobar SDK and quite a lot of time but I'm not an expert programmer.

I have tried loading the old foo_httpserver_ctrl plugin source files into express 2008 but it is quite challenging and there are many errors and some missing references.

From the experience you guys have of the changes between foobar 0.8 and 1.1 can someone advise me if it is even likely that the old code (at least 6yrs old) can be resurected or is it likely to be a very difficult job requiring expert knowledge??


Kev

Recompiling an old 0.85 component to run on v1.1

Reply #1
May be you should try to make a dummy component from scratch first to understand the “complex arrangement of dependencies and libraries”?

Recompiling an old 0.85 component to run on v1.1

Reply #2
I suppose I could try that.

I thought if I could get the old sources to compile I would be able to learn how the code worked using the debugger tools.

Writing a plugin from scratch seemed a much more difficult exercise.

Anyway I'll have another look at the sources and see if I can work out what the problem is. Reading elsewhere on the forum it seems that the SDK (which is itself quite a complicated setup - including as it does a number of project files etc) needs some adjustment to work with visual C++ 2008 express.


Kev





Recompiling an old 0.85 component to run on v1.1

Reply #3
I'm not sure about Express, but with paid editions of Visual Studio all you need to do is...

1) Create a Win32 DLL project.
2) Include all .vsproj files from the SDK to your solution and make your project dependent on them.
3) Include shared.lib as well.
4) Specify #include directive for either “foobar2000\ATLHelpers\ATLHelpers.h” or “foobar2000\SDK\foobar2000.h” depending on your needs.
5) Use DECLARE_COMPONENT_VERSION and VALIDATE_COMPONENT_FILENAME to define your DLL as an fb2k component.

Recompiling an old 0.85 component to run on v1.1

Reply #4
4) Specify #include directive for either “foobar2000\ATLHelpers\ATLHelpers.h” or “foobar2000\SDK\foobar2000.h” depending on your needs.
The VC++ Express edition does not include ATL, so you can only use "foobar2000\SDK\foobar2000.h".

Recompiling an old 0.85 component to run on v1.1

Reply #5
Why not make sure there is no equivalent or similar component already that works with current foobar2000 versions?
Microsoft Windows: We can't script here, this is bat country.

 

Recompiling an old 0.85 component to run on v1.1

Reply #6
Many thanks for the pointers

I have made some progress but now realise that the very old 0.8.3 plugin is very incompatible with new foobar. In fact there is a note on the forum elsewhere sugesting this - utf8api related.

I'll look at other plugins and see if I can use those as a learning aid.


Kev