Jump to content

Roku indicator overlays (Linux related)


Jackrats

Recommended Posts

Jackrats

I'm moving my MB3 server (3.0.5445.6) over to a more powerful machine (fairly vanilla CentOS 7 install) than the one I've been testing on originally.

 

After doing so, the little green circles with the episode counts / watched statuses now come up as blank green circles -- no text within them.

 

The server logs this when it happens:

2014-12-17 08:50:34.6939 Error - ImageProcessor: Error drawing indicator overlay
        The requested FontFamily could not be found [GDI+ status: FontFamilyNotFound]
        System.ArgumentException
          at System.Drawing.GDIPlus.CheckStatus (Status status) [0x00000] in <filename unknown>:0 
          at System.Drawing.FontFamily..ctor (GenericFontFamilies genericFamily) [0x00000] in <filename unknown>:0 
          at (wrapper remoting-invoke-with-check) System.Drawing.FontFamily:.ctor (System.Drawing.Text.GenericFontFamilies)
          at System.Drawing.FontFamily.get_GenericSansSerif () [0x00000] in <filename unknown>:0 
          at System.Drawing.Font.CreateFont (System.String familyName, Single emSize, FontStyle style, GraphicsUnit unit, Byte charSet, Boolean isVertical) [0x00000] in <filename unknown>:0 
          at System.Drawing.Font..ctor (System.String familyName, Single emSize, FontStyle style, GraphicsUnit unit, Byte gdiCharSet, Boolean gdiVerticalFont) [0x00000] in <filename unknown>:0 
          at System.Drawing.Font..ctor (System.String familyName, Single emSize, FontStyle style, GraphicsUnit unit) [0x00000] in <filename unknown>:0 
          at (wrapper remoting-invoke-with-check) System.Drawing.Font:.ctor (string,single,System.Drawing.FontStyle,System.Drawing.GraphicsUnit)
          at MediaBrowser.Server.Implementations.Drawing.UnplayedCountIndicator.DrawUnplayedCountIndicator (System.Drawing.Graphics graphics, Size imageSize, Int32 count) [0x00000] in <filename unknown>:0 
          at MediaBrowser.Server.Implementations.Drawing.ImageProcessor.DrawIndicator (System.Drawing.Graphics graphics, Int32 imageWidth, Int32 imageHeight, MediaBrowser.Controller.Drawing.ImageProcessingOptions options) [0x00000] in <filename unknown>:0 

Seems like it's missing some sort of Sans Serif font, but I have no idea which.

post-7739-0-90129000-1418825372_thumb.jpg

Edited by Jackrats
Link to comment
Share on other sites

thefirstofthe300

I know that the server uses Roboto for most of the fonts. Not sure about the bubbles.

Link to comment
Share on other sites

Jackrats

So, I started browsing the source code based on the stack trace and came up with some font names.

 

In MediaBrowser.Server.Implementations/Drawing/UnplayedCountIndicator.cs, the unplayed episode counter seems to look for a font named "Sans-Serif":

using (var font = new Font("Sans-Serif", fontSize, FontStyle.Regular, GraphicsUnit.Pixel))

And in MediaBrowser.Server.Implementations/Drawing/PlayedIndicatorDrawer.cs, the check mark uses "Webdings":

using (var font = new Font("Webdings", FontSize, FontStyle.Regular, GraphicsUnit.Pixel))
graphics.DrawString("a", font, fontBrush, x, OffsetFromTopRightCorner - 2);

Webdings seems to be a Microsoft font and the "a" character maps out to a checkmark in the font. Curiously, when I had MB3 installed on my webserver/mailserver machine, the circle would have the corner of an "a" in it for already played media. I can now see why. What I don't understand though is why that machine actually picked some font whereas my new machine completely fails to find a font to use here.

 

I tried copying Webdings from my Windows PC into my system's font location and rebuilding the font cache, but MB3 still doesn't find it.

 

So I'm wondering now if the font has to be installed somewhere special for mono to be able to use it.

Link to comment
Share on other sites

Nice work hunting it down. We will be reworking our image processing over the next month or so, so I probably won't dig too hard into this. But it has worked on some distros/osx because some do have wingdings available. in the meantime, yes, you'll probably have to keep working at it.

Link to comment
Share on other sites

Jackrats

Thanks Luke. Do you know if mono uses the normal X11 system font path, or does do something special for fonts?

 

Unfortunately, searching for "mono" and "font" is a useless endeavor unless you want information on monospace fonts.  ;)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...