Skip to content

Developer notes

Nongorilla edited this page May 20, 2018 · 3 revisions

Tooling

This project may be compiled using the free (and excellent) Visual Studio 2017 Community Edition or greater. Get it here:

https://www.visualstudio.com/en-us/products/visual-studio-community-vs.aspx

Building the Install project also requires a Microsoft extension:

https://marketplace.visualstudio.com/items?itemName=VisualStudioProductTeam.MicrosoftVisualStudio2017InstallerProjects

Repository layout

  • Bench - Code generation and benchmarking folder of projects.
  • Source - All the "business" logic of file formats organized into shared libraries.
  • FlacModel400 - The domain compiled for test and development only.
  • ConDiags - The console front-end branded as Mediags.
  • ConFlac - The console front-end branded as UberFLAC.
  • ConLame - The console front-end branded as UberLAME.
  • WpfFlac - GUI front-end of UberFLAC.
  • Install - Builds UberApps.msi.
  • Test400 - A woefully short set of unit tests. Code coverage is abysmal.

All applications are purely portable. Installation is either a file copy of the build output of the branded products or running the .msi installer.

Architecture

Architecture is a variant of a hybrid of MVC, MVP, MVVM, etc. The advantages of this design are:

  • Identical architecture between console and WPF apps as shown in below diagrams.
  • There is no external framework dependency.

Here are the top-level classes of the Mediags console application:

Domain detail:

Clone this wiki locally