Skip to content

Commit

Permalink
Switch to regular bindings in the emulator viiew. Replace sprites. Ad…
Browse files Browse the repository at this point in the history
…d note tracker.
  • Loading branch information
chkr1011 committed Dec 11, 2016
1 parent 7a23a5d commit cf93f0f
Showing 48 changed files with 445 additions and 378 deletions.
Original file line number Diff line number Diff line change
@@ -38,6 +38,7 @@
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup>
<StartupObject>LightPi.Midi2OrchestratorBridge.App</StartupObject>
@@ -235,11 +236,6 @@
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
</ItemGroup>
<ItemGroup>
<None Include="Sprites\35.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
<ItemGroup>
<None Include="Sprites\1.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
@@ -265,9 +261,6 @@
<None Include="Sprites\2.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="Sprites\20.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="Sprites\21.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
Original file line number Diff line number Diff line change
@@ -13,5 +13,5 @@
[assembly: ComVisible(false)]
[assembly: ThemeInfo(ResourceDictionaryLocation.None, ResourceDictionaryLocation.SourceAssembly)]

[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyVersion("1.0.6.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
Binary file modified Solution/LightPi.Midi2OrchestratorBridge/Sprites/0.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Solution/LightPi.Midi2OrchestratorBridge/Sprites/1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Solution/LightPi.Midi2OrchestratorBridge/Sprites/10.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Solution/LightPi.Midi2OrchestratorBridge/Sprites/11.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Solution/LightPi.Midi2OrchestratorBridge/Sprites/12.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Solution/LightPi.Midi2OrchestratorBridge/Sprites/13.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Solution/LightPi.Midi2OrchestratorBridge/Sprites/14.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Solution/LightPi.Midi2OrchestratorBridge/Sprites/15.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Solution/LightPi.Midi2OrchestratorBridge/Sprites/2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Binary file modified Solution/LightPi.Midi2OrchestratorBridge/Sprites/21.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Solution/LightPi.Midi2OrchestratorBridge/Sprites/22.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Solution/LightPi.Midi2OrchestratorBridge/Sprites/23.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Solution/LightPi.Midi2OrchestratorBridge/Sprites/24.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Solution/LightPi.Midi2OrchestratorBridge/Sprites/25.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Solution/LightPi.Midi2OrchestratorBridge/Sprites/26.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Solution/LightPi.Midi2OrchestratorBridge/Sprites/27.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Solution/LightPi.Midi2OrchestratorBridge/Sprites/28.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Solution/LightPi.Midi2OrchestratorBridge/Sprites/29.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Solution/LightPi.Midi2OrchestratorBridge/Sprites/3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Solution/LightPi.Midi2OrchestratorBridge/Sprites/30.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Solution/LightPi.Midi2OrchestratorBridge/Sprites/31.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Solution/LightPi.Midi2OrchestratorBridge/Sprites/32.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Solution/LightPi.Midi2OrchestratorBridge/Sprites/33.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Solution/LightPi.Midi2OrchestratorBridge/Sprites/34.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Diff not rendered.
Binary file modified Solution/LightPi.Midi2OrchestratorBridge/Sprites/37.png
Binary file modified Solution/LightPi.Midi2OrchestratorBridge/Sprites/38.png
Binary file modified Solution/LightPi.Midi2OrchestratorBridge/Sprites/39.png
Binary file modified Solution/LightPi.Midi2OrchestratorBridge/Sprites/4.png
Binary file modified Solution/LightPi.Midi2OrchestratorBridge/Sprites/40.png
Binary file modified Solution/LightPi.Midi2OrchestratorBridge/Sprites/5.png
Binary file modified Solution/LightPi.Midi2OrchestratorBridge/Sprites/6.png
Binary file modified Solution/LightPi.Midi2OrchestratorBridge/Sprites/7.png
Binary file modified Solution/LightPi.Midi2OrchestratorBridge/Sprites/8.png
Binary file modified Solution/LightPi.Midi2OrchestratorBridge/Sprites/9.png
Binary file modified Solution/LightPi.Midi2OrchestratorBridge/Sprites/AllOn.png
Binary file modified Solution/LightPi.Midi2OrchestratorBridge/Sprites/Background.png
145 changes: 68 additions & 77 deletions Solution/LightPi.Midi2OrchestratorBridge/UI/Views/EmulatorView.xaml
Original file line number Diff line number Diff line change
@@ -1,74 +1,65 @@
<UserControl
x:Class="LightPi.Midi2OrchestratorBridge.UI.Views.EmulatorView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="clr-namespace:LightPi.Styles.Controls;assembly=LightPi.Styles"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:models="clr-namespace:LightPi.Midi2OrchestratorBridge.Models"
xmlns:ui="clr-namespace:LightPi.Midi2OrchestratorBridge.UI"
xmlns:viewModels="clr-namespace:LightPi.Midi2OrchestratorBridge.ViewModels"
d:DataContext="{d:DesignInstance Type=viewModels:EmulatorViewModel,
IsDesignTimeCreatable=False}"
d:DesignHeight="300"
d:DesignWidth="900"
mc:Ignorable="d">
<UserControl x:Class="LightPi.Midi2OrchestratorBridge.UI.Views.EmulatorView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="clr-namespace:LightPi.Styles.Controls;assembly=LightPi.Styles"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:models="clr-namespace:LightPi.Midi2OrchestratorBridge.Models"
xmlns:viewModels="clr-namespace:LightPi.Midi2OrchestratorBridge.ViewModels"
d:DataContext="{d:DesignInstance Type=viewModels:EmulatorViewModel,
IsDesignTimeCreatable=False}"
d:DesignHeight="600"
d:DesignWidth="900"
mc:Ignorable="d">
<DockPanel>
<GroupBox
controls:GroupBoxExtensions.CanHideContent="True"
DockPanel.Dock="Bottom"
Header="STATISTICS">
<DockPanel Margin="10,15,10,10">
<Path
Width="24"
Height="24"
Data="{StaticResource PowerConsumptionImage}"
DockPanel.Dock="Left"
Fill="{StaticResource TextNormalBrush}"
Stretch="Uniform" />
<GroupBox controls:GroupBoxExtensions.CanHideContent="True"
DockPanel.Dock="Bottom"
Header="STATISTICS">
<DockPanel>
<Path Width="16"
Data="{StaticResource PowerConsumptionImage}"
DockPanel.Dock="Left"
Fill="{StaticResource TextNormalBrush}"
Stretch="Uniform" />

<TextBlock
Margin="15,0,0,0"
VerticalAlignment="Center"
DockPanel.Dock="Left"
FontFamily="Consolas"
FontSize="16"
Foreground="{StaticResource TextNormalBrush}"
Text="{Binding PowerConsumption, StringFormat={}{0:0000} W}" />
<TextBlock Margin="15,0,0,0"
VerticalAlignment="Center"
DockPanel.Dock="Left"
FontFamily="Consolas"
FontSize="14"
Foreground="{StaticResource TextNormalBrush}"
Text="{Binding PowerConsumption,
StringFormat={}{0:0000} W}" />

<Path
Width="24"
Height="24"
Margin="25,0,0,0"
Data="{StaticResource FramesPerSecondImage}"
DockPanel.Dock="Left"
Fill="{StaticResource TextNormalBrush}"
Stretch="Uniform" />
<Path Width="16"
Margin="25,0,0,0"
Data="{StaticResource FramesPerSecondImage}"
DockPanel.Dock="Left"
Fill="{StaticResource TextNormalBrush}"
Stretch="Uniform" />

<TextBlock
Margin="15,0,0,0"
VerticalAlignment="Center"
DockPanel.Dock="Left"
FontFamily="Consolas"
FontSize="16"
Foreground="{StaticResource TextNormalBrush}"
Text="{Binding FramesPerSecond, StringFormat={}{0:00} FPS}" />
<TextBlock Margin="15,0,0,0"
VerticalAlignment="Center"
DockPanel.Dock="Left"
FontFamily="Consolas"
FontSize="14"
Foreground="{StaticResource TextNormalBrush}"
Text="{Binding FramesPerSecond,
StringFormat={}{0:00} FPS}" />

<CheckBox
VerticalAlignment="Center"
Content="Enabled"
DockPanel.Dock="Right"
IsChecked="{Binding IsEnabled}" />
<CheckBox VerticalAlignment="Center"
Content="Enabled"
DockPanel.Dock="Right"
IsChecked="{Binding IsEnabled}" />

<StackPanel />
</DockPanel>
</GroupBox>

<GroupBox
controls:GroupBoxExtensions.CanHideContent="True"
DockPanel.Dock="Bottom"
Header="OUTPUT STATES">
<ItemsControl Margin="10" ItemsSource="{Binding Outputs}">
<GroupBox controls:GroupBoxExtensions.CanHideContent="True"
DockPanel.Dock="Bottom"
Header="OUTPUT STATES">
<ItemsControl ItemsSource="{Binding Outputs}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Horizontal" />
@@ -84,21 +75,20 @@
</Button.ToolTip>
<Button.Template>
<ControlTemplate>
<Border
Width="40"
Height="40"
Margin="5"
BorderBrush="#686868"
BorderThickness="2"
CornerRadius="180"
Cursor="Hand">
<TextBlock
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontFamily="Consolas"
FontSize="14"
Foreground="{StaticResource TextNormalBrush}"
Text="{Binding Output.Id, FallbackValue=99}" />
<Border Width="34"
Height="34"
Margin="5"
BorderBrush="#686868"
BorderThickness="2"
CornerRadius="180"
Cursor="Hand">
<TextBlock HorizontalAlignment="Center"
VerticalAlignment="Center"
FontFamily="Consolas"
FontSize="14"
Foreground="{StaticResource TextNormalBrush}"
Text="{Binding Output.Id,
FallbackValue=99}" />
<Border.Style>
<Style TargetType="{x:Type Border}">
<Setter Property="Background" Value="{StaticResource InactiveBrush}" />
@@ -119,7 +109,8 @@
</GroupBox>

<GroupBox Header="SIMULATION">
<ui:SpriteSurface x:Name="Surface" Background="Transparent" />
<!--<ui:SpriteSurface x:Name="Surface" Background="Transparent" />-->
<Grid x:Name="SpritesGrid" />
</GroupBox>

</DockPanel>
Original file line number Diff line number Diff line change
@@ -1,11 +1,20 @@
using System;
using System.IO;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using LightPi.Midi2OrchestratorBridge.Models;
using LightPi.Midi2OrchestratorBridge.ViewModels;

namespace LightPi.Midi2OrchestratorBridge.UI.Views
{
public partial class EmulatorView
{
private readonly string _spritesDirectory = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Sprites");
private readonly BooleanToVisibilityConverter _booleanToVisibilityConverter = new BooleanToVisibilityConverter();

private EmulatorViewModel _dataContext;

public EmulatorView()
@@ -28,19 +37,52 @@ private void OnDataContextChanged(object sender, DependencyPropertyChangedEventA
return;
}

_dataContext.View = this;

//_dataContext.View = this;

AddSprite("Background", null);
foreach (var output in _dataContext.Outputs)
{
Surface.AddOutput(output);
//Surface.AddOutput(output);
AddSprite(output.Output.Id.ToString(), output);
}

Surface.Update();
//Surface.Update();
}

public void Update()
////public void Update()
////{
//// //Surface.Update();
////}

private void AddSprite(string id, OutputViewModel output)
{
Surface.Update();
var spriteFilename = Path.Combine(_spritesDirectory, $"{id}.png");
if (!File.Exists(spriteFilename))
{
return;
}

var image = new Image
{
Source = new BitmapImage(new Uri(spriteFilename, UriKind.Absolute)),
Stretch = Stretch.Uniform // TODO: Consider setting or UI control > UniformToFill
};

image.Source.Freeze();

if (output != null)
{
var binding = new Binding
{
Path = new PropertyPath("IsActive"),
Converter = _booleanToVisibilityConverter,
Source = output
};

image.SetBinding(VisibilityProperty, binding);
}

SpritesGrid.Children.Add(image);
}
}
}
Loading

0 comments on commit cf93f0f

Please sign in to comment.