XBMControl - a compact remote XBMC controller app for Windows (Open Source C# .NET)

  Thread Rating:
  • 3 Votes - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Post Reply
Bram77 Offline
Skilled Python Coder
Posts: 1,369
Joined: Feb 2008
Reputation: 32
Location: Netherlands
Thumbs Up  XBMControl - a compact remote XBMC controller app for Windows (Open Source C# .NET)
Post: #1
Download the latest version => 0.4.7

Something I've wanted for a long time is a easy to use and compact remote controller for XBMC. I have XBMC running on my xbox and don't want to have to have the TV on all the time. The web interfaces are nice, but not as intuitive as I'd like them to be be. Also, I don't want to have a browser opened all the time. So the ideal application from my perspective would run in the system tray and would give effortless feedback about what's going on in XBMC without it taking up to much of my time and too much space on my Windows desktop.
I'm learning C++ and (I'm a PHP programmer) and to get to know the concept of writing non-web based applications a bit faster (aside of learning C++) I decided to start writing a remote controller for Windows in C#.

To be able to eliminate fundamental errors early it would be nice if you'd help testing. I think the app can already be of use (a little bit)
To be completely clear: THIS APPLICATION IS FAR FROM FEATURE COMPLETE AND CONTAINS BUGS!


Screenshots

XBMControl (Clicking the "Artist - Song") label shows the song details
[Image: 1223686119_xbmcontrol%20v0.3.4.jpg]

Media Browser (Artist library in screenshot)
[Image: 1225935941_xbmcontrol_mediaBrowser2.jpg]

Configuration form
[Image: 1223085991_XBMControl_config030.jpg]

System tray and application context menu
[Image: 1223686340_xbmcontrol%20v0.3.4_contextmenu.jpg]

Now Playing info
[Image: 1222984724_XBMControl_npBalloon.jpg]

System tray volume control (middle mouse click)
[Image: 1223686480_xbmcontrol%20v0.3.4_volume.jpg]



Requirements

* Windows 2000/XP/Vista/2003 Server
* Download and install the required Microsoft .NET Framework Version 3.5, if not already installed.


Changelog

[0.4.2] - 06-10-2008
* Fixed a couple of bugs in the Media Browser
* Fixed error when running XBMControl at Windows startup
* Improved 'connected/disconnected' handling (still far from perfect)

[0.4.1] - 06-10-2008
* Completely revised the XBMC communication layer.
* Added basic database support
* Added playlist button
* (almost) Completely fixed playlist window losing focus
* Added "run at windows startup" feature again

[0.3.8] - 23-10-2008
* Again a lot of small improvements
* Added features to the media browser and playlist
* A bit better 'connection lost' handling
* Fixed problem with writing to log file on Vista (permissions problem)

[0.3.6] - 16-10-2008
* Added very basic playlist form and Media Browser (will be more feature-rich soon, application will crash when not connected to XBMC!!)
* Extended the XBMCcommunicator class with some file and playlist functionality

[0.3.5] - 11-10-2008
* Again many stability improvements
* Fixed Party Mode. Working now. ("P")
* Made the system tray volume control function better (middle mouse button on system tray icon)
* Made Last.FM Love/Hate buttons only available when user name and password are configured in XBMC
* Fixed now playing info not clearing when playback stops
* Fixed crash when sending media url to XBMC
* Partially fixed crashes when not able to connect to XBMC
* Improved the way XBMControl handles not being able to connect to XBMC due to missing or invalid ip.
* Made starting the application start minimized optional (configuration)

[0.3.4] - 11-10-2008
* Please ignore the "Show now playing window" option in configuration
* Major stability improvements
* Speed improvements
* Added Last.FM Love/Hate support (red and dark gray hearts)
* Added support for credentials !! NOT TESTED YET !!
* Added 'toggle repeat', 'toggle shuffle' and 'toggle party mode' buttons ("R" "S" "P") !! NOT TESTED YET !!
* Added mute button to system tray volume control (middle mouse button)
* Extended the XBMCcommunicator class with a lot of new functions
* Clicking the "Media type image" when playing audio opens the last.FM page related to the currently playing artist
* Made the cover art popup realizable
* Fixed volume being set to 0 without user interaction
* Somehow two new bugs came up. Screenshots don't seem to be working anymore with the latest non-svn build (Beta 2) and there is a problem with sending media url's to XBMC. Will be fixed soon!

[0.3.1a] - 06-10-2008
* Fixed some stability and performance issues
* Modified the XBMCcommunicator class (more functionality)

[0.3.1] - 06-10-2008
* Better information grabbing from XBMC (more efficient)
* Extended XBMCcommunicator class
* Fixed problems with XBMControl when it couldn't connect to XBMC

[0.3.0] - 04-10-2008
* Spent some time making XBMContol look nicer and at the same time provide the information in a less chaotic way. WIP!
* Added some methods to the XBMCcommunicator class to easily obtain mute-status, playing-status, pause-status and a method to get the current screen on XBMC in a screenshot.
* Some additional small fixes

[0.2.8] - 02-10-2008
* Added 'Show screenshot' option to the XBMC context menu
* Extended the XBMCcommunicator class with a method to download the cover art of the currently playing media.
* Added extra volume control option (click middle mouse on system tray icon)
* Changed scaling method from 'font' to 'dpi', hoping this will solve some scaling issues (haven't been able to test yet).
* Fixed some typos
* Added configuration option to tweak the connection timeout variable. Lower is better. If you're getting messages like 'Unable to connect to XBMC' randomly, this settings value is to low.
* Single clicking the system tray icon shows the now playing balloon tip, double clicking opens or hides XBMControl, middle mouse (scrollwheel) clicking show the volume control and right clicking opens the context menu.

[0.2.7b] - 02-10-2008
* Added full size image/cover art view (click thumbnail)

[0.2.7a] - 01-10-2008
* Overall stability and speed improvements
* Language system improved
* Even less network and XBMC host load
* Added restart/reboot/shutdown options (context menu)
* Added 'Run at Windows start up' option (configuration)
* Added French language (thank you kraxdaz!)
* More song info in 'Now playing' balloon tips

[0.2.6] - 01-10-2008
* Added language support. Add your own by copying "$PROGRAMFILES/XBMControl/language/english.xml". Name it to your language and edit the copy with your favorite text editor. Please email translation to me!
* Created basis NSIS installer. Uninstaller option added, shortcuts in start menu and on desktop. Adding shortcuts can't be disabled yet. This will be possible in the future.
* Overall code cleanup.
* Replaced Xbox icon with XBMC icon.
* Did some tweaking to minimize network activity and XBMC load by the built in web server.
* Changed context menu layout a bit.


TODO

* Save/load/create playlists
* Layout for video and image slideshow playing


Known Bugs

* XBMC screenshots not working a.t.m. (most likely a bug in XBMC)
* Unwanted behavior when XBMC connection is lost.

Download
[23-06-2009] v0.4.7 -> Download
[07-11-2008] v0.4.2a -> Download (Increase connection timeout, in configuration, to 3000 ms)
[06-11-2008] v0.4.2 -> Download
[06-11-2008] v0.4.1 -> Download
[23-10-2008] v0.3.8 -> Download
[19-10-2008] v0.3.7a -> Download
[16-10-2008] v0.3.6 -> Download
[11-10-2008] v0.3.5 -> Download
[11-10-2008] v0.3.4 -> Download
[06-10-2008] v0.3.1a -> Download
[06-10-2008] v0.3.1 -> Download
[04-10-2008] v0.3.0a -> Download
[04-10-2008] v0.3.0 -> Download
[02-10-2008] v0.2.8 -> Download
[02-10-2008] v0.2.7b -> Download
[01-10-2008] v0.2.7a -> Download
[01-10-2008] v0.2.6b -> Download


* The source code is available at google code (svn)

[Image: widget]

Please add to my reputation if you find my posts usefull (+/- button below posts)
Ubuntu 12.10 minimal XBMC auto-install script :: XBMControl :: Xbmc XBOX Skins :: XBMControl for Android :: Owner of Sudo Systems
(This post was last modified: 2009-08-20 22:24 by Bram77.)
find quote
Bram77 Offline
Skilled Python Coder
Posts: 1,369
Joined: Feb 2008
Reputation: 32
Location: Netherlands
Post: #2
Reserved for tips and tricks....

Ballooon tips not showing

If you're not getting any balloon tips and you do want the, this option is probably disabled in Windows. Follow the instructions below to enable them again.

* [Start] [Run] [Regedit]
* Registry Key: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced
* Modify/Create the Value Data Type(s) and Value Name(s) as detailed below.
* Data Type: REG_DWORD [Dword Value] // Value Name: EnableBalloonTips
* Setting for Value Data: [0 = Balloon Tips Disabled / 1 = Balloon Tips Enabled]
* Exit Registry and Reboot

[Image: widget]

Please add to my reputation if you find my posts usefull (+/- button below posts)
Ubuntu 12.10 minimal XBMC auto-install script :: XBMControl :: Xbmc XBOX Skins :: XBMControl for Android :: Owner of Sudo Systems
(This post was last modified: 2008-09-29 21:50 by Bram77.)
find quote
Bram77 Offline
Skilled Python Coder
Posts: 1,369
Joined: Feb 2008
Reputation: 32
Location: Netherlands
Post: #3
Something I can't figure out is how I can attach a "Scroll" event to the system tray icon. In linux it's possible to change the volume of Amarok by hovering the system tray icon and scrolling up or down. I love that and would like to implement it in XBMControl. Can anyone tell me how I can attach this event?

[Image: widget]

Please add to my reputation if you find my posts usefull (+/- button below posts)
Ubuntu 12.10 minimal XBMC auto-install script :: XBMControl :: Xbmc XBOX Skins :: XBMControl for Android :: Owner of Sudo Systems
find quote
topfs2 Offline
Team-XBMC Developer
Posts: 4,013
Joined: Dec 2007
Reputation: 10
Post: #4
Cool, this sounds like a great Application. I've always wanted to be able to control XBMC Via a small app like this Smile

Didn't know mono worked on c++ and .net? though it were C# only?

If you have problems please read this before posting

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: badge.gif]

"Well Im gonna download the code and look at it a bit but I'm certainly not a really good C/C++ programer but I'd help as much as I can, I mostly write in C#."
find quote
jmarshall Offline
Team-XBMC Developer
Posts: 26,181
Joined: Oct 2003
Reputation: 176
Post: #5
Nice work Smile

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: badge.gif]
find quote
topfs2 Offline
Team-XBMC Developer
Posts: 4,013
Joined: Dec 2007
Reputation: 10
Post: #6
hehe, it starts on linux with mono!

