Author Topic: 'screensaver' playing view mode for HTPC plasma/lcd displays  (Read 81204 times)

ma_t14

  • Hero Member
  • *****
  • Posts: 2493
I wish the plugin had an option to periodically change the background with all the images in the screen sever plugin folder.
What do you think ???

+1

Steven

  • Administrator
  • Hero Member
  • *****
  • Posts: 34985
background image (and associated optional settings file) is now supported:
http://musicbee.niblseed.com/V2/ScreenSaver.zip

as you will see from the zip file, a "ScreenSaver.Rotation" sub-folder is available for you to place any background images. You can also assign a specific settings file to that image by naming the settings file the same as the picture with a .xml extension. If its not there then the default settings file is used
eg.
Plugins\ScreenSaver.Background.jpg
Plugins\ScreenSaver.Settings.xml
Plugins\ScreenSaver.Rotation\Relax.jpg
Plugins\ScreenSaver.Rotation\Relax.xml
Plugins\ScreenSaver.Rotation\Background 2.jpg
Plugins\ScreenSaver.Rotation\Rainbow.jpg

then the Relax screen saver will use the override settings file Relax.xml and the others will use the default.
in Plugins\ScreenSaver.Settings.xml, you can set the rotation period in seconds
<settings rotationPeriod="300" />


phred

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 10272
Very nice work on this, Steven.

For those of use with dual (or multiple) monitors, would there be an easy way to support the screensaver on one and black on the others?

Thanks.
Download the latest MusicBee v3.6 patch from here.
Unzip into your MusicBee directory and overwrite existing files.

----------
The FAQ
The Wiki
Custom Forum Search
Posting screenshots is here

Steven

  • Administrator
  • Hero Member
  • *****
  • Posts: 34985
not exactly what you want but if you edit the .xml file you will see this:
<!-- monitor: -1 = all screens, otherwise the index (starting from 1) of a single monitor the screen saver should display in -->
<settings monitor="-1" />

so set it to one of your monitors and for the other perhaps you could just turn it off

edit:
thinking about it, if the windows screensaver would have been activated what i will do in the above is black out the other screens. If you manually activate the screen saver then the other screens will remain active
Last Edit: February 26, 2012, 05:46:15 PM by Steven

phred

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 10272
edit:
thinking about it, if the windows screensaver would have been activated what i will do in the above is black out the other screens. If you manually activate the screen saver then the other screens will remain active
You are perceptive.  Your original comment was not exactly what I wanted as the monitor with MB would go to screen saver and the other monitor would remain live.  Your edit makes it more in line with what I was thinking and will do the trick for me.

Thanks!
Download the latest MusicBee v3.6 patch from here.
Unzip into your MusicBee directory and overwrite existing files.

----------
The FAQ
The Wiki
Custom Forum Search
Posting screenshots is here

Steven

  • Administrator
  • Hero Member
  • *****
  • Posts: 34985
phred, i will need you to test this:
http://musicbee.niblseed.com/V2/ScreenSaver.zip

i have added a settings parameter
<!-- monitor: -1 = all screens, otherwise the index (starting from 1) of a single monitor the screen saver should display in
      otherMonitors: blackout = other monitors will display black;
                           active = other montitors will stay active and usable
           - this setting only applies when a specific monitor is set and the screen saver is manually activated. If activated by windows the other monitors always black out
-->
<settings monitor="1" otherMonitors="active" />

when setting the screen saver to display in a specific monitor, if activated in place of the windows screen saver the other screens now black out for any setting. If activated manually only the specific screen will show a screen saver and the other screens will either blackout or stay active depending on the otherMonitors setting

phred

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 10272
Well, it's certainly not working as I expected. 

With the monitor line set as:
<settings monitor="1" otherMonitors="active" /> activating the screensaver from the View menu the main monitor goes to screensaver and the other monitor remains active, which is correct.  If the MB screensaver is activated by the timer setting in Windows, the Windows screensaver kicks in on both monitors UNTIL I move the mouse (or hit a key) and then the MB saver is present on the main monitor, with the second monitor active.  HOWEVER, I can not get the MB saver to go away from the main monitor.  I had to bring up Task Manager to kill it.

With the monitor line set as:
<settings monitor="1" otherMonitors="blackout" /> no matter how the saver is activated I get the Windows saver until I move the mouse or hit the keyboard, then the MB saver present on the main monitor but won't go away until I invoke Task Manager.

