Jump to content
LaunchBox Community Forums

Jason Carr

Administrators
  • Posts

    13,723
  • Joined

  • Last visited

  • Days Won

    388

Everything posted by Jason Carr

  1. Thank you very much, @kmoney. I am currently researching those issues. I also have a ticket in with the creator of Meta.Vlc which is our library that we use to interface with VLC to help with some additional issues. I just put out a new beta with the following fixes: - Fixed: Images are no longer renamed unnecessarily when editing games if they already existed; will help prevent issues when using the same image folders for multiple frontends - Fixed: Little tiny feint (and rare) graphical glitches on clear logos in the games wheels have been fixed thanks to code suggested by Nielk1 on the forums - Fixed: Viewing images fullscreen in Big Box had an odd issue where returning to the start of the list would not update and show the first image - Fixed: The PlatformTitle property used for Big Box custom themes in the platforms views was not working properly
  2. @CriticalCid may be interested in the above solution as well.
  3. Looks like we have an issue with extra spaces in the code above, so I'm attaching the code file here as well. PlatformWheelImageDetailsThumbsFiltersView.xaml
  4. Good news, everyone! I have a solution for changing out the gif for each platform. First off, this will only work with the latest beta I just put out, so make sure you update to the latest beta before giving this a shot @niglurion (or anyone else who wants to try it on their own). I had a glitch with the PlatformTitle property which is the reason why the latest beta is required. This is for the PlatformWheelImageDetailsThumbsFiltersView.xaml file, of course. The code is listed below. First off, note the ContentControl tag on line 51. This replaces the previous Image control used for the gif and allows us to instead use a dynamic solution instead. The other more complicated piece is the UserControl.Resources element that begins on line 10 and ends on line 32. Inside of this element is a DataTemplate element that defines the logic for replacing out the gif. Notice how the x:Key property of the DataTemplate is "AnimatedImageTemplate", which matches up to "{StaticResource AnimatedImageTemplate" in the ContentTemplate tag of the ContentControl. Immediately inside of the DataTemplate tag is the Image tag that is actually displayed. Underneath the Image tag is a tag called DataTemplate.Triggers that defines DataTrigger elements for each platform that should have a different gif. Notice how the Value properties of the DataTrigger elements match up to the names of the various platforms. Then, inside of those elements you see Setter elements that define the target element (which is our AnimatedImage), the target property, and most importantly the Value to set, which is the path to our gif file for that platform. Whew. Hopefully that's mostly understandable. I know this isn't necessarily an easy solution to understand, but it does help to show how powerful XAML is in providing custom logic to do pretty much anything. I will be putting out a series of tutorials on data binding and other stuff like this very soon, as well. Let me know @niglurion if you need any further help in understanding how this all works. Thanks all! <UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:transitions="clr-namespace:BigBox.Transitions;assembly=BigBox" xmlns:coverFlow="clr-namespace:BigBox.Controls.CoverFlow;assembly=BigBox" xmlns:gif="clr-namespace:WpfAnimatedGif;assembly=BigBox" mc:Ignorable="d" d:DesignHeight="562" d:DesignWidth="1000" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Style="{DynamicResource UserControlStyle}"> <UserControl.Resources> <DataTemplate DataType="{x:Type ContentControl}" x:Key="AnimatedImageTemplate"> <Image x:Name="AnimatedImage" RenderOptions.BitmapScalingMode="HighQuality" VerticalAlignment="Center" Margin="0" HorizontalAlignment="Left" > <Image.Effect> <DropShadowEffect/> </Image.Effect> </Image> <DataTemplate.Triggers> <DataTrigger Binding="{Binding Path=PlatformTitle}" Value="Nintendo 64"> <Setter TargetName="AnimatedImage" Property="gif:ImageBehavior.AnimatedSource" Value="pack://siteoforigin:,,,/Themes/CleanBG/img/Nintendo64.gif" /> </DataTrigger> <DataTrigger Binding="{Binding Path=PlatformTitle}" Value="Sony Playstation"> <Setter TargetName="AnimatedImage" Property="gif:ImageBehavior.AnimatedSource" Value="pack://siteoforigin:,,,/Themes/CleanBG/img/SonyPlaystation.gif" /> </DataTrigger> <DataTrigger Binding="{Binding Path=PlatformTitle}" Value="Nintendo GameCube"> <Setter TargetName="AnimatedImage" Property="gif:ImageBehavior.AnimatedSource" Value="pack://siteoforigin:,,,/Themes/CleanBG/img/NintendoGameCube.gif" /> </DataTrigger> <DataTrigger Binding="{Binding Path=PlatformTitle}" Value="Nintendo Entertainment System"> <Setter TargetName="AnimatedImage" Property="gif:ImageBehavior.AnimatedSource" Value="pack://siteoforigin:,,,/Themes/CleanBG/img/NintendoEntertainmentSystem.gif" /> </DataTrigger> </DataTemplate.Triggers> </DataTemplate> </UserControl.Resources> <Canvas Name="Canvas"> <transitions:TransitionPresenter TransitionSelector="{Binding BackgroundTransitionSelector}" Content="{Binding BackgroundView}" Height="{Binding ElementName=Canvas, Path=ActualHeight}" Width="{Binding ElementName=Canvas, Path=ActualWidth}" IsContentVideo="true" /> <Grid Height="{Binding ElementName=Canvas, Path=ActualHeight}" Width="{Binding ElementName=Canvas, Path=ActualWidth}"> <Grid.Background> <SolidColorBrush Color="Black" Opacity="{Binding BackgroundFade}" /> </Grid.Background> <Grid.ColumnDefinitions> <ColumnDefinition Width="42*" /> <ColumnDefinition Width="4*" /> <ColumnDefinition Width="92*" /> </Grid.ColumnDefinitions> <coverFlow:FlowControl x:Name="FlowControl" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.Column="0" CoverFactory="{Binding CoverFactory}" ImageType="ClearLogo" CurveAmount="0" CameraZPosition="3.0" VisibleCount="14" PageSize="6" > <coverFlow:FlowControl.Effect> <DropShadowEffect ShadowDepth="7"/> </coverFlow:FlowControl.Effect> </coverFlow:FlowControl> <Grid Grid.Column="1"> <ContentControl Content="{Binding}" ContentTemplate="{StaticResource AnimatedImageTemplate}" /> </Grid> <Grid Grid.Column="2"> <Grid.RowDefinitions> <RowDefinition Height="5*" /> <RowDefinition Height="52*" /> <RowDefinition Height="2*" /> <RowDefinition Height="25*" /> <RowDefinition Height="0*" /> <RowDefinition Height="25*" /> <RowDefinition Height="5*" /> </Grid.RowDefinitions> <Grid Grid.Row="1"> <Grid.ColumnDefinitions> <ColumnDefinition Width="44*" /> <ColumnDefinition Width="4*" /> <ColumnDefinition Width="57*" /> <ColumnDefinition Width="4*" /> </Grid.ColumnDefinitions> </Grid> <transitions:TransitionPresenter Grid.Row="3" TransitionSelector="{Binding TopBoxesTransitionSelector}" Content="{Binding TopBoxesView}" RenderTransformOrigin="0,1" Margin="0,0,-285,0"> <transitions:TransitionPresenter.RenderTransform> <TransformGroup> <ScaleTransform ScaleX="0.8" ScaleY="0.8"/> <SkewTransform/> <RotateTransform/> <TranslateTransform/> </TransformGroup> </transitions:TransitionPresenter.RenderTransform> </transitions:TransitionPresenter> <transitions:TransitionPresenter Grid.Row="5" TransitionSelector="{Binding BottomBoxesTransitionSelector}" Content="{Binding BottomBoxesView}" RenderTransformOrigin="0,1" Margin="0,0,-286,0" > <transitions:TransitionPresenter.RenderTransform> <TransformGroup> <ScaleTransform ScaleX="0.8" ScaleY="0.8"/> <SkewTransform/> <RotateTransform/> <TranslateTransform/> </TransformGroup> </transitions:TransitionPresenter.RenderTransform> </transitions:TransitionPresenter> </Grid> </Grid> </Canvas> </UserControl>
  5. Thank you @Sepulchre. I did some work on this stuff in the live stream this morning; I also contacted the developer of the Meta.VLC library that we're using to see if he can help us figure out how to fix some of the remaining VLC issues. Here's the issue I put in on Github: https://github.com/higankanshi/Meta.Vlc/issues/150 Historically he's been very responsive in responding there so I'm hoping he can help us fix some of the issues. In the mean time, switching to the Windows Media Player engine should eliminate pretty much all of the issues; let me know if not.
  6. Alright, I'm still unable to replicate the disappearing images issues in CoverFlow, David. Can you explain the issues that you're still seeing since yesterday's beta? Are you seeing any disappearing images? Or just performance issues? It also sounds like it's happening with you existing installation but doesn't seem to be happening with a new installation, which is interesting. Are you using the same image folders between the two installations?
  7. Alright, thanks guys, the issue with View All Games not showing images in the CoverFlow views is actually different than anything else, and I just fixed that for the next beta, which should be out later today. That one in particular was an easy fix. The performance issues should be improved as well for the next beta; I'm convinced that they are largely just because the images are being cached in the background. I've changed the priority of the background caching thread to hopefully not affect the performance of CoverFlow as much while the images are being cached. However, we may not be able to achieve 100% performance while the caching is under way. Thankfully, though, the images shouldn't need to cache again after the initial population. I am moving on to the other thread to work on some of the other oddities, such as disappearing images. The new beta with these fixes should be out later today.
  8. Killer. Thanks @Nielk1, really appreciate the help. It's hard to know 100% for sure, but it does look like this did resolve the issue. I really appreciate it. I'll have the fix out in the next beta.
  9. Hey guys, just fixed this in the live development stream so that LaunchBox will not rename existing images when editing games. A new beta should be out later today with the fix.
  10. When Jesus heard this, he said, "Healthy people don’t need a doctor—sick people do." Then he added, "Now go and learn the meaning of this Scripture: 'I want you to show mercy, not offer sacrifices.' For I have come to call not those who think they are righteous, but those who know they are sinners." Matthew 9:12-13 These were the words of Jesus after being confronted by the Pharisees about hanging out with "scum" people. Jesus chose to hang out with people with problems; people like me, with addictions and so many other issues, because it's the broken who need and are willing to accept grace and forgiveness from the Lord. We can rejoice in our problems knowing that they will help us to grow closer to the Lord out of our need for his help.
  11. No problem, Clive; I'm not holding any grudges here. I appreciate everything all you guys do and more than anything, I'm so very glad for your help.
  12. Okay, thanks saber. Hopefully we can get that error log so I can get it fixed.
  13. I do appreciate that @Zombeaver. I'm not saying that we should ever hold back our opinions, just that we need to communicate them politely, not mockingly and not forcefully.
  14. Thanks guys, yes, this is a current focus. Other than the various non-MAME arcade platforms and Amiga, what platforms are you guys aware of that need help on imports?
  15. Yes, all you have to do to launch URLs is put the URL in the Application Path field on a game.
  16. Hi @Kishio, no, it's actually in a later step.
  17. Thanks for this @Sdentau92. You might get some more traffic and some better exposure if you'd be willing to upload this to the Downloads section. You can put it in the third-party apps and plugins category.
  18. Hey guys, all I can say is it's extremely difficult to make everyone happy. I personally prefer systems to be merged in order to help prevent duplicates and keep consistency at its best. Rather than rename platforms to match RocketLauncher, we need a way to just match them up. I can add a field, for example, called RocketLauncher Platform or something that can solve that problem. I need to speak further with the RocketLauncher guys to come up with some improvements. The update metadata without changing platform thing is still on my shortlist, so I'll get to it soon but I'm not sure exactly when @Jazzphone.
  19. I really appreciate this discussion guys. That said, I would also like to remind you guys, especially the moderators, that there is absolutely no reason to attack or come at anyone so forcefully. If I was @robwired, I would have been offended, pissed off, and left a long time ago. We need to handle these situations better than that. I don't believe it's necessary for me to point anyone out, but moderators especially, please tone it down. Disagreeing with someone's request is no reason to respond so forcefully. Now that that's said, let's have a civilized discussion. I would love to see LaunchBox be able to distribute cores for all the various emulators and have them *just work*. Is it actually feasible? Certainly not right now but maybe long-term in the future it might be. I share the notion that we want LaunchBox to be as easy as possible, and emulator installation and configuration is definitely a pain point right now. @lordmonkus did get a lot right though in his responses; the amount of extra effort required in order to make that happen is massive. Sure, the code is written for the cores, but we'd basically have to code an easier version of Retroarch itself in order to make it happen. So sadly, it's not feasible in the short term. But longer term, it is something exciting to keep in mind. I still shutter at the likely licensing and legality issues of it all though, too.
  20. Yeah, @DOS76 has it basically covered. During the import process, make sure you either use MAME as the emulator (and make sure you call the emulator "MAME") or check the box to "force using MAME metadata" in the wizard.
  21. If this keeps up we might have to distribute this theme with LaunchBox itself!
  22. Hi @TONBOX777, we have a ticket for this in Bitbucket, but currently there is no way to custom sort platforms. Hopefully we can get to it soon.
  23. Hi @Imgema, that is a good point that we had not considered when using LaunchBox in conjunction with Hyperspin and other frontends. LaunchBox does rename image files when saving individual games. That said, I think I can come up with a workaround, so I will add that to my shortlist.
  24. Thank you @Nielk1, I will review and see if that code can help. We're in WPF and we're relying on WPF to do the painting (as we should) so I'm not sure if I can hook into that or not. That code is mainly for Windows Forms. That said, I'm also not sure if it's happening in the image resizing or the actual rendering of the images on the screen. But it would be amazing if that fixed it; I'll take a look at it tomorrow, possibly in the development live stream.
  25. Thank you guys, I'll be back to performance adjustments soon. The performance issues are almost entirely due to data processing and the fact that we're not using an actual database. There are always ways to speed things up, though, so I'll be back to this soon.
×
×
  • Create New...