Skip to main content

Topic: Foo_osd (Read 85446 times) previous topic - next topic

0 Members and 1 Guest are viewing this topic.
  • Grave
  • [*]
Foo_osd
Reply #50
is there a way to position osd elements on multiple display setups?
i cant seem to get it display on my left monitor, it always shows on central primary monitor

Foo_osd
Reply #51
With the new Foo_osd update it is possible to use it on multiple monitors. Thanks, kode54!

Personally I'm still missing a way to show OSD Overlays _only_ when user was idle for specified time: I just don't want to show overlays when computer is in use.

  • bsw11
  • [*][*][*]
Foo_osd
Reply #52
I cannot seem to change the font color from the green to any other color.  Is anyone else having this issue? 

I am running W7 X64 with NVIDIA GTX 470 graphics.


OK I figured it out - you have the change the format string - but the color setting should do that as well I would think?

Thanks!
  • Last Edit: 23 October, 2010, 04:47:59 PM by bsw11

  • kode54
  • [*][*][*][*][*]
  • Administrator
Foo_osd
Reply #53
The color setting does not affect the text color if you use any color codes, and the reason for using a color code by default is that I was too lazy to add a default outline color setting. Removing the color code results in the text using the RGB inverse of the text color for the outline color. I should change the code to use a HSB brightness inversion instead.

Also, I wouldn't know how to make it only show overlays when the system is idle, as I don't know how to read the system idle time counter, and I don't want to implement my own input idle checking based on hooking every possible input device in the system and running my own idle counter.
  • Last Edit: 23 October, 2010, 06:58:09 PM by kode54

Foo_osd
Reply #54
Also, I wouldn't know how to make it only show overlays when the system is idle, as I don't know how to read the system idle time counter, and I don't want to implement my own input idle checking based on hooking every possible input device in the system and running my own idle counter.


Thanks for your answer.

There are standalone apps (like nnCron, for example), which can detect the user idle state. But there is no way to enable/disable overlays from another app... So, maybe it is possible to implement some external app control (starting/stoping overlays from command line, windows messages, file flags or smth like this) if you don't want to implement idle time control?

  • kode54
  • [*][*][*][*][*]
  • Administrator
Foo_osd
Reply #55
Aha, GetLastInputInfo should be useful for this purpose. I will be able to add a configurable delay before overlays start appearing, or trigger overlays after that much time. Of course, adding extra information to the configuration will require a careful means of implementing backwards compatibility, since I didn't add a version field to my configuration data like I probably should have.

Foo_osd
Reply #56
Aha, GetLastInputInfo should be useful for this purpose.


Great news!.. I'm dreaming about an option which will allow me to start displaying overlays when user idle time exceeds configurable amount of time (say, 5 minutes) and to stop displaying overlays immediately when user activity is detected again.
I'm ready for some testing (if you need this).

  • kode54
  • [*][*][*][*][*]
  • Administrator
Foo_osd
Reply #57
Okay, I've implemented the idle display control. It can also only display the overlay until the system is idle, in case anyone wants that.

Foo_osd
Reply #58
I've implemented the idle display control.


Hmm... Does not seems to work or me (Win7 Ultimate, Fb2000v1.1.1b2, On-Screen Display GDI+ 1.64).
I have set 'On idle timeout' to 10 seconds and checked 'Hide until idle, then display'. But the overlay never pops up.
Here is a screenshot of my configuration: http://goo.gl/AH7h

If there is a chance that foo_osd thinks user never becomes idle on my PC? Can I have a debug build which will continuously show (or log) the idle time counter?

Foo_osd
Reply #59
If there is a chance that foo_osd thinks user never becomes idle on my PC?


Exactly! It turns out, that foo_noss plugin was resetting the user idle count to prevent screensaver from starting. Now (after disabling foo_noss) foo_osd seems to work as expected.

