Jump to content
LaunchBox Community Forums

Ao.Bigbox Customs


Recommended Posts

Ao.Bigbox Customs

View File

Ao.Bigbox Customs is a collection of LB/BB plugins. The Themer library contains custom controls useful for theme developers. The Dropins library contains true plugins you can just drop into the LB plugins folder. By default, the only drop-in enabled is WootLauncher; enabling the other drop-ins is easy (see the PDF doc download). Here are the included drop-ins:

GameManualViewer: Adds menu item "Game Manual 8D" (string is customizable) to the game details menu in BB, if the game has an associated PDF manual. When activated, the PDF will be read and converted to images on the fly for display within BigBox; it will not launch an external program. As occasionally some manuals take a few seconds to load, an animated GIF is displayed while you wait. The gif is currently a space invader, but I might add customization in the future. When viewing the PDF manual, use the standard keys (or gamepad buttons) used to navigate around BigBox.

PlatformAuditor: Adds another media audit tool for LB with support for OCD-type personalities. This can help you quickly find a platform's missing game media and rename media according to the game's title. It can also be used to delete superfluous media. It works for images, manuals, music, and videos. As with any tool that potentially modifies your library, consider backing up your media folders before using this.

PlatformExporter: Adds a simple way to export games including metadata and boxart to other applications. Currently, the only application to which it exports is EmulationStation. Support for other applications might be added in the future, if there is enough demand and I have enough time and interest in doing so.

PlaylistGenerator: Adds playlists to your library but does not otherwise alter your library. Playlists are regenerated each time LB/BB is started. You can add your own media (videos, banners, etc) for the playlist, in the same way you would for manually generated playlists in LaunchBox. This media will not be overwritten when the playlists are regenerated. You can customize the names of these playlists and number of games added to each.

WootLauncher: Adds game load/exit screens, pause screens including support for viewing PDF manuals and save/load states, and bezels/overlays (useful for emulators which do not themselves support overlays). There is a separate download page dedicated to WL:

Spoiler

 

Here are some of the themes that use Ao.Bigbox.Themer

  • FluxCRT - videos displayed within a mock CRT including curvature effect
  • MinimalX - simple but very flexible (skinnable) theme with some cool controls
  • Nostalgia - videos displayed within viking's clean and nostalgic platform images
  • Refaktor - clean view suited for 16:9 or 4:3 displays and videos/screenshots of all sizes

 

  • Like 3
  • Unusual Gem 1
Link to comment
Share on other sites

  • 4 weeks later...
  • 4 weeks later...
10 hours ago, wallmachine said:

i was advised 'that muting sound to videos doesn't work and it doesn't obey default bigbox sound priority rules'

You're referring to Ao.Bigbox.Themer?  Please point me to who reported this so I can get more details and perhaps an example where it does not work?

Link to comment
Share on other sites

8 hours ago, eatkinola said:

You're referring to Ao.Bigbox.Themer?  Please point me to who reported this so I can get more details and perhaps an example where it does not work?

'yes, referring to ao.bigbox.themer. Trying to mute video but vid music still plays along with default bigbox integrated game music. And music from video doesn't mute bigbox music if priority is changed. Both musics just play at the same time.'

Here is as an example: 

<aop:AutopathVideoLooper Name="GameVid" Shuffle="False" PlayerImplPooled="True" PlayerImplLazily="True" Autoplay="True" Grid.Row="4" Grid.RowSpan="2" Grid.Column="2" Grid.ColumnSpan="6" Height="{Binding ElementName=GameVidFrame, Path=ActualHeight}" Width="{Binding ElementName=GameVidFrame, Path=ActualWidth}" ClipToBounds="True" Visibility="Collapsed" Stretch="Fill" Repeat="True" Medium="Video" Fallback="StopAfterTry3" Autopath="Context" cal:Bind.AtDesignTime="True" Muted="True"/>

 

Link to comment
Share on other sites

9 hours ago, wallmachine said:

'yes, referring to ao.bigbox.themer. Trying to mute video but vid music still plays along with default bigbox integrated game music. And music from video doesn't mute bigbox music if priority is changed. Both musics just play at the same time.'

Thanks for the example. I tried to slice it every which way but did not detect a problem with muting videos. Perhaps I'm not fully understanding the reported problem. Appreciate your pm; I don't use discord, so if whoever reported this problem to you wants to post additional details here on the forums that might be helpful.

