View Issue Details

IDProjectCategoryView StatusLast Update
0000782OpenMPTGeneralpublic2021-02-16 11:06
Reportermanx Assigned Tomanx  
PrioritylowSeverityminorReproducibilityN/A
Status assignedResolutionopen 
Target VersionOpenMPT 1.?? (long term goals) 
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

related to 0001400 resolvedmanx Split-out and potentially relicense more generally useful code 
related to 0001419 assignedmanx openmpt123: use OpenMPT StreamExport 
related to 0001381 resolvedmanx move some source files to other directories 
related to 0001417 assignedmanx use OpenMPT sound devices in openmpt123 
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

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
2016-10-07 14:06 manx Note Added: 0002692
2016-10-07 14:07 manx Description Updated
2017-09-22 12:16 manx Target Version OpenMPT 1.?? (long term goals) => OpenMPT 1.28.01.00 / libopenmpt 0.4.0 (upgrade first)
2018-06-16 13:41 manx Note Added: 0003558
2018-06-20 06:49 manx Note Edited: 0003558
2018-06-20 06:55 manx Note Added: 0003560
2018-11-13 09:24 manx Target Version OpenMPT 1.28.01.00 / libopenmpt 0.4.0 (upgrade first) => OpenMPT 1.?? (long term goals)
2020-10-18 06:52 manx Relationship added related to 0001381
2020-12-22 16:43 manx Relationship added related to 0001400
2021-02-16 08:14 manx Relationship added related to 0001417
2021-02-16 11:06 manx Relationship added related to 0001419