Great work!

If you have problems please read this before posting

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: badge.gif]

"Well Im gonna download the code and look at it a bit but I'm certainly not a really good C/C++ programer but I'd help as much as I can, I mostly write in C#."
find quote
Bram77 Offline
Skilled Python Coder
Posts: 1,369
Joined: Feb 2008
Reputation: 32
Location: Netherlands
Post: #7
Topfs2 Wrote:Cool, this sounds like a great Application. I've always wanted to be able to control XBMC Via a small app like this Smile

Didn't know mono worked on c++ and .net? though it were C# only?

For clarity .... Mono is the Linux version of the .NET framework. A lot of code can be used as is. Smile

[Image: widget]

Please add to my reputation if you find my posts usefull (+/- button below posts)
Ubuntu 12.10 minimal XBMC auto-install script :: XBMControl :: Xbmc XBOX Skins :: XBMControl for Android :: Owner of Sudo Systems
find quote
topfs2 Offline
Team-XBMC Developer
Posts: 4,013
Joined: Dec 2007
Reputation: 10
Post: #8
Yup. I actually imported the XBMCCommunicator and messed abit with it. The code that is messing is mainly form related.

But for linux plattform the best thing would probably be designing a GTK interface in anycase and skip windows.forms.

Anyhow, very good work.

