summaryrefslogtreecommitdiffstats
path: root/src/controllers/midi/midicontrollerpresetfilehandler.h
blob: ad7c43419e0ba2d5ee86eb2f0c99f23c3f813ec6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/**
 * @file midicontrollerpresetfilehandler.h
 * @author Sean Pappalardo spappalardo@mixxx.org
 * @date Mon 9 Apr 2012
 * @brief Handles loading and saving of MIDI controller presets.
 */

#ifndef MIDICONTROLLERPRESETFILEHANDLER_H
#define MIDICONTROLLERPRESETFILEHANDLER_H

#include "controllers/controllerpresetfilehandler.h"
#include "controllers/midi/midicontrollerpreset.h"

class MidiControllerPresetFileHandler : public ControllerPresetFileHandler {
  public:
    MidiControllerPresetFileHandler() {};
    virtual ~MidiControllerPresetFileHandler() {};

    bool save(const MidiControllerPreset& preset, const QString& fileName) const;

  private:
    virtual ControllerPresetPointer load(const QDomElement& root,
            const QString& filePath,
            const QDir& systemPresetPath);

    void addControlsToDocument(const MidiControllerPreset& preset,
                               QDomDocument* doc) const;

    QDomElement makeTextElement(QDomDocument* doc,
                                const QString& elementName,
                                const QString& text) const;

    QDomElement inputMappingToXML(QDomDocument* doc,
                                  const MidiInputMapping& mapping) const;

    QDomElement outputMappingToXML(QDomDocument* doc,
                                   const MidiOutputMapping& mapping) const;
};

#endif