OpenGothic
Open source reimplementation of Gothic I and II
Loading...
Searching...
No Matches
directmusic.h
Go to the documentation of this file.
1#pragma once
2
3#include "dlscollection.h"
4#include "patternlist.h"
5#include "segment.h"
6#include "style.h"
7
8#include <Tempest/File>
9#include <vector>
10
11namespace Dx8 {
12
16class DirectMusic final {
17 public:
19
20 using StyleList = std::vector<std::pair<std::u16string,Style>>;
21 using DlsList = std::vector<std::unique_ptr<std::pair<std::u16string,DlsCollection>>>;
22
23 PatternList load(const Segment& s);
24 PatternList load(const char16_t* fsgt);
25
26 void addPath(std::u16string path);
27
28 const Style& style (const Reference &id);
29 const DlsCollection& dlsCollection(const Reference &id);
30 const DlsCollection& dlsCollection(const std::u16string &file);
31
32 const StyleList& stlList() const { return styles; }
33 const DlsList& dlsCollection() { return dls; }
34
35 private:
36 StyleList styles;
37 DlsList dls;
38 std::vector<std::u16string> path;
39
40 Tempest::RFile implOpen(const char16_t* file);
41 };
42
43}
std::vector< std::unique_ptr< std::pair< std::u16string, DlsCollection > > > DlsList
Definition directmusic.h:21
PatternList load(const Segment &s)
const StyleList & stlList() const
Definition directmusic.h:32
const DlsList & dlsCollection()
Definition directmusic.h:33
const Style & style(const Reference &id)
std::vector< std::pair< std::u16string, Style > > StyleList
Definition directmusic.h:20
void addPath(std::u16string path)
Definition band.h:10