Also, might be an early question but what license are you currently thinking of having this as?Rolleyes

If you have problems please read this before posting

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: badge.gif]

"Well Im gonna download the code and look at it a bit but I'm certainly not a really good C/C++ programer but I'd help as much as I can, I mostly write in C#."
find quote
Bram77 Offline
Skilled Python Coder
Posts: 1,369
Joined: Feb 2008
Reputation: 32
Location: Netherlands
Post: #9
To be honest.... I haven't got a clue about licensingSmile
But if any license contains "free to use source code in any form you'd like for non-commercial purposes"... that's the one Wink.

I'd like to keep the 'artistic' rights for the original app though.

[Image: widget]

Please add to my reputation if you find my posts usefull (+/- button below posts)
Ubuntu 12.10 minimal XBMC auto-install script :: XBMControl :: Xbmc XBOX Skins :: XBMControl for Android :: Owner of Sudo Systems
find quote
Bram77 Offline
Skilled Python Coder
Posts: 1,369
Joined: Feb 2008
Reputation: 32
Location: Netherlands
Post: #10
Does anyone know a good free installer application. NSIS takes a bit to much time to figure out.

I've added language support. A directory "language" has been added containing the language files. It woun't work yet to add a new language yourself. That will be fixed soon!

A archived download is available from http://xbmcontrol.googlecode.com/files/X...v0.2.5.rar
There have been some small changes to the XBMCCommunicator class, so if you want to use it, you could wait until it has evaluated a bit more Smile