Foo_osd
Reply #60
Ok, I have set foo_osd to 'Hide until idle, then display' (http://goo.gl/AH7h). Here is what happens:

- when user is active right after launching FB2000 the overlay is hidden (right!)
- when idle counter is greater than set in foo_osd options the overlay appears on the screen and changes every new song (right!)
- when user activity is detected again the last shown overlay stays on the screen until the user becomes idle again (wrong!)

The last item seems wrong to me. There is no reason to show outdated song info on screen while the user is not idle. I was expected the overlay to disappear when user activity is detected again (we are trying to 'Hide until idle', aren't we?). Is it possible to implement this?

Thank you!
  • Last Edit: 25 October, 2010, 04:51:36 AM by Valery_Kondakoff

  • kode54
  • [*][*][*][*][*]
  • Administrator
Foo_osd
Reply #61
Fixed.

Foo_osd
Reply #62
Another one issue: when foo_osd is set to 'Hide until idle, then display' the overlay is displayed when idle counter is greater than set in foo_osd options even when there is no song played in FB2000: the player is loaded but not started (not even paused). Can this be fixed?

Thank you!

Foo_osd
Reply #63
The same happens when FB2000 stops playing reaching the last song in the playlist: the overlay with the last song info stays on screen until there is some user activity.

  • kode54
  • [*][*][*][*][*]
  • Administrator
Foo_osd
Reply #64
Hiding the overlay through the hide on stop trigger should stop it from reopening on idle when no track is playing now.

I'm not sure if I should do anything about the overlay not opening on idle if you activate the idle option after starting playback and no track change has occurred.

Foo_osd
Reply #65
Hiding the overlay through the hide on stop trigger should stop it from reopening on idle when no track is playing now.


Thank you a lot! Now foo_osd manages idle timeout exactly as I expected.

There is still one cosmetic issue: If you disable 'Display forever' check-box, the overlay will appear on screen on idle timeout, then will stay on screen as long as it is specified in 'Display time' option and then disappear, but immediately appear again in a loop. (Options pop-up on 'Stream titles', 'Dynamic bitrate, etc' are switched off).

I'm not affected of this issue because I'm using foo_osd in 'Display forever' mode, but it seems, that when user disables 'Display forever' he is expecting overlay to disappear until there is another one specifyed trigger.


  • kode54
  • [*][*][*][*][*]
  • Administrator
Foo_osd
Reply #66
Yeah, I've fixed that issue as well. Now the idle checker timer remembers whether it was idle or active the last time the state was checked, so it won't repeatedly open or hide the overlay.

  • kode54
  • [*][*][*][*][*]
  • Administrator
Foo_osd
Reply #67
Bump for working keyboard shortcuts. Sorry, they're tied to overlay number and not name, but that should be fine as long as you don't go deleting overlays without fixing your shortcuts afterward.

The commands are under [main] -> View -> On-Screen Display, although for some reason, probably because I'm an idiot, they don't appear in the actual main menu, just the keyboard shortcuts preferences dialog.
  • Last Edit: 23 November, 2010, 02:01:38 AM by kode54

  • Ishikawa
  • [*]
Foo_osd
Reply #68
Great plugin!

I have my title pop-up set how I like.. but when the font is set to the size that I can easily read it, quite often long album or track titles go off screen. Is there any way to have it wrap the text to fit within a certain width? Or multiple lines?

Cheers.

  • kode54
  • [*][*][*][*][*]
  • Administrator
Foo_osd
Reply #69
There is no automatic wrapping, but you may insert your own line feeds with $char(10) and separate the different fields into their own lines.

  • Ishikawa
  • [*]
Foo_osd
Reply #70
There is no automatic wrapping, but you may insert your own line feeds with $char(10) and separate the different fields into their own lines.



Ahh yes, thanks!

Foo_osd
Reply #71
Hi!

I'm trying to use the latest foo_osd with the following scenario:

- when there is no user activity for 30 seconds the song info appears
- if there is no user activity for 5 minutes the display is turned off and song info appears on black background
- when there is user activity detected the display is turned back on and song info disappears

The problem is that when display is turned off after 5 minutes idle timeout the song info disappears as well and reappears only when FB2K switches to the next song. Unfortunately checking 'Interval update' option does not help to make overlay to re-appear faster after display is turned off.

If there is some workarounds to make foo_osd detect that display was turned off and force redraw the song info?

Thanks!..

  • kode54
  • [*][*][*][*][*]
  • Administrator
Foo_osd
Reply #72
There is no way to make foo_osd blank your entire display and only show song information.

Foo_osd
Reply #73
Oops! Sorry, it seems I was not clear enough: there is no need to blank the entire display.

The problem is that when the entire screen is blanked by Windows Power management (after 5 minutes of user inactivity) the song information is blanked as well and it reappears only when foobar2000 swithches to the next song.

So, the question was: is it possible to detect that the entire screen was blanked and redisplay the song info?

  • kode54
  • [*][*][*][*][*]
  • Administrator
Foo_osd
Reply #74
I'm amazed it even displays at all when the screen is blanked. So probably no.