namespace App

TSE3 library application support. More...

Full nameTSE3::App
List of all Methods
Annotated List
Files
Globals
Hierarchy
Index

Public Types


Detailed Description

The App namespace contains classes that use the TSE3 API, and provide a level of application support - including facilities such as choices file saving.

See also: TSE3

ChoicesManager (class)

ChoicesManager

This class provides a mechanism for saving 'choices'. These are the configuration aspects of any objects in the TSE3 sequencer application.

It employs the singleton design pattern.

The format of a choices file is the blocked TSE3MDL format.

See also: TSE3

Record (class)

Record

This class provides help using the Transport object's record facilities. When using the Transport record API, you need to create a PhraseEdit and keep track of when you started and stopped recording.

After recording you will need to supply a name for the new Phrase and then have it inserted into the Song.

The job of this helper class is to aid this process. The lifetime of the objects involved are managed, and the actions needed are encapsulated in these methods.

It is assumed that neither the Transport object or the MidiScheduler object will be deleted from under the Recording object's feet.

See also: TSE3

Application (class)

Application

This class provides the GUI independant core functionality of a sequencer application based upon the TSE3 library.

The functionality provided by this class includes:

This class is used as a singleton.

See also: TSE3

ChoiceHandler (class)

ChoiceHandler

ChoiceHandlers are used by the ChoicesManger object. You access the choices save/load mechanism through that object.

This is a base class for objects that can save a particular block of choices. ChoiceHandlers are registered with the ChoicesManager which delegates responsibility for saving/loading to each ChoiceHandler.

ChoiceHandlers implement the Serializable interface as the mechansim with which to perform saving, however they differ from the normal TSE3::Song hierarchy save method since the object whose state is being saved is not the TSE3::Serializable object - it is a ChoiceHandler based on it that does the saving.

A number of stock implementations of ChoiceHandler are provided to save the common TSE3 objects that are not directly related to a Song. However, an application will want to add many more ChoiceHandlers to save it's internal settings (e.g. window positions, feature statuses end so on).

See also: ChoicesManager

ApplicationChoiceHandler (class)

ApplicationChoiceHandler

ChoiceHandler for the TSE3::App::Application class.

MetronomeChoiceHandler (class)

MetronomeChoiceHandler

ChoiceHandler for the TSE3::Metronome class.

PanicChoiceHandler (class)

PanicChoiceHandler

ChoiceHandler for the TSE3::Panic class.

MidiMapperChoiceHandler (class)

MidiMapperChoiceHandler

ChoiceHandler for the TSE3::MidiMapper class.

TransportChoiceHandler (class)

TransportChoiceHandler

ChoiceHandler for the TSE3::Transport class.

DestinationChoiceHandler (class)

DestinationChoiceHandler

ChoiceHandler for the TSE3::Ins::Destination class.

Modified (class)

Modified

Listens to a TSE3::Song and all its subcomponents, and works out whether it has been 'modified' at all.

You can change which TSE3::Song is monitored at any time.

See also: TSE3

PartDisplay (class)

PartDisplay

The PartDisplay class handles interpretting a TSE3::Part's TSE3::DisplayParams alongside it's child TSE3::Phrase's TSE3::DisplayParams.

The TSE3::Part parameters take precidence over the TSE3::Phrase parameters. This class centralises the logic for working out which parameter to use.

The PartDisplay class uses the Application's TSE3::PresetColours object if necessary to find a preset colour value.

See also: TSE3

PartSelection (class)

PartSelection

The PartSelection class allows an Application to provide the facility to 'select' one or more TSE3::Part in a TSE3::Song. These TSE3::Part objects must be held in a TSE3::Track. As soon as a TSE3::Part is removed from a TSE3::Track, it is removed from the selection.

This behviour is useful when using the command history system in the TSE3::Cmd namespace where undoing a TSE3::Part add, for example, may cause a selected Part to be removed from the TSE3::Song.

Internally, the Parts are held in an STL vector of type . In order to get access to the contents of this vector, access is provided to it's iterator.

If you are using the iterators and performing any operations that may affect the PartSelection (i.e. removing a TSE3::Part from it's TSE3::Track and reinserting it elsewhere) then you will invalidate the iterator.

A method of avoiding this would be to, rather than iterate over each Part, to remove a Part from the head of the list, work on it, and place it into a second PartSelection. Do this for each Part in the PartSelection, and when finished, copy the new PartSelection into the old one.

Interaction with TrackSelection

You may want to use this selection utility in connection with the TrackSelection class to ensure that the user has only selected one type of object at any time.

To facilitate this, the PartSelection is a TrackSelectionListener. You can attach it to a TrackSelection object, and whenever the TrackSelection has a TSE3::Track selected the PartSelection will be cleared.

You will need to use an attach like this:


   PartSelection   ps;
   TrackSelection *ts = someTrackSelection();
   ps.TSE3::Listener::attachTo(ts);

See also: TSE3

TrackSelection (class)

TrackSelection

The TrackSelection class allows an Application to provide the facility to 'select' one or more TSE3::Track in a TSE3::Song. These TSE3::Track objects must be held in a TSE3::Song. As soon as a TSE3::Track is removed from a TSE3::Song, it is removed from the selection.

This behviour is useful when using the command history system in the TSE3::Cmd namespace where undoing a TSE3::Track add, for example, may cause a selected Track to be removed from the TSE3::Song.

Internally, the Tracks are held in an STL vector of type . In order to get access to the contents of this vector, access is provided to it's iterator.

If you are using the iterators and performing any operations that may affect the TrackSelection (i.e. removing a TSE3::Track from it's TSE3::Track and reinserting it elsewhere) then you will invalidate the iterator.

A method of avoiding this would be to, rather than iterate over each Track, to remove a Track from the head of the list, work on it, and place it into a second TrackSelection. Do this for each Track in the TrackSelection, and when finished, copy the new TrackSelection into the old one.

Interaction with PartSelection

You may want to use this selection utility in connection with the PartSelection class to ensure that the user has only selected one type of object at any time.

To facilitate this, the TrackSelection is a PartSelectionListener. You can attach it to a PartSelection object, and whenever the PartSelection has a TSE3::Part selected the TrackSelection will be cleared.

You will need to use an attach like this:


   TrackSelection  ts;
   PartSelection  *ps = somePartSelection();
   ts.TSE3::Listener::attachTo(ps);

See also: TSE3