View Issue Details

IDProjectCategoryView StatusLast Update
0000782OpenMPT[All Projects] Generalpublic2018-06-20 06:55
ReportermanxAssigned Tomanx 
PrioritylowSeverityminorReproducibilityN/A
Status assignedResolutionopen 
Product Version 
Target VersionOpenMPT 1.28.01.00 (goals)Fixed in Version 
Summary0000782: Cleanup source code directories
Description

Prepare for multi-platform UI;

  1. Non-UI code in mptrack/ should be moved into tracklib/.

Move tracker-only code out of soundlib/:

  1. Move most of soundlib/modsmp_ctrl.cpp into tracklib/.
  2. Move soundlib/Dlsback.* into tracklib/.

Break counter-intuitive dependencies between directories:

  1. <s>soundlib/SampleFormat.h should be moved to soundbase/ as sounddev/ depends on it.</s> r7227
  2. <s>soundlib/SampleFormatConverters.h should be split into soundbase/SampleFormatConverters.h, soundbase/SampleFormatCopy.h and soundlib/ModSampleCopy.h because of sounddev/.</s> r7227

Cleanup precompiled headers:

  1. Split stdafx.h into PCH.h and BaseHeaders.h.
TagsNo tags attached.
Has the bug occurred in previous versions?
Tested code revision (in case you know it)

Relationships

child of 0000783 new cross-platform OpenMPT 

Activities

manx

manx

2016-10-07 14:06

administrator   ~0002692

r7227 implements 4. and 5.

manx

manx

2018-06-16 13:41

administrator   ~0003558

Last edited: 2018-06-20 06:49

View 2 revisions

A single new directory tracklib will not do the trick.

JSON handling is currently used by Wine integration and mptrack.exe (i.e. both sides of the API). For now (until it has been decided what to expose in libopenmpt), JSON handling has also no business being in common. Wine integration should neither depend on mptrack nor on tracklib, which demands a second new directory, "misc".
WriteMemoryDump.h has no business being in common (because it is unused by libopenmpt). It cannot move to mptrack because it is also used by the PluginBridge. It cannot also cannot move to tracklib because it really does nothing tracker-specific.

"misc" can contain all sorts of stuff that does not really fit elsewhere.

manx

manx

2018-06-20 06:55

administrator   ~0003560

The primary goal of the source code directory cleanup is removing circular dependencies between directories and in particular not adding any new ones.
This is an essential first step to cleaning up header interdependencies, which is an essential precursor to improving compile times.

Issue History

Date Modified Username Field Change
2016-05-08 15:49 manx New Issue
2016-05-08 15:49 manx Status new => assigned
2016-05-08 15:49 manx Assigned To => manx
2016-05-09 09:32 manx Relationship added child of 0000783
2016-05-31 14:18 manx Description Updated View Revisions
2016-10-07 14:06 manx Note Added: 0002692
2016-10-07 14:07 manx Description Updated View Revisions
2017-09-22 12:16 manx Target Version OpenMPT 1.?? (long term goals) => OpenMPT 1.28.01.00 (goals)
2018-06-16 13:41 manx Note Added: 0003558
2018-06-20 06:49 manx Note Edited: 0003558 View Revisions
2018-06-20 06:55 manx Note Added: 0003560