[Image: widget]

Please add to my reputation if you find my posts usefull (+/- button below posts)
Ubuntu 12.10 minimal XBMC auto-install script :: XBMControl :: Xbmc XBOX Skins :: XBMControl for Android :: Owner of Sudo Systems
find quote
kraxdaz Offline
Junior Member
Posts: 7
Joined: Sep 2008
Reputation: 4
Post: #11
Good works man!
Maybe you can use the Installer integrated in Visual Studio?

=> Add a new project to your Solution => Other types of project => Deployment.

I'll try to re-use your code for a Windows Mobile Version, if you're ok??

Sorry for my english..

Bye!
find quote
Gamester17 Offline
Team-XBMC Forum Moderator
Posts: 10,523
Joined: Sep 2003
Reputation: 9
Location: Sweden
Thumbs Up   
Post: #12
This would IMHO be even better if combined with the XBMC Vista Sidebar Gadget, see:
http://forum.xbmc.org/showthread.php?tid...t=sideshow
and
http://forum.xbmc.org/showthread.php?tid=24600

Bram77 Wrote:To be honest.... I haven't got a clue about licensingSmile
But if any license contains "free to use source code in any form you'd like for non-commercial purposes"... that's the one
I will always prefer GPL, and this is why => http://www.dwheeler.com/essays/gpl-compatible.html

Wink

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.
find quote
Bram77 Offline
Skilled Python Coder
Posts: 1,369
Joined: Feb 2008
Reputation: 32
Location: Netherlands
Post: #13
kraxdaz Wrote:Good works man!
Maybe you can use the Installer integrated in Visual Studio?

=> Add a new project to your Solution => Other types of project => Deployment.

I'll try to re-use your code for a Windows Mobile Version, if you're ok??

Sorry for my english..

Bye!

I think anyone who wants to reuse the communicator class would be wise to wait with that for a littlebit. I will start integrating library support, system information, weather information and filemode support soon. Also, I think some things can be opttimized a bit in the current code.
But I love the enthousiasm and Id realy like a compact and streight forward .NET Compact version Smile. '

Ofcourse you should do whatever you want, the source is available for a reason Smile. It's just advice.

[Image: widget]

Please add to my reputation if you find my posts usefull (+/- button below posts)
Ubuntu 12.10 minimal XBMC auto-install script :: XBMControl :: Xbmc XBOX Skins :: XBMControl for Android :: Owner of Sudo Systems
find quote
Bram77 Offline
Skilled Python Coder
Posts: 1,369
Joined: Feb 2008
Reputation: 32
Location: Netherlands
Post: #14
Gamester17 Wrote:This would IMHO be even better if combined with the XBMC Vista Sidebar Gadget, see:
http://forum.xbmc.org/showthread.php?tid...t=sideshow
and
http://forum.xbmc.org/showthread.php?tid=24600

I will always prefer GPL, and this is why => http://www.dwheeler.com/essays/gpl-compatible.html

Wink

GPL sounds good. I'll look into it a biot more detailed once I've found the time.

If I'd be using Vista (which I don't and won't) the sidebar is the first thing I would disable. I like a clean desktop and minimalism. A balloontip is all I need for the basic info. But if anyone would like to use my code to integrate with the sidebar project.... Feel free!

[Image: widget]

Please add to my reputation if you find my posts usefull (+/- button below posts)
Ubuntu 12.10 minimal XBMC auto-install script :: XBMControl :: Xbmc XBOX Skins :: XBMControl for Android :: Owner of Sudo Systems
find quote
Bram77 Offline
Skilled Python Coder
Posts: 1,369
Joined: Feb 2008
Reputation: 32
Location: Netherlands
Post: #15
kraxdaz Wrote:Good works man!
=> Add a new project to your Solution => Other types of project => Deployment.

I'm using VC# Express. It doesn't come with a deployment tool... To bad, but thanks for the suggestion!

[Image: widget]

Please add to my reputation if you find my posts usefull (+/- button below posts)
Ubuntu 12.10 minimal XBMC auto-install script :: XBMControl :: Xbmc XBOX Skins :: XBMControl for Android :: Owner of Sudo Systems
find quote
Post Reply