Let me know what other information I can provide to help you fix this.

Thanks.
Download the latest MusicBee v3.6 patch from here.
Unzip into your MusicBee directory and overwrite existing files.

----------
The FAQ
The Wiki
Custom Forum Search
Posting screenshots is here

Steven

  • Administrator
  • Hero Member
  • *****
  • Posts: 34985
for otherMonitors="blackout", i dont see how what you say is possible if the screen saver is manually activated - MB doesnt invoke the windows screensaver.
So could you reconfirm what you said

it would be my understanding of what you are saying is if the MB screensaver is manually activated it is correct (and should be the same for "blackout"), but if invoked by windows, MB isnt stopping the windows screensaver as it should and gets itself in a state where it doesnt close on mouse events (probably because it doesnt have focus)
Last Edit: February 26, 2012, 09:56:56 PM by Steven

phred

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 10272
When all else fails, try rebooting.

Is there a setting in the XML for the wait time before the ss kicks in?  I don't see one, so I assume the wait time comes from the Windows ss setting.   I set the Windows wait time for 1 minute, and I think that's why the Windows ss kicks in first.  That responds to mouse action and goes away, leaving the MB saver showing.  But as before, it doesn't close.  Probably because, as you say, it doesn't have focus.

To summarize, if I invoke the MB ss from the View menu, monitor 1 has the ss, monitor 2 is active.  But I can't clear the ss from monitor 1.  If I let the ss wait for 1 minute, the Windows saver shows up on both monitors until a mouse/keyboard event.  Then the MB ss shows up on monitor 1 and monitor 2 is active.  And again, the ss won't clear unless I get Task Manager.  I guess I'm confirming what I said originally.

Download the latest MusicBee v3.6 patch from here.
Unzip into your MusicBee directory and overwrite existing files.

----------
The FAQ
The Wiki
Custom Forum Search
Posting screenshots is here

Steven

  • Administrator
  • Hero Member
  • *****
  • Posts: 34985
you might have missed some earlier posts so i will summarise the behavior

the following applies if you activate the screen saver manually:
- when you have the configuration set so the other monitors stay active the behavior is that you need to click the screen saver window and moving the mouse will not close it. This is intentional so you can have musicbee displaying the screen saver in one monitor and still use your computer as normal. If you are using another app and let it idle then the normal windows screen saver will eventually activate, and moving the mouse will close the windows screen saver as normal. But the MB screen saver will still show.
Perhaps its misleading to call MB a screen saver when used with this configuration
- when you have the configuation set so the other monitors black out, then it should behave like a normal screen saver and hide the cursor/ close on moving or clicking the mouse anywhere on any of the monitors

if the screen saver is activated by a wait period from windows:
- only if musicbee is playing a track and has focus will the musicbee screen saver activate in place of the windows screen saver. This is intentional because other apps might want to do their own thing with a screen saver. When activated this way, the other monitors will black out irrespective of the configuration and should behave like a normal screen saver (from your report perhaps it is not).
- If these conditions are NOT met, then the windows screen saver should activate (unless another app does something itself) and the MusicBee screen saver should not display

so with this understanding, is there any incorrect behavior? (eg. perhaps you thought moving the mouse would close the screen saver as used in the first configuration)
Last Edit: February 26, 2012, 10:57:39 PM by Steven

phred

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 10272
This may be yet another of those "phred only" issues, but yes, I feel there is incorrect behavior.

With the monitor line set to "active" or "blackout" the behavior is the same when the ss is activated by a wait period from windows.
- windows ss set to 1 minute wait
- MB ss set for monitor 1; active (or blackout) set for other monitor
- MB playing a track and has focus
- after 1 min windows ss launches on both monitors
- mouse or keyboard action closes windows ss on both monitors which then shows MB ss on monitor 1 and the active desktop on monitor 2 (whether set to active or blackout)  [This is the first of two incorrect behaviors.  If set to blackout, I would expect monitor 2 to be black at this point]
- neither clicking the mouse (on monitor 1) nor moving the mouse nor keyboard action closes the MB ss [This is the second incorrect behavior.]
- only task manager closes the MB ss

 I'm pretty sure you've said that you don't have two monitors, so I'm wondering if someone who does have two monitors would try to confirm the behavior.

Thanks for putting up with this.  If I'm still not understanding how this should behave, just tell me and I'll drop it.
Download the latest MusicBee v3.6 patch from here.
Unzip into your MusicBee directory and overwrite existing files.