Link to comment
Share on other sites

On 4/14/2019 at 11:20 PM, eatkinola said:

Thanks for the example. I tried to slice it every which way but did not detect a problem with muting videos. Perhaps I'm not fully understanding the reported problem. Appreciate your pm; I don't use discord, so if whoever reported this problem to you wants to post additional details here on the forums that might be helpful.

They ended up updating BB as quite a few updates behind and it fixed the mute issue.

Also when using vids in BB on the marquee screen it causes a hard lock on pc. However, using vids with your plugin on the marquee screen and your video method does not cause a lock up like default BB, which is great! But it does slow down things a little bit in BB. Is there anyway you can put some magic on it, or more cache, or whatever you can do to try to prevent that bit of slowdown? Thanks in advance.

Link to comment
Share on other sites

2 hours ago, wallmachine said:

They ended up updating BB as quite a few updates behind and it fixed the mute issue.

Thanks for the update, was scratching my head over that one.

2 hours ago, wallmachine said:

Also when using vids in BB on the marquee screen it causes a hard lock on pc. However, using vids with your plugin on the marquee screen and your video method does not cause a lock up like default BB, which is great! But it does slow down things a little bit in BB. Is there anyway you can put some magic on it, or more cache, or whatever you can do to try to prevent that bit of slowdown? Thanks in advance.

Glad to hear it works! -- I didn't design or test it with marquees in mind. Unfortunately, I cannot think of any way to further optimize the video engine. Could it be related to your CPU or video card? Running videos can be pretty taxing, especially if another application is also running. Might it work better if you used smaller video files for the marquee?

Link to comment
Share on other sites

  • 3 weeks later...

@eatkinola taking the textbox out of the viewbox makes the translate transform not work properly because the resolution is not in 4k which means distance is doubled and since it isn't in the viewbox anymore, the viewbox can't lock it's resolution.

