FoobarPlayer patch
#1
I just put together a patch that allows XBMC to control Foobar2000 via foosion's (http://foosion.foobar2000.org/0.9/#comserver) COM Automation server. you can download it here: http://home.comcast.net/~lapstand/FoobarPlayer.rar

Check it out and let me know what you think.

Scott
Reply
#2
couple bugs fixed:

It seems that GetPercentage() is not always called. I'm not sure why. So volume tracking, m_playing bool and OnPlayBackEnded() are now managed in the GetTime() func.

fixed call to SetActiveDevice(m_iActiveDevice);
Reply
#3
Perhaps you could elucidate on the advantages of this over:

1. Using XBMC's built in player.
2. Using foobar2000 as an external player.

One presumes the advantage over 2 is that the interaction between XBMC and the player is much tighter. I'm not sure what the advantage over 1 is though.

Cheers,
Jonathan
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.


Image
Reply
#4
jmarshall Wrote:Perhaps you could elucidate on the advantages of this over:

1. Using XBMC's built in player.
2. Using foobar2000 as an external player.

One presumes the advantage over 2 is that the interaction between XBMC and the player is much tighter. I'm not sure what the advantage over 1 is though.

Cheers,
Jonathan

I'll answer your questions in reverse:

2. As you said: tighter integration. This includes volume and position tracking.
1. There are many answers to this one, here are just a few:
1a. ASIO; The PRO audio standard, this gets you bit perfect output completely bypassing kmixer (Windows XP)
1b. WASAPI same as 1a but for Windose Vista
1c. VST This enables all kinds of cool PRO audio processing including Convolver VST and ARC for room correction.
1d. DVDA, HD multichannel audio including MLP. In order to fully realize this 1a or 1b must also be in place.

Scott
Reply
#5
Hello Scott,
I use Foobar as my standard music player and I want test your patch. But I'm beginner in XBMC and when apply patch, I get error:

Creating library XBMC\Release (DirectX)\XBMC.lib and object XBMC\Release (DirectX)\XBMC.exp
PlayerCoreFactory.obj : error LNK2001: unresolved external symbol "public: __thiscall CFoobarPlayer::CFoobarPlayer(class IPlayerCallback &)" (??0CFoobarPlayer@@QAE@AAVIPlayerCallback@@@Z)
XBMC\Release (DirectX)\XBMC.exe : fatal error LNK1120: 1 unresolved externals
--------------------
Where is problem ? Sorry for my very very poor English Sad(
Thanks !
Reply
#6
It looks like you need to add the files in the FoobarPlayer directory to your project:

Copy PlayerCore*.* .....\xbmc\cores\playercorefactory (looks like you did this)
Copy FoobarPlayer .....\xbmc\cores\FoobarPlayer (you may have already done this)

Add .....\xbmc\cores\FoobarPlayer\FoobarPlayer.cpp and FoobarPlayer.h to XBMC project. (you still need to do this)

Compile...

You also need to run "foo_comserver2-0.7-setup.exe" once to setup Foobar2000 as a Com server. (included in rar at link above)

Scott
Reply
#7
Hi !
I'm trying to use your patch and don't understand how to install it... Oo

I do foocomserver setup, I put your playercore*.* files in XBMC\system, I put the folder "FoobarPlayer" in XBMC\system\players\ but I don't see anything change ! Eek

I use the beta 9.11 camelot with Confluence.
Reply
#8
Exclamation 
The patch I supplied does not include changes to the main sln or vcproj files. If it did I would likely break future builds. In fact from this point going forward you should be using svn to merge changes from the repository.

If this patch were made part of the main code base that problem would go away but new problems would/will arise as Foobar2000 changes. Release 1.0 is coming and this patch may not work with it.

If you really want to use this patch you will need to be prepared to make changes to the project and maybe even the source.

So to get this to work you will FIRST have to manually add the supplied FoobarPlayer.cpp and h files to the XBMC project and then build.

It has been tested against the latest source as of 12/12/2009. Anything newer than that and you are on your own.

I MAY post updates if necessary but keep in mind this is open source software and that means you take part of the responsibility in making it work.

Have fun,

Scott
Reply
#9
Thanks, I will ask to someone who can do that ! ^^
Reply
#10
2.5 years later ....

Hello guys, I'm very interesting about this integration. Please, can you tell me your advance in this job.

For me, the only problem with the use of foobar on a external player is to play the next song.We must click on OK when the file has ended.

So, ... any news ?
Reply
#11
Hi guys,
(2009-11-15, 02:27)jmarshall Wrote: Perhaps you could elucidate on the advantages of this over:

1. Using XBMC's built in player.
2. Using foobar2000 as an external player.

One presumes the advantage over 2 is that the interaction between XBMC and the player is much tighter. I'm not sure what the advantage over 1 is though.

Cheers,
Jonathan

I am trying to use external player to run foobar2000 but it does not work on my script.
here is my script
Quote:<playercorefactory>
<players>
<player name="MPC-HC" type="ExternalPlayer" audio="false" video="true">
<filename>C:\Program Files\MPC-HC\mpc-hc64.exe</filename>
<args>"{1}" /fullscreen /close</args>
<hidexbmc>false</hidexbmc>
<hideconsole>false</hideconsole>
<warpcursor>none</warpcursor>
</player>
</players>

<players>
<player name="Foobar" type="ExternalPlayer" audio="true" video="false">
<filename>C:\Program Files (x86)\foobar2000\foobar2000.exe</filename>
<args>"{1}" /fullscreen /close</args>
<hidexbmc>false</hidexbmc>
<trackvolume>true</trackvolume>
<hideconsole>false</hideconsole>
<warpcursor>none</warpcursor>
</player>
</players>
<rules action="prepend">
<rule video="true" player="MPC-HC">
<rule dvd="true" player="MPC-HC"/>
<rule filetypes="mkv" player="MPC-HC">
<rule filename=".*720.*|.*1080.*" player="MPC-HC"/>
</rule>
</rule>
<rule audio="true" player="Foobar">
<rule filetypes="flac|wav|cue" player="Foobar"/>

</rule>
</rules>
</playercorefactory>
Reply
#12
Remove lines 10 and 12
Reply
#13
Hi all,

I'm very interesting about this patch. Is some people succeed to instal it ? If yes, can upload the compiled version of XBMC.
Please Scottgardner, Help us Smile

Thx.
Reply
#14
(2012-11-02, 11:33)polarrys Wrote: 2.5 years later ....

Hello guys, I'm very interesting about this integration. Please, can you tell me your advance in this job.

For me, the only problem with the use of foobar on a external player is to play the next song.We must click on OK when the file has ended.

So, ... any news ?

With the new Audio Engine up and coming and WASAPI enabled allready within XBMC I dont see the use for this, perhaps I am wrong??
Reply
#15
(2013-01-17, 19:19)mrhyde1969 Wrote:
(2012-11-02, 11:33)polarrys Wrote: 2.5 years later ....

Hello guys, I'm very interesting about this integration. Please, can you tell me your advance in this job.

For me, the only problem with the use of foobar on a external player is to play the next song.We must click on OK when the file has ended.

So, ... any news ?

With the new Audio Engine up and coming and WASAPI enabled allready within XBMC I dont see the use for this, perhaps I am wrong??

you are right about wasapi, but FooBar has many other audiophile functionalities, for example FooBar is able to play DSD stream since two years.
In last year I saw a great job about Audioengine (Damian, Daniela et alt), only as video support,but no enhanced as "pure audio"
Reply

Logout Mark Read Team Forum Stats Members Help
FoobarPlayer patch1