----------
The FAQ
The Wiki
Custom Forum Search
Posting screenshots is here

paq

  • Sr. Member
  • ****
  • Posts: 386
First off, I just want to say that this plugin is really awesome! Only about a week ago there was simply a wish and a conceptual image, and now we have this with full customization and neat features! I was going to ask for dual monitor support but you read my mind before I even got to it. Good work, Steven! :)

Secondly, I have two monitors and I'm running Windows 7. I can reproduce the same problem phread has above.

There is no difference regarding the setting of otherMonitors, when set to "blackout" the other monitor still shows desktop while the first one shows MB screensaver after Windows screensaver has stopped. I can only stop the MB screensaver from the task manager or from the task bar: hovering over the MB icon shows the screensaver as an application that can be closed next to the MB application.

Also, I have noticed this: If I set otherMonitors to "blackout" and invoke the screensaver manually, there is no blackout on the other screen. It looks the same as if the setting was "active", however with the setting of "blackout" I can not quit the screensaver by mouse click or key press (just like the issue above).  

Edit:

Summary for two monitors. 1 and 2 with task bar only on 2:
When invoked manually (by hotkey):
* If monitor="-1" -- Everything works as expected
* If monitor="1" and otherMonitors="active" -- Everything works as expected
* If monitor="1" and otherMonitors="blackout"
-- MB screensaver shows on monitor 1, monitor 2 is still active.
    Screensaver must be quit from task manager or task bar.

* If monitor="2" and otherMonitors="active" -- Everything works as expected
* If monitor="2" and otherMonitors="blackout"
-- Monitor 1 is active, monitor 2 is black.
    "Blackout" on monitor 2 does not respond to mouse click.
    Alt+Tab will show task bar from where it can be quitted (the "black" does not show in task manager).


When MB has focus and is invoked by Windows screensaver timer:
* If monitor="-1" -- Everything works as expected
* If monitor="1" and otherMonitors="active"
-- Windows screensaver shows first.
    Once gone, MB screensaver shows on monitor 1 and monitor 2 is active.
    Screensaver can only be quit from task manager or task bar.

* If monitor="1" and otherMonitors="blackout"
-- Windows screensaver shows first.
    Once gone, MB screensaver shows on monitor 1 and monitor 2 is active.
    Screensaver can only be quit from task manager or task bar.

* If monitor="2" and otherMonitors="active"
-- Windows screensaver shows first.
    Once gone, monitor 1 is active, monitor 2 is black.
    Alt+Tab will show task bar from where it can be quitted (the "black" does not show in task manager).

* If monitor="2" and otherMonitors="blackout"
-- Windows screensaver shows first.
    Once gone, monitor 1 is active, monitor 2 is black.
    Alt+Tab will show task bar from where it can be quitted (the "black" does not show in task manager).


When MB does not have focus and Windows screensaver timer runs out:
Everything works as expected

For me I'm perfectly fine as I'm only gonna use it for monitor 1, the "active"-setting and start/stop it manually. But if you want I can help you track down the bugs.
Last Edit: February 27, 2012, 04:59:23 AM by paq

Steven

  • Administrator
  • Hero Member
  • *****
  • Posts: 34985
updated:
http://musicbee.niblseed.com/V2/ScreenSaver.zip

i fixed a silly bug that seems consistent will all the reported findings (but i cant test myself to be 100% sure)

jistme

  • Guest
Not sure if it's due to my sometimes buggy videodrivers, but I found that the Spectrum Visualizer works fine for all images with corresponding xml files in the 'rotation' folder, but when showing the default ScreenSaver.Background.jpg image the Visualizer is corrupted for that screen. The visualizer in the next screens from the rotation folder are all o.k. again.

Is it ment to include the default image in the rotation, or should only the images and settings in the rotation folder be displayed and rotated?
A setting for behaviour I would like is that it first shows the screensaver.background.jpg image once, and after that only rotates all pictures in the rotation folder.

(if anyone want to test my screensaver settings, I just posted it in the customisations > screensaver topic, called 'rainbow wave plasma rotation')
 

 

Steven

  • Administrator
  • Hero Member
  • *****
  • Posts: 34985
i've not seen any corruption with the visualiser default or rotation and its exactly the same code as the rotation images. Perhaps there is something different you did for the settings of that file that causes a video bug (maybe try temporarily using one of the rotation image settings in place of the default to confirm)