if I wrap my whole theme in a viewbox, all the graphics scale properly on any resolution EXCEPT the text and translate transform values. If I lock the resolution to 1080p view the viewbox, in 4k, the theme stretches correctly and everything looks correct except the text gets bigger because the viewbox doesn't seem to lock it's resolution to text. So the text still grows with the higher resolution while everything else stays at 1080p. Can you make this converter (https://stackoverflow.com/questions/50805106/xaml-change-resolution-changes-the-views-size) into a plugin  so that it can tell the text to not grow with the resolution?

This would also work: https://stackoverflow.com/questions/2013854/how-do-i-keep-a-constant-fontsize-in-wpf-viewbox

Link to comment
Share on other sites

19 hours ago, wallmachine said:

@eatkinola taking the textbox out of the viewbox makes the translate transform not work properly because the resolution is not in 4k which means distance is doubled and since it isn't in the viewbox anymore, the viewbox can't lock it's resolution.

Viking and I discussed a very similar (the same?) issue in the XAML Tips & Tricks thread. To handle various resolutions and aspect ratios gracefully, I had made two plugins: (1) AutoscaleTextBlock, and (2) DimensionW3840Converter. There are examples for both of these on page 30 of that thread:

https://forums.launchbox-app.com/topic/28698-xaml-tips-and-tricks/page/30/

Check it out -- might solve your issue. I didn't look at the stackoverflow examples closely, but my approach with the converter seems similar.

  • Like 1
Link to comment
Share on other sites

  • 4 months later...

Hi Eatkinola, 

Thanks so much for sharing these!  I'm wondering if you could show a little sample code on how to use ActiveGameCustomFields from the SelectionSnoopVMP?  If it's not too much trouble, would you mind showing a simple xaml snippet on how to display the text from a custom field in a text block?  

Link to comment
Share on other sites

11 hours ago, Fry said:

I'm wondering if you could show a little sample code on how to use ActiveGameCustomFields from the SelectionSnoopVMP?  If it's not too much trouble, would you mind showing a simple xaml snippet on how to display the text from a custom field in a text block?

Try this -- been awhile since I tested this myself but it should still work. Please note since Ao.Bigbox.Themer depends on LB libs, it's updated every now and then to work with LB updates (only needs to be done when the LB libs change significantly). The current version of Ao.Bigbox.Themer works with LB 9.10+, and I have a new version ready to upload once LB 10 is released. For updates, you would need to change the part of the xmlns string (see below) that refers to the Ao.Bigbox.Themer version.

...add this reference at the top of the XAML
xmlns:aov="clr-namespace:Ao.Bigbox.ViewModels;assembly=Ao.Bigbox.Themer.v3_9_6"

...SelectionSnoopVMP object gathers the data
<aov:SelectionSnoopVMP x:Name="SelectionSnoop" />

...display properties from SelectionSnoop, e.g.
<TextBlock Text="{Binding ActiveGameCustomFields[MyCustomFieldFoo], ElementName=SelectionSnoop}" />
<TextBlock Text="{Binding ActiveGameCustomFields[MyCustomFieldBar], ElementName=SelectionSnoop}" />
<TextBlock Text="{Binding ActiveGameCustomFields[MyCustomFieldBaz], ElementName=SelectionSnoop}" />
<TextBlock Text="{Binding ActiveGame.Title, ElementName=SelectionSnoop}" />
...

Hope you find this helpful -- let me know if you run into any snags.

  • Like 1
Link to comment
Share on other sites

Thanks a lot man!  I did have a problem though.  I'm running LB 9.10.  The Ao.Bigbox.Themer version that I got from here is v3_9_4:

image.thumb.png.6376cd5d66eb121b711513761261450e.pngSo I'm getting an error in visual studio when I try to reference v3_9_6 because I don't have that version.  I tried to go ahead with the reference to v3_9_4 but then I'm getting an error in visual studio on this line

<aov:SelectionSnoopVMP x:Name="SelectionSnoop" />

It says: 
The name "SelectionSnoopVMP" does not exist in the namespace "clr-namespace:Ao.Bigbox.ViewModels;assembly=Ao.Bigbox.Themer.v3_9_4". 

Do I need to upgrade to 3.9.6?  If so, is it available to download?  I only saw 3.9.4 here on the site.  Thanks again for your help, this plug-in looks awesome. 
 

Link to comment
Share on other sites

7 hours ago, Fry said:

I tried to go ahead with the reference to v3_9_4...

Yes, that was the right thing to do to match the version of the DLL you have. 3.9.6 is my current development version for LB 10+; 3.9.4 should work for LB 9.10.

7 hours ago, Fry said:

...but then I'm getting an error in visual studio on this line


<aov:SelectionSnoopVMP x:Name="SelectionSnoop" />

It says: The name "SelectionSnoopVMP" does not exist in the namespace "clr-namespace:Ao.Bigbox.ViewModels;assembly=Ao.Bigbox.Themer.v3_9_4". 

I'm not sure why you're getting that error. While I use visual studio to develop the plugin, I don't actually use it to work on themes; I just use notepad for that. Does the theme work despite this error in VS, e.g., perhaps you could ignore the error? The syntax looks correct to me.

  • Like 1
Link to comment
Share on other sites

No, unfortunately it doesn’t work to display the text of my custom fields. I’m not sure if I have something wrong in my syntax.

Is there a special place where this chunk of code needs to go?  I just have it right above my grid definition:

 <aov:SelectionSnoopVMP x:Name="SelectionSnoop" />

 

I’ve got a text block and I can display a hard coded string and I can bind to the active game properties and display the game name and other properties like that. When I switched the binding to try to display the custom fields, nothing appears in that space when I run BigBox. It’s not giving any error, it just doesn’t display anything.

I am super new to WPF and XAML but I’m trying to learn. I have a hunch it’s a problem with the DLL reference not resolving for whatever reason and that error that visual studio is displaying is legit because any time VS showed an error like this and said my markup was invalid, I’ve seen a similar result where that thing VS complained about just doesn’t display when I run BigBox. 

I will try some stuff like making sure I’ve got the themer DLL in the right place and unblocked and make sure there’s nothing wrong with the reference and maybe play around with the location of that selection snoop declaration line. 

Link to comment
Share on other sites

  • 1 month later...
54 minutes ago, wallmachine said:

Would it be possible to have MarqueeTextBlock to only scroll on ListBox selected item? Please see my video example below, it scrolls all game titles that are long. As well have AutoscaleTextBlock and texttrimming working

Thanks for the example. Are you using AutoscrollListBox? I agree the marquee scrolling is a bit off -- would be better to only scroll the selected item. Also, it seems to get confused by the arrow graphic and does not scroll as much as it should.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...