LMMS
Loading...
Searching...
No Matches
SFZReader.h
Go to the documentation of this file.
1/*************************************************************************************
2 * Original code copyright (C) 2012 Steve Folta
3 * Converted to Juce module (C) 2016 Leo Olivers
4 * Forked from https://github.com/stevefolta/SFZero
5 * For license info please see the LICENSE file distributed with this source code
6 *************************************************************************************/
7#ifndef SFZREADER_H_INCLUDED
8#define SFZREADER_H_INCLUDED
9
10#include "SFZCommon.h"
11
12#include "CarlaJuceUtils.hpp"
13
14namespace sfzero
15{
16
17struct Region;
18class Sound;
19
20class Reader
21{
22public:
23 explicit Reader(Sound *sound);
24 ~Reader();
25
26 void read(const water::File &file);
27 void read(const char *text, unsigned int length);
28
29private:
30 const char *handleLineEnd(const char *p);
31 const char *readPathInto(water::String *pathOut, const char *p, const char *end);
32 int keyValue(const water::String &str);
33 int triggerValue(const water::String &str);
34 int loopModeValue(const water::String &str);
35 void finishRegion(Region *region);
36 void error(const water::String &message);
37
39 int line_;
40
41 CARLA_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(Reader)
42};
43
45{
46public:
47 StringSlice(const char *startIn, const char *endIn) : start_(startIn), end_(endIn) {}
48 virtual ~StringSlice() {}
49
50 unsigned int length() { return static_cast<unsigned int>(end_ - start_); }
51 bool operator==(const char *other) { return (strncmp(start_, other, length()) == 0); }
52 bool operator!=(const char *other) { return (strncmp(start_, other, length()) != 0); }
53 const char *getStart() const { return start_; }
54 const char *getEnd() const { return end_; }
55private:
56 const char *start_;
57 const char *end_;
58 CARLA_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(StringSlice)
59};
60}
61
62#endif // SFZREADER_H_INCLUDED
static void message(int level, const char *fmt,...)
Definition adplugdb.cpp:120
void finishRegion(Region *region)
Definition SFZReader.cpp:632
int keyValue(const water::String &str)
Definition SFZReader.cpp:549
const char * handleLineEnd(const char *p)
Definition SFZReader.cpp:484
void read(const water::File &file)
Definition SFZReader.cpp:20
int line_
Definition SFZReader.h:39
int triggerValue(const water::String &str)
Definition SFZReader.cpp:594
~Reader()
Definition SFZReader.cpp:18
int loopModeValue(const water::String &str)
Definition SFZReader.cpp:611
Reader(Sound *sound)
Definition SFZReader.cpp:16
Sound * sound_
Definition SFZReader.h:38
const char * readPathInto(water::String *pathOut, const char *p, const char *end)
Definition SFZReader.cpp:497
Definition SFZSound.h:22
const char * getStart() const
Definition SFZReader.h:53
const char * getEnd() const
Definition SFZReader.h:54
bool operator!=(const char *other)
Definition SFZReader.h:52
const char * start_
Definition SFZReader.h:56
bool operator==(const char *other)
Definition SFZReader.h:51
virtual ~StringSlice()
Definition SFZReader.h:48
StringSlice(const char *startIn, const char *endIn)
Definition SFZReader.h:47
unsigned int length()
Definition SFZReader.h:50
const char * end_
Definition SFZReader.h:57
Definition File.h:50
Definition String.h:48
Definition SFZDebug.cpp:11
png_uint_32 length
Definition png.c:2247
Definition SFZRegion.h:30
const char * text
Definition swell-functions.h:167
uch * p
Definition crypt.c:594
int error
Definition extract.c:1038
struct zdirent * file
Definition win32.c:1500