Skip to content

Commit

Permalink
[major] Implemented real time SID registers visualization (pulse and … (
Browse files Browse the repository at this point in the history
#167)

* [major] Implemented real time SID registers visualization (pulse and filter values).

Additionally:

* Made it possible for components to not receive focus
* Added user colors for visualization bars
* Updated default color scheme

* [minor] Adding visualization of pulse and filter
[minor] Adding first iteration of highlighting the sequence index being selected in the song overview

* Adapted colorschemes to new visualizers (#102)

* Updated README (#102)

* [trivial] Fixed up the tab indentation from 2 to 4 (both, so that converting back to using tabs actually works when using the clang formatter)

* [minor] Adding a vertical line over the 3 bars that indicate the pulse state output to SID. The vertical line indicates the 50% pulse width mark.

* Alternative visualization for pulse (#169)

* Alternative visualization for pulse

* Made visualization style for pulse configurable (#102)

* Formatting

* Formatting

* Formatting

* Formatting

* Added config option to README

* [minor] Pulse filter visualizer extensions:

* Added functionality for visualizer component to receive non exclusive mouse input (only a few things were missing in the component manager)
* Implemented switching of visualization mode when clicked (left mouse button)

---------

Co-authored-by: rawpowerlaxity <[email protected]>

* Mute pulse visualizer when track is muted

* Used same enabled/muted colors as the track

* If no enabled channels use filter, mute filter meter

* Revert "If no enabled channels use filter, mute filter meter"

This reverts commit 86b1322.

* Made bar with divider pulse width bar

It already had pulse width specifics in the implementation, so
I made that clearer

* [minor] Changed color settings propery names for the pulse and filter visualization from Color.StateBar.xxx to Color.Visualizer.xxx

Also added specific color for the pulse bar separator line

NOTE: Added a default DarkestGrey color the fall back color definitions

* Update all color schemes for the new visualizer

---------

Co-authored-by: thereallaxity <[email protected]>
Co-authored-by: rawpowerlaxity <[email protected]>
Co-authored-by: Jens-Christian Huus <[email protected]>
  • Loading branch information
4 people authored Sep 27, 2023
1 parent 66d56bb commit 3883e51
Show file tree
Hide file tree
Showing 46 changed files with 975 additions and 339 deletions.
10 changes: 5 additions & 5 deletions .clang-format
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ BraceWrapping:
AfterExternBlock: true
BeforeCatch: false
BeforeElse: true
# BeforeLambdaBody: true
BeforeLambdaBody: true
IndentBraces: false
SplitEmptyFunction: true
SplitEmptyRecord: true
Expand All @@ -56,8 +56,8 @@ ColumnLimit: 0
CommentPragmas: '^ IWYU pragma:'
CompactNamespaces: false
ConstructorInitializerAllOnOneLineOrOnePerLine: false
ConstructorInitializerIndentWidth: 2
ContinuationIndentWidth: 2
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: false
DeriveLineEnding: true
DerivePointerAlignment: false
Expand All @@ -84,7 +84,7 @@ IncludeIsMainSourceRegex: ''
IndentCaseLabels: false
IndentGotoLabels: true
IndentPPDirectives: None
IndentWidth: 2
IndentWidth: 4
IndentWrappedFunctionNames: false
JavaScriptQuotes: Leave
JavaScriptWrapImports: true
Expand Down Expand Up @@ -132,7 +132,7 @@ Standard: Latest
StatementMacros:
- Q_UNUSED
- QT_REQUIRE_VERSION
TabWidth: 2
TabWidth: 4
UseCRLF: false
UseTab: Always
...
Expand Down
7 changes: 6 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,12 @@ Please report issues in our [issue tracker](https://github.com/Chordian/sidfacto
![Commits since last
release](https://img.shields.io/github/commits-since/chordian/sidfactory2/release-20221007)

- Changed: New default driver 11.05
- Added: [#102](https://github.com/Chordian/sidfactory2/issues/102) Visualizers
for pulse width (per channel), filter cutoff and an indication per channel if
it is being filtered.
- Added: Config option `Visualizer.PulseWidth.Style` to set the default style
for the pulse width visualizer.
- Changed: New default driver is 11.05.00
- Added: [#156](https://github.com/Chordian/sidfactory2/issues/156)
Configuration option `Disk.Hide.Extensions` to hide files with certain
extensions in the file browser. Default values are `.sid`, `.wav` and `.mp3`
Expand Down
6 changes: 6 additions & 0 deletions SIDFactoryII/SIDFactoryII.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -195,6 +195,7 @@
<ClCompile Include="source\runtime\editor\components\component_list_selector.cpp" />
<ClCompile Include="source\runtime\editor\components\component_memory_view.cpp" />
<ClCompile Include="source\runtime\editor\components\component_orderlistoverview.cpp" />
<ClCompile Include="source\runtime\editor\components\component_pulse_filter_visualizer.cpp" />
<ClCompile Include="source\runtime\editor\components\component_string_list_selector.cpp" />
<ClCompile Include="source\runtime\editor\components\component_table_row_elements_with_text.cpp" />
<ClCompile Include="source\runtime\editor\components\component_console.cpp" />
Expand Down Expand Up @@ -232,6 +233,7 @@
<ClCompile Include="source\runtime\editor\datasources\datasource_orderlist.cpp" />
<ClCompile Include="source\runtime\editor\datasources\datasource_play_markers.cpp" />
<ClCompile Include="source\runtime\editor\datasources\datasource_sequence.cpp" />
<ClCompile Include="source\runtime\editor\datasources\datasource_sidregistersbuffer.cpp" />
<ClCompile Include="source\runtime\editor\datasources\datasource_table.cpp" />
<ClCompile Include="source\runtime\editor\datasources\datasource_table_column_major.cpp" />
<ClCompile Include="source\runtime\editor\datasources\datasource_table_memory_view.cpp" />
Expand Down Expand Up @@ -283,6 +285,7 @@
<ClCompile Include="source\runtime\editor\utilities\editor_utils.cpp" />
<ClCompile Include="source\runtime\editor\utilities\import_utils.cpp" />
<ClCompile Include="source\runtime\editor\visualizer_components\visualizer_component_base.cpp" />
<ClCompile Include="source\runtime\editor\visualizer_components\visualizer_component_pulse_filter_state.cpp" />
<ClCompile Include="source\runtime\editor\visualizer_components\vizualizer_component_emulation_state.cpp" />
<ClCompile Include="source\runtime\emulation\cpuframecapture.cpp" />
<ClCompile Include="source\runtime\emulation\cpumemory.cpp" />
Expand Down Expand Up @@ -373,6 +376,7 @@
<ClInclude Include="source\runtime\editor\components\component_list_selector.h" />
<ClInclude Include="source\runtime\editor\components\component_memory_view.h" />
<ClInclude Include="source\runtime\editor\components\component_orderlistoverview.h" />
<ClInclude Include="source\runtime\editor\components\component_pulse_filter_visualizer.h" />
<ClInclude Include="source\runtime\editor\components\component_string_list_selector.h" />
<ClInclude Include="source\runtime\editor\components\component_table_row_elements_with_text.h" />
<ClInclude Include="source\runtime\editor\components\component_console.h" />
Expand Down Expand Up @@ -410,6 +414,7 @@
<ClInclude Include="source\runtime\editor\datasources\datasource_orderlist.h" />
<ClInclude Include="source\runtime\editor\datasources\datasource_play_markers.h" />
<ClInclude Include="source\runtime\editor\datasources\datasource_sequence.h" />
<ClInclude Include="source\runtime\editor\datasources\datasource_sidregistersbuffer.h" />
<ClInclude Include="source\runtime\editor\datasources\datasource_table_column_major.h" />
<ClInclude Include="source\runtime\editor\datasources\datasource_table_memory_view.h" />
<ClInclude Include="source\runtime\editor\datasources\datasource_table_row_major.h" />
Expand Down Expand Up @@ -471,6 +476,7 @@
<ClInclude Include="source\runtime\editor\utilities\editor_utils.h" />
<ClInclude Include="source\runtime\editor\utilities\import_utils.h" />
<ClInclude Include="source\runtime\editor\visualizer_components\visualizer_component_base.h" />
<ClInclude Include="source\runtime\editor\visualizer_components\visualizer_component_pulse_filter_state.h" />
<ClInclude Include="source\runtime\editor\visualizer_components\vizualizer_component_emulation_state.h" />
<ClInclude Include="source\runtime\emulation\cpuframecapture.h" />
<ClInclude Include="source\runtime\emulation\cpumemory.h" />
Expand Down
9 changes: 9 additions & 0 deletions SIDFactoryII/color_schemes/ash.ini
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,15 @@ Color.Orderlist.End.Stop = :LightGray
Color.Orderlist.Value = :Gray
Color.Orderlist.Value.Loop.Marker = :LightGreen
Color.Orderlist.Value.Input = :White

Color.Visualizer.Area = :LowerGray
Color.Visualizer.Bar.Background = :DarkGreen
Color.Visualizer.Bar.BackgroundMuted = :LowGray
Color.Visualizer.Bar.BackgroundFilteredChannel = 0x4e4e4e
Color.Visualizer.Bar.Separator = :Black
Color.Visualizer.Bar.FillColorPulse = :Green
Color.Visualizer.Bar.FillColorFilter = 0xd0d0d0

Color.Dialog.Background = :DarkerGray
Color.Dialog.Header = :DarkGray
Color.Dialog.Header.Text = :White
Expand Down
9 changes: 9 additions & 0 deletions SIDFactoryII/color_schemes/classic.ini
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,15 @@ Color.Orderlist.End.Stop = :LightGray
Color.Orderlist.Value = :Gray
Color.Orderlist.Value.Loop.Marker = :LightGreen
Color.Orderlist.Value.Input = :White

Color.Visualizer.Area = :Black
Color.Visualizer.Bar.Background = :DarkerGray
Color.Visualizer.Bar.BackgroundMuted = :LowGray
Color.Visualizer.Bar.BackgroundFilteredChannel = 0x636363
Color.Visualizer.Bar.Separator = :Black
Color.Visualizer.Bar.FillColorPulse = :Green
Color.Visualizer.Bar.FillColorFilter = 0xa8a8a8

Color.Dialog.Background = :DarkerGray
Color.Dialog.Header = :Green
Color.Dialog.Header.Text = :Black
Expand Down
68 changes: 39 additions & 29 deletions SIDFactoryII/color_schemes/default.ini
Original file line number Diff line number Diff line change
@@ -1,44 +1,45 @@
// Default color scheme.

Black = 0x000000
White = 0xffffff
Red = 0xff0000
Green = 0x00c000
Blue = 0x0000ff
Yellow = 0xbfbf00
LightRed = 0xff8080
LightGreen = 0x40ff40
LightBlue = 0x8080ff
LightYellow = 0xffff60
DarkRed = 0x800000
DarkGreen = 0x006000
DarkBlue = 0x000080
DarkYellow = 0x707000
LighterGreen = 0x80ff80
Black = 0x000000
White = 0xffffff
Red = 0xff0000
Green = 0x00c000
Blue = 0x0000ff
Yellow = 0xbfbf00
LightRed = 0xff8080
LightGreen = 0x40ff40
LightBlue = 0x8080ff
LightYellow = 0xffff60
DarkRed = 0x800000
DarkGreen = 0x006000
DarkBlue = 0x000080
DarkYellow = 0x707000
LighterGreen = 0x80ff80
LighterGrey = 0xc0c0c0
LightGrey = 0x888888
Grey = 0x707070
DarkGrey = 0x404040
DarkerGrey = 0x202020
DarkerRed = 0x600000
DarkerGreen = 0x004800
DarkerBlue = 0x000060
LightGrey = 0x888888
Grey = 0x707070
DarkGrey = 0x404040
DarkerGrey = 0x202020
DarkerRed = 0x600000
DarkerGreen = 0x004800
DarkerBlue = 0x000060
DarkerYellow = 0x4c4c00
DarkestBlue = 0x000038
DarkestGrey = 0x101010


Color.Table.Default = :LightGrey
Color.Table.Highlight = :White
Color.Table.Text.Background = :DarkGrey
Color.Table.Text = :White
Color.Table.Text.Editing = :LightYellow
Color.Button.Text = :White
Color.Button.Text = :White
Color.Button.Default = :Black
Color.Button.Default.MouseOver = :DarkGrey
Color.Button.Highlight = :Red
Color.Button.Highlight.MouseOver = :LightRed
Color.FileSelector.Background = :DarkBlue
Color.FileSelector.List.Text = :White
Color.FileSelector.List.Text = :White
Color.FileSelector.Text.Input = :White
Color.FileSelector.Cursor.Default = :DarkGrey
Color.FileSelector.Cursor.Focus.Default = :LightRed
Expand All @@ -47,14 +48,14 @@ Color.FileSelector.Cursor.Focus.Import.Song = :DarkYellow
Color.FileSelector.Cursor.Focus.Save.Song = :Red
Color.FileSelector.Cursor.Focus.Save.Packed = :Blue
Color.MarkerList.Background = :DarkBlue
Color.MarkerList.Text = :White
Color.MarkerList.Text = :White
Color.MarkerList.Cursor.Default = :DarkGrey
Color.MarkerList.Cursor.Focus.Default = :LightBlue
Color.SongList.Background = :DarkGrey
Color.SongList.BackgroundText = :DarkerGrey
Color.SongList.Text = :White
Color.SongList.Text.Editing = :LightYellow
Color.SongList.EventPos = :White
Color.SongList.EventPos = :White
Color.SongList.Values = :White
Color.SongList.Cursor = :DarkBlue
Color.SongList.Cursor.Focus = :Blue
Expand Down Expand Up @@ -108,15 +109,24 @@ Color.Orderlist.End.Stop = :White
Color.Orderlist.Value = :LightGrey
Color.Orderlist.Value.Loop.Marker = :LightGreen
Color.Orderlist.Value.Input = :White

Color.Visualizer.Area = :DarkestGrey
Color.Visualizer.Bar.Background = :DarkGrey
Color.Visualizer.Bar.BackgroundMuted = :DarkerGrey
Color.Visualizer.Bar.BackgroundFilteredChannel = :Grey // 0x643d00
Color.Visualizer.Bar.Separator = :Black
Color.Visualizer.Bar.FillColorPulse = :White // 0xff8c82
Color.Visualizer.Bar.FillColorFilter = :LightGrey // 0xcc7c00

Color.Dialog.Background = :DarkRed
Color.Dialog.Header = :Red
Color.Dialog.Header.Text = :White
Color.Dialog.Header.Text = :White
Color.Dialog.Text = :White
Color.Dialog.ListSelector.Cursor = :DarkGrey
Color.Dialog.ListSelector.Cursor.Focus = :DarkBlue
Color.Dialog.Optimizer.Used = :White
Color.Dialog.Optimizer.Unused = :LighterGrey
Color.StatusBar.Text = :White
Color.StatusBar.Text = :White
Color.StatusBar.Background.Stopped = :Blue
Color.StatusBar.Background.Stopped.MouseOver = :LightBlue
Color.StatusBar.Background.Playing = :DarkGreen
Expand Down Expand Up @@ -148,5 +158,5 @@ Color.FlightRecorder.Visualizer.CPUUsageHigh = :LightRed
Color.FlightRecorder.Visualizer.HorizontalLine1 = :White
Color.FlightRecorder.Visualizer.HorizontalLine2 = :Grey

Color.DriverTableColor.Set = :LightGreen
Color.DriverTableColor.Set = :LightGreen
Color.DriverTableColor.Jump = :LightYellow
9 changes: 9 additions & 0 deletions SIDFactoryII/color_schemes/earth.ini
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,15 @@ Color.Orderlist.End.Stop = :BgBright
Color.Orderlist.Value = :BgLightWeak
Color.Orderlist.Value.Loop.Marker = :DgLight
Color.Orderlist.Value.Input = :White

Color.Visualizer.Area = :BgDarker
Color.Visualizer.Bar.Background = :Ash
Color.Visualizer.Bar.BackgroundMuted = :BgDark
Color.Visualizer.Bar.BackgroundFilteredChannel = 0x474c42
Color.Visualizer.Bar.Separator = :Black
Color.Visualizer.Bar.FillColorPulse = :Mist
Color.Visualizer.Bar.FillColorFilter = 0x89967c

Color.Dialog.Background = :DgDark
Color.Dialog.Header = :DgDefault
Color.Dialog.Header.Text = :White
Expand Down
57 changes: 33 additions & 24 deletions SIDFactoryII/color_schemes/isildur.ini
Original file line number Diff line number Diff line change
@@ -1,29 +1,29 @@
// Isildur's color scheme.
Black = 0x000000
White = 0xbdbdbd
Red = 0x844b40
Green = 0x2f504a
Blue = 0x364469
Yellow = 0xbd9441
LightRed = 0xff8080
LightGreen = 0x69c68b
LightBlue = 0x6b72a5
LightYellow = 0xe7be8e
DarkRed = 0x800000
DarkGreen = 0x006000
DarkBlue = 0x1e222f
DarkYellow = 0x707000
LighterGrey = 0xc0c0c0
LightGrey = 0x888888
Black = 0x000000
White = 0xbdbdbd
Red = 0x844b40
Green = 0x2f504a
Blue = 0x364469
Yellow = 0xbd9441
LightRed = 0xff8080
LightGreen = 0x69c68b
LightBlue = 0x6b72a5
LightYellow = 0xe7be8e
DarkRed = 0x800000
DarkGreen = 0x006000
DarkBlue = 0x1e222f
DarkYellow = 0x707000
LighterGrey = 0xc0c0c0
LightGrey = 0x888888
Grey = 0x707070
MidGrey = 0x505050
DarkGrey = 0x25282d
DarkerGrey = 0x202020
DarkerRed = 0x5d2323
DarkerGreen = 0x004800
DarkerBlue = 0x000060
DarkerYellow = 0x4c4c00
MidGrey = 0x505050
DarkGrey = 0x25282d
DarkerGrey = 0x202020
DarkerRed = 0x5d2323
DarkerGreen = 0x004800
DarkerBlue = 0x000060
DarkerYellow = 0x4c4c00
Color.Table.Default = :LightGrey
Expand Down Expand Up @@ -103,6 +103,15 @@ Color.Orderlist.End.Stop = :White
Color.Orderlist.Value = :LightGrey
Color.Orderlist.Value.Loop.Marker = :LightGreen
Color.Orderlist.Value.Input = :White
Color.Visualizer.Area = :Black
Color.Visualizer.Bar.Background = :DarkBlue
Color.Visualizer.Bar.BackgroundMuted = :DarkerGrey
Color.Visualizer.Bar.BackgroundFilteredChannel = 0x403000
Color.Visualizer.Bar.Separator = :Black
Color.Visualizer.Bar.FillColorPulse = :LightBlue
Color.Visualizer.Bar.FillColorFilter = :Yellow
Color.Dialog.Background = :DarkRed
Color.Dialog.Header = :Red
Color.Dialog.Text = :White
Expand Down Expand Up @@ -141,5 +150,5 @@ Color.FlightRecorder.Visualizer.CPUUsageHigh = :LightRed
Color.FlightRecorder.Visualizer.HorizontalLine1 = 0xffffff
Color.FlightRecorder.Visualizer.HorizontalLine2 = 0x707070
Color.DriverTableColor.Set = :LightGreen
Color.DriverTableColor.Set = :LightGreen
Color.DriverTableColor.Jump = :LightYellow
9 changes: 9 additions & 0 deletions SIDFactoryII/color_schemes/navy.ini
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,15 @@ Color.Orderlist.End.Stop = :BgBright
Color.Orderlist.Value = :BgLightWeak
Color.Orderlist.Value.Loop.Marker = :DgLight
Color.Orderlist.Value.Input = :White

Color.Visualizer.Area = :Black
Color.Visualizer.Bar.Background = :BgDefault
Color.Visualizer.Bar.BackgroundMuted = :BgDark
Color.Visualizer.Bar.BackgroundFilteredChannel = 0x383f1d
Color.Visualizer.Bar.Separator = :Black
Color.Visualizer.Bar.FillColorPulse = :BgLightWeak
Color.Visualizer.Bar.FillColorFilter = :TxDark

Color.Dialog.Background = :DgDark
Color.Dialog.Header = :DgDefault
Color.Dialog.Header.Text = :White
Expand Down
13 changes: 11 additions & 2 deletions SIDFactoryII/color_schemes/ocean.ini
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Color scheme "Ocean" by JCH - based on a 5-color palette from Coolors.
// Color scheme "Ocean" by JCH - based on a 5-color palette from Coolors.

CoolorsWhite = 0xffffff

Expand Down Expand Up @@ -105,6 +105,15 @@ Color.Orderlist.End.Stop = :CoolorsNovaOcean
Color.Orderlist.Value = :CoolorsLightWeakOcean
Color.Orderlist.Value.Loop.Marker = :CoolorsLightGreen
Color.Orderlist.Value.Input = :CoolorsWhite

Color.Visualizer.Area = :CoolorsDarkerOcean
Color.Visualizer.Bar.Background = :CoolorsOcean
Color.Visualizer.Bar.BackgroundMuted = :CoolorsDarkOcean
Color.Visualizer.Bar.BackgroundFilteredChannel = 0x423c2e
Color.Visualizer.Bar.Separator = :Black
Color.Visualizer.Bar.FillColorPulse = :CoolorsLightWeakOcean
Color.Visualizer.Bar.FillColorFilter = :CoolorsYellow

Color.Dialog.Background = :CoolorsDarkGreen
Color.Dialog.Header = :CoolorsGreen
Color.Dialog.Header.Text = :CoolorsWhite
Expand Down Expand Up @@ -145,5 +154,5 @@ Color.FlightRecorder.Visualizer.CPUUsageHigh = 0xff8080
Color.FlightRecorder.Visualizer.HorizontalLine1 = 0xffffff
Color.FlightRecorder.Visualizer.HorizontalLine2 = 0x707070

Color.DriverTableColor.Set = :CoolorsLightGreen
Color.DriverTableColor.Set = :CoolorsLightGreen
Color.DriverTableColor.Jump = :CoolorsLightYellow
Loading

0 comments on commit 3883e51

Please sign in to comment.