Took me some months (luckily not fulltime

This caters to your needs if you have for instance a WiFi enabled laptop where your HiFi is connected to your stationary main machine. Or if you have your Jukebox with your clientele in your pub, but want to add some songs from behing the bar (or delete some

Remote desktop is an option here, but it is slow and often inconveniant. This plugin allows you to have one Silverjuke master running on a machine connected to your HiFi system. Naturally you can control Silverjuke directly using the keyboard/mouse of that machine.
But with this plugin you can start silverjuke on a second machine (your WIFi laptop), within a few seconds it copies the queue and play-settings from the master Silverjuke and plays the same song at the same position.
Now you can control the Silverjuke on the second machine, any changes are propagated to the master within a second.
Note that although the second machine does play music it is to be considered more-or-less a by-product, for instance the timing can deviate a few seconds. (That being said it might be fun to have your partner listen to the same music in another room in the house and have you both fighting over the same queue - the opposite of personal music...)
Usage:
The music library between the two must be IDENTICAL. The easiest way to do that is on the master share your music collection readonly (like share "C:\MP3" as "\\JUKEBOX\MP3".
Now use the share on both the master and the remote as your source of music, (don't use the local drive anymore on the master, use the share instead). Naturally just having a 100% identical C:\MP3 on both machines will also work, but I think a single shared tree is easier in the long run. In the future all this might be automated but for now this is what you get.
- networking.png (9.01 KiB) Viewed 15010 times
Now start the master Silverjuke. Configure as:
- mode = master
- master servername = (empty or don't care)
- port = 9999 (whatever, must be same for all systems)
- refreshtimer = 1000
- Poll interval = 5
- Show startup msg = yes (very advisable while testing)
Restart the master. Queue a few songs.
Now start the slave Silverjuke. Configure as:
- mode = slave
- master servername = <name of your master>
- port = 9999
- refreshtimer = 1000
- Poll interval = 5
- Show startup msg = yes
Restart the slave. It should magically queue the same songs as you did on the master.
Now try a third machine as another slave, a fourth...

If you have communicating problems first try if your machines see each other: try in a commandwindow if you have the correct name by using "ping <mastername>" from the slavemachine.
Also try in a browser on the master machine "HTTP://localhost:9999" (or whatever your portnumber). Then try in a browser on the slave machine "HTTP://<mastername>:9999".
About the timer settings: refreshtimer is the frequency (in ms) with which the plugin detects Silverjuke changes to the queue, so it has an effect on responsiveness slave->master and on CPU/network load. The poll frequency is the number of those timerticks between polls to the master for a complete status update, so it has an effect on the responsiveness master->slave (and again on CPU/network load).
NOTE:
- no credit support yet except accidental
- sharing the same database with --db is not a good idea as the slaves will mess up the playcounts
- Silverjuke 2.74 (fast work Team

SilverEagle
PS: I am totally exhausted from typing this long post, if you find any bugs please report them but I might take a day off...
[UPDATE v0.2]
- corrected version number release to match infobox & dllname
- simplified syncing mutexes, fixed unprotected section
- moved initialization of the timer to a program.onLoad construct
as possible fix for an unreproducable slave error
- cleaned up & commented source a bit for release
- added warning for 'remove played tracks from queue' setting (slaves only)