Kodi Community Forum
XBMControl - a compact remote XBMC controller app for Windows (Open Source C# .NET) - Printable Version

+- Kodi Community Forum (https://forum.kodi.tv)
+-- Forum: Support (https://forum.kodi.tv/forumdisplay.php?fid=33)
+--- Forum: Supplementary Tools for Kodi (https://forum.kodi.tv/forumdisplay.php?fid=116)
+--- Thread: XBMControl - a compact remote XBMC controller app for Windows (Open Source C# .NET) (/showthread.php?tid=38120)

Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24


- Bram77 - 2008-11-06

Here you go!

http://xbmcontrol.googlecode.com/files/XBMControl%20v0.4.1%20Portable.zip


- taoizt - 2008-11-06

Wow, excellent this update!
goed gedaan Nod


- Bram77 - 2008-11-06

Thanks Smile

I've uploaded a new version (0.4.2) that fixes some bugs

Download Installer
Download Portable version


See start post for Changelog


- Livin - 2008-11-06

Tested the portable version... very nice!

With a few interface changes (to fit on QVGA + VGA screens) this would make a fantastic Windows Mobile (pocketpc) controller for XBMC.

I could see multi-zone audio (any wonderful dev want to tackle it?) using Bram77's controller on your Windows Mobile phone to control all the zones.

thanks Bram!


- Bram77 - 2008-11-06

What do you mean by "multi-zone"?


- Livin - 2008-11-06

Bram77 Wrote:What do you mean by "multi-zone"?

Concept:

XBMC controls the PC's sound card(s) and uses each channel to create zones

e.g. Zone1 = Front L&R , Zone2 = Rear L&R, Zone3 = LFE, etc
.
This enables the user to connect to an amp to each Zone output on the sound card, each runs to a separate set of speakers, in a different room/location

XBMC acts as a switch (on/off), router (which audio goes to which zone), and volume control for each output, separately
- acts as multiple "source" switch, thus each zone can play different audio

The control interface needed to control multiple rooms/zones becomes XBMC's GUI


Successful multi-zone control includes...

1) GUI interface to control all zones
2) Complete command set available via http
3) Ability to send different audio streams to each zone
4) Ability to use each 'channel' of a sound card as a single/separate zone
... e.g. a 5.1 built-in sound card could run 6 separate zones


- Bram77 - 2008-11-06

I've made a separate package for the XBMC.Library in it's current state. It's not complete yet but maybe someone feels like checking out what is needed to port it to .NET mobile and Mono.

Download C# 3.5 - XBMC.Library v0.4.2


There are no comments at all so I'll explain basic usage...

Create a XBMC_Communicator instance...
Code:
XBMC_Communicator XBMC = new XBMC_Communicator();

Set XBMC server ip...
Code:
XBMC.SetIp("192.168.1.100");

Optionally set login credentials
Code:
XBMC.SetCredentials("username", "password");

Check if the Communicator can connect with the configured ip and check if the WebService is enabled...
Code:
if (XBMC.Status.IsConnected())
{
   if (XBMC.Status.WebServerEnabled())
   {
        ...... your code here.....
   }
}

Refresh XBMC status data (I use a timer to refresh every second)..
Code:
XBMC.Status.Refresh();

Some library usage examples...
Code:
int curVolume = XBMC.Status.GetVolume();
XBMC.Controls.SetVolume(75);
int curProgress = XBMC.Status.GetProgress();
XBMC.Controls.SetProgress(55);
string nowPlayingArtist = XBMC.NowPlaying.Get("artist");
bool isPlayingLastFm = XBMC.Status.IsPlaying("lastfm");
bool isPlaying = XBMC.Status.IsPlaying();
XBMC.Controls.Play();
string[] artistSongs = XBMC.Database.GetTitlesByArtist("Sting");
string[] artistAlbums = XBMC.Database.GetAlbumsByArtist("Sting");
string[] artistAlbumPaths = XBMC.Database.GetAlbumPathsByArtist("The Police");

The function names should be pretty self-explaining. There are still a lot of features to add and a lot of stuff wil be simplified, but this takes time Smile.


- soder - 2008-11-06

idioteque Wrote:call me stupid, what password and username do I fill in and how and where do I configure XBMC

user is "xbox" i think
psw can you set in xbmc under network

/Söder


- taoizt - 2008-11-07

Wow again! Especially the C# library could have great value to developers. Looks clean.


- Bram77 - 2008-11-07

idioteque Wrote:call me stupid, what password and username do I fill in and how and where do I configure XBMC

In XBMC go to "Settings"->"Network"
One of the options presented is "Server" (second option with the PMIII skin) where you can enable/disable the "Webserver". The Webserver must be enabled to use XBMControl.

You can configure a custom port if you wan or need to (if you have already running a webserver on the XBMC host the port 80 will be occupied). If you change the port it should be configured accordingly in XBMControl.
Suppose your XBMC (XBOX or XBMC server) ip id 192.168.1.100 and the port you've configured for the XBMC webserver is 8080, ip XBMControl you should enter in the "address field" -> "192.168.1.100:8080".

If you don't configure a password in the "Servers" screen in XBMC, no credentials are required. If you do choose to use a password the default username will be "xbox" and the password "yourpassword".

Hope this clears things up.


- Bram77 - 2008-11-07

I've uploaded another bugfix version.

Please increase your connection timeout to at leas 3000 ms if you've had XBMControl installed before.

The default value now is 3000 ms. This is because of the new method used to test the connectivity with XBMC. If this value is lower you might run into unexpected 'Connection Lost' messages.

I've also improved the playlist showing because it still was hidden sometimes.

Download v0.4.2.a Installer
Download v0.4.2a Portable

The Library package will be updated once there have been more changes.


- taoizt - 2008-11-13

I'm trying this application almost daily, and am happy with it (using version 0.42a). There are 2 things now that are not optimal yet:

- Now and then the application seems to loose the connection with the Xbox so the display reads 'not connected' although the music is still playing... a timeout value of 3000 still doesn't seem enough..

- Each time i'm booting my computer, it autostarts the application although i disabled the setting to autoboot. this is somewhat annoying because my xbox is not always on...

For the rest.....the application is getting better and better!


- DarkHelmet - 2008-11-15

This is very handy. Well done, thanks.

One small thing though. Right now the media browser is always in foreground. Would it be possible to change that, that it acts they way the rest of the windows does?


- Livin - 2008-11-15

Bram,
This is very nice! Have you given any thought to trying the multi-zone audio portion?


- matthuisman - 2008-11-17

hey!
i am getting an error when trying to play a song from the library or take a screen shot etc etc.
Heres the DEBUG:
************** Exception Text **************
System.FormatException: Invalid character in a Base-64 string.
at System.Convert.FromBase64String(String s)
at XBMC.XBMC_Controls.Base64StringToImage(String base64String)
at XBMControl.MainForm.cmsShowScreenshot_Click(Object sender, EventArgs e)
at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
at System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
at System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
at System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
at System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
at System.Windows.Forms.ToolStrip.WndProc(Message& m)
at System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Any ideas?