@@ -8,16 +8,16 @@ namespace asset { | |||
void init(bool devMode); | |||
/** Returns the path of a global resource. Should only read files from this location. */ | |||
std::string global(std::string filename); | |||
/** Returns the path of a local resource. Can read and write files to this location. */ | |||
std::string local(std::string filename); | |||
/** Returns the path of a system resource. Should only read files from this location. */ | |||
std::string system(std::string filename); | |||
/** Returns the path of a user resource. Can read and write files to this location. */ | |||
std::string user(std::string filename); | |||
/** Returns the path of a resource in the plugin's folder. Should only read files from this location. */ | |||
std::string plugin(Plugin *plugin, std::string filename); | |||
extern std::string globalDir; | |||
extern std::string localDir; | |||
extern std::string systemDir; | |||
extern std::string userDir; | |||
} // namespace asset | |||
@@ -35,25 +35,25 @@ struct RoundKnob : SVGKnob { | |||
struct RoundBlackKnob : RoundKnob { | |||
RoundBlackKnob() { | |||
setSVG(SVG::load(asset::global("res/ComponentLibrary/RoundBlackKnob.svg"))); | |||
setSVG(SVG::load(asset::system("res/ComponentLibrary/RoundBlackKnob.svg"))); | |||
} | |||
}; | |||
struct RoundSmallBlackKnob : RoundKnob { | |||
RoundSmallBlackKnob() { | |||
setSVG(SVG::load(asset::global("res/ComponentLibrary/RoundSmallBlackKnob.svg"))); | |||
setSVG(SVG::load(asset::system("res/ComponentLibrary/RoundSmallBlackKnob.svg"))); | |||
} | |||
}; | |||
struct RoundLargeBlackKnob : RoundKnob { | |||
RoundLargeBlackKnob() { | |||
setSVG(SVG::load(asset::global("res/ComponentLibrary/RoundLargeBlackKnob.svg"))); | |||
setSVG(SVG::load(asset::system("res/ComponentLibrary/RoundLargeBlackKnob.svg"))); | |||
} | |||
}; | |||
struct RoundHugeBlackKnob : RoundKnob { | |||
RoundHugeBlackKnob() { | |||
setSVG(SVG::load(asset::global("res/ComponentLibrary/RoundHugeBlackKnob.svg"))); | |||
setSVG(SVG::load(asset::system("res/ComponentLibrary/RoundHugeBlackKnob.svg"))); | |||
} | |||
}; | |||
@@ -75,37 +75,37 @@ struct Davies1900hKnob : SVGKnob { | |||
struct Davies1900hWhiteKnob : Davies1900hKnob { | |||
Davies1900hWhiteKnob() { | |||
setSVG(SVG::load(asset::global("res/ComponentLibrary/Davies1900hWhite.svg"))); | |||
setSVG(SVG::load(asset::system("res/ComponentLibrary/Davies1900hWhite.svg"))); | |||
} | |||
}; | |||
struct Davies1900hBlackKnob : Davies1900hKnob { | |||
Davies1900hBlackKnob() { | |||
setSVG(SVG::load(asset::global("res/ComponentLibrary/Davies1900hBlack.svg"))); | |||
setSVG(SVG::load(asset::system("res/ComponentLibrary/Davies1900hBlack.svg"))); | |||
} | |||
}; | |||
struct Davies1900hRedKnob : Davies1900hKnob { | |||
Davies1900hRedKnob() { | |||
setSVG(SVG::load(asset::global("res/ComponentLibrary/Davies1900hRed.svg"))); | |||
setSVG(SVG::load(asset::system("res/ComponentLibrary/Davies1900hRed.svg"))); | |||
} | |||
}; | |||
struct Davies1900hLargeWhiteKnob : Davies1900hKnob { | |||
Davies1900hLargeWhiteKnob() { | |||
setSVG(SVG::load(asset::global("res/ComponentLibrary/Davies1900hLargeWhite.svg"))); | |||
setSVG(SVG::load(asset::system("res/ComponentLibrary/Davies1900hLargeWhite.svg"))); | |||
} | |||
}; | |||
struct Davies1900hLargeBlackKnob : Davies1900hKnob { | |||
Davies1900hLargeBlackKnob() { | |||
setSVG(SVG::load(asset::global("res/ComponentLibrary/Davies1900hLargeBlack.svg"))); | |||
setSVG(SVG::load(asset::system("res/ComponentLibrary/Davies1900hLargeBlack.svg"))); | |||
} | |||
}; | |||
struct Davies1900hLargeRedKnob : Davies1900hKnob { | |||
Davies1900hLargeRedKnob() { | |||
setSVG(SVG::load(asset::global("res/ComponentLibrary/Davies1900hLargeRed.svg"))); | |||
setSVG(SVG::load(asset::system("res/ComponentLibrary/Davies1900hLargeRed.svg"))); | |||
} | |||
}; | |||
@@ -119,163 +119,163 @@ struct Rogan : SVGKnob { | |||
struct Rogan6PSWhite : Rogan { | |||
Rogan6PSWhite() { | |||
setSVG(SVG::load(asset::global("res/ComponentLibrary/Rogan6PSWhite.svg"))); | |||
setSVG(SVG::load(asset::system("res/ComponentLibrary/Rogan6PSWhite.svg"))); | |||
} | |||
}; | |||
struct Rogan5PSGray : Rogan { | |||
Rogan5PSGray() { | |||
setSVG(SVG::load(asset::global("res/ComponentLibrary/Rogan5PSGray.svg"))); | |||
setSVG(SVG::load(asset::system("res/ComponentLibrary/Rogan5PSGray.svg"))); | |||
} | |||
}; | |||
struct Rogan3PSBlue : Rogan { | |||
Rogan3PSBlue() { | |||
setSVG(SVG::load(asset::global("res/ComponentLibrary/Rogan3PSBlue.svg"))); | |||
setSVG(SVG::load(asset::system("res/ComponentLibrary/Rogan3PSBlue.svg"))); | |||
} | |||
}; | |||
struct Rogan3PSRed : Rogan { | |||
Rogan3PSRed() { | |||
setSVG(SVG::load(asset::global("res/ComponentLibrary/Rogan3PSRed.svg"))); | |||
setSVG(SVG::load(asset::system("res/ComponentLibrary/Rogan3PSRed.svg"))); | |||
} | |||
}; | |||
struct Rogan3PSGreen : Rogan { | |||
Rogan3PSGreen() { | |||
setSVG(SVG::load(asset::global("res/ComponentLibrary/Rogan3PSGreen.svg"))); | |||
setSVG(SVG::load(asset::system("res/ComponentLibrary/Rogan3PSGreen.svg"))); | |||
} | |||
}; | |||
struct Rogan3PSWhite : Rogan { | |||
Rogan3PSWhite() { | |||
setSVG(SVG::load(asset::global("res/ComponentLibrary/Rogan3PSWhite.svg"))); | |||
setSVG(SVG::load(asset::system("res/ComponentLibrary/Rogan3PSWhite.svg"))); | |||
} | |||
}; | |||
struct Rogan3PBlue : Rogan { | |||
Rogan3PBlue() { | |||
setSVG(SVG::load(asset::global("res/ComponentLibrary/Rogan3PBlue.svg"))); | |||
setSVG(SVG::load(asset::system("res/ComponentLibrary/Rogan3PBlue.svg"))); | |||
} | |||
}; | |||
struct Rogan3PRed : Rogan { | |||
Rogan3PRed() { | |||
setSVG(SVG::load(asset::global("res/ComponentLibrary/Rogan3PRed.svg"))); | |||
setSVG(SVG::load(asset::system("res/ComponentLibrary/Rogan3PRed.svg"))); | |||
} | |||
}; | |||
struct Rogan3PGreen : Rogan { | |||
Rogan3PGreen() { | |||
setSVG(SVG::load(asset::global("res/ComponentLibrary/Rogan3PGreen.svg"))); | |||
setSVG(SVG::load(asset::system("res/ComponentLibrary/Rogan3PGreen.svg"))); | |||
} | |||
}; | |||
struct Rogan3PWhite : Rogan { | |||
Rogan3PWhite() { | |||
setSVG(SVG::load(asset::global("res/ComponentLibrary/Rogan3PWhite.svg"))); | |||
setSVG(SVG::load(asset::system("res/ComponentLibrary/Rogan3PWhite.svg"))); | |||
} | |||
}; | |||
struct Rogan2SGray : Rogan { | |||
Rogan2SGray() { | |||
setSVG(SVG::load(asset::global("res/ComponentLibrary/Rogan2SGray.svg"))); | |||
setSVG(SVG::load(asset::system("res/ComponentLibrary/Rogan2SGray.svg"))); | |||
} | |||
}; | |||
struct Rogan2PSBlue : Rogan { | |||
Rogan2PSBlue() { | |||
setSVG(SVG::load(asset::global("res/ComponentLibrary/Rogan2PSBlue.svg"))); | |||
setSVG(SVG::load(asset::system("res/ComponentLibrary/Rogan2PSBlue.svg"))); | |||
} | |||
}; | |||
struct Rogan2PSRed : Rogan { | |||
Rogan2PSRed() { | |||
setSVG(SVG::load(asset::global("res/ComponentLibrary/Rogan2PSRed.svg"))); | |||
setSVG(SVG::load(asset::system("res/ComponentLibrary/Rogan2PSRed.svg"))); | |||
} | |||
}; | |||
struct Rogan2PSGreen : Rogan { | |||
Rogan2PSGreen() { | |||
setSVG(SVG::load(asset::global("res/ComponentLibrary/Rogan2PSGreen.svg"))); | |||
setSVG(SVG::load(asset::system("res/ComponentLibrary/Rogan2PSGreen.svg"))); | |||
} | |||
}; | |||
struct Rogan2PSWhite : Rogan { | |||
Rogan2PSWhite() { | |||
setSVG(SVG::load(asset::global("res/ComponentLibrary/Rogan2PSWhite.svg"))); | |||
setSVG(SVG::load(asset::system("res/ComponentLibrary/Rogan2PSWhite.svg"))); | |||
} | |||
}; | |||
struct Rogan2PBlue : Rogan { | |||
Rogan2PBlue() { | |||
setSVG(SVG::load(asset::global("res/ComponentLibrary/Rogan2PBlue.svg"))); | |||
setSVG(SVG::load(asset::system("res/ComponentLibrary/Rogan2PBlue.svg"))); | |||
} | |||
}; | |||
struct Rogan2PRed : Rogan { | |||
Rogan2PRed() { | |||
setSVG(SVG::load(asset::global("res/ComponentLibrary/Rogan2PRed.svg"))); | |||
setSVG(SVG::load(asset::system("res/ComponentLibrary/Rogan2PRed.svg"))); | |||
} | |||
}; | |||
struct Rogan2PGreen : Rogan { | |||
Rogan2PGreen() { | |||
setSVG(SVG::load(asset::global("res/ComponentLibrary/Rogan2PGreen.svg"))); | |||
setSVG(SVG::load(asset::system("res/ComponentLibrary/Rogan2PGreen.svg"))); | |||
} | |||
}; | |||
struct Rogan2PWhite : Rogan { | |||
Rogan2PWhite() { | |||
setSVG(SVG::load(asset::global("res/ComponentLibrary/Rogan2PWhite.svg"))); | |||
setSVG(SVG::load(asset::system("res/ComponentLibrary/Rogan2PWhite.svg"))); | |||
} | |||
}; | |||
struct Rogan1PSBlue : Rogan { | |||
Rogan1PSBlue() { | |||
setSVG(SVG::load(asset::global("res/ComponentLibrary/Rogan1PSBlue.svg"))); | |||
setSVG(SVG::load(asset::system("res/ComponentLibrary/Rogan1PSBlue.svg"))); | |||
} | |||
}; | |||
struct Rogan1PSRed : Rogan { | |||
Rogan1PSRed() { | |||
setSVG(SVG::load(asset::global("res/ComponentLibrary/Rogan1PSRed.svg"))); | |||
setSVG(SVG::load(asset::system("res/ComponentLibrary/Rogan1PSRed.svg"))); | |||
} | |||
}; | |||
struct Rogan1PSGreen : Rogan { | |||
Rogan1PSGreen() { | |||
setSVG(SVG::load(asset::global("res/ComponentLibrary/Rogan1PSGreen.svg"))); | |||
setSVG(SVG::load(asset::system("res/ComponentLibrary/Rogan1PSGreen.svg"))); | |||
} | |||
}; | |||
struct Rogan1PSWhite : Rogan { | |||
Rogan1PSWhite() { | |||
setSVG(SVG::load(asset::global("res/ComponentLibrary/Rogan1PSWhite.svg"))); | |||
setSVG(SVG::load(asset::system("res/ComponentLibrary/Rogan1PSWhite.svg"))); | |||
} | |||
}; | |||
struct Rogan1PBlue : Rogan { | |||
Rogan1PBlue() { | |||
setSVG(SVG::load(asset::global("res/ComponentLibrary/Rogan1PBlue.svg"))); | |||
setSVG(SVG::load(asset::system("res/ComponentLibrary/Rogan1PBlue.svg"))); | |||
} | |||
}; | |||
struct Rogan1PRed : Rogan { | |||
Rogan1PRed() { | |||
setSVG(SVG::load(asset::global("res/ComponentLibrary/Rogan1PRed.svg"))); | |||
setSVG(SVG::load(asset::system("res/ComponentLibrary/Rogan1PRed.svg"))); | |||
} | |||
}; | |||
struct Rogan1PGreen : Rogan { | |||
Rogan1PGreen() { | |||
setSVG(SVG::load(asset::global("res/ComponentLibrary/Rogan1PGreen.svg"))); | |||
setSVG(SVG::load(asset::system("res/ComponentLibrary/Rogan1PGreen.svg"))); | |||
} | |||
}; | |||
struct Rogan1PWhite : Rogan { | |||
Rogan1PWhite() { | |||
setSVG(SVG::load(asset::global("res/ComponentLibrary/Rogan1PWhite.svg"))); | |||
setSVG(SVG::load(asset::system("res/ComponentLibrary/Rogan1PWhite.svg"))); | |||
} | |||
}; | |||
@@ -284,9 +284,9 @@ struct SynthTechAlco : SVGKnob { | |||
SynthTechAlco() { | |||
minAngle = -0.82*M_PI; | |||
maxAngle = 0.82*M_PI; | |||
setSVG(SVG::load(asset::global("res/ComponentLibrary/SynthTechAlco.svg"))); | |||
setSVG(SVG::load(asset::system("res/ComponentLibrary/SynthTechAlco.svg"))); | |||
SVGWidget *cap = new SVGWidget; | |||
cap->setSVG(SVG::load(asset::global("res/ComponentLibrary/SynthTechAlco_cap.svg"))); | |||
cap->setSVG(SVG::load(asset::system("res/ComponentLibrary/SynthTechAlco_cap.svg"))); | |||
addChild(cap); | |||
} | |||
}; | |||
@@ -295,7 +295,7 @@ struct Trimpot : SVGKnob { | |||
Trimpot() { | |||
minAngle = -0.75*M_PI; | |||
maxAngle = 0.75*M_PI; | |||
setSVG(SVG::load(asset::global("res/ComponentLibrary/Trimpot.svg"))); | |||
setSVG(SVG::load(asset::system("res/ComponentLibrary/Trimpot.svg"))); | |||
} | |||
}; | |||
@@ -303,7 +303,7 @@ struct BefacoBigKnob : SVGKnob { | |||
BefacoBigKnob() { | |||
minAngle = -0.75*M_PI; | |||
maxAngle = 0.75*M_PI; | |||
setSVG(SVG::load(asset::global("res/ComponentLibrary/BefacoBigKnob.svg"))); | |||
setSVG(SVG::load(asset::system("res/ComponentLibrary/BefacoBigKnob.svg"))); | |||
} | |||
}; | |||
@@ -319,7 +319,7 @@ struct BefacoTinyKnob : SVGKnob { | |||
BefacoTinyKnob() { | |||
minAngle = -0.75*M_PI; | |||
maxAngle = 0.75*M_PI; | |||
setSVG(SVG::load(asset::global("res/ComponentLibrary/BefacoTinyKnob.svg"))); | |||
setSVG(SVG::load(asset::system("res/ComponentLibrary/BefacoTinyKnob.svg"))); | |||
} | |||
}; | |||
@@ -328,7 +328,7 @@ struct BefacoSlidePot : SVGSlider { | |||
Vec margin = Vec(3.5, 3.5); | |||
maxHandlePos = Vec(-1, -2).plus(margin); | |||
minHandlePos = Vec(-1, 87).plus(margin); | |||
setSVGs(SVG::load(asset::global("res/ComponentLibrary/BefacoSlidePot.svg")), SVG::load(asset::global("res/ComponentLibrary/BefacoSlidePotHandle.svg"))); | |||
setSVGs(SVG::load(asset::system("res/ComponentLibrary/BefacoSlidePot.svg")), SVG::load(asset::system("res/ComponentLibrary/BefacoSlidePotHandle.svg"))); | |||
background->box.pos = margin; | |||
box.size = background->box.size.plus(margin.mult(2)); | |||
} | |||
@@ -338,38 +338,38 @@ struct LEDSlider : SVGSlider { | |||
LEDSlider() { | |||
maxHandlePos = mm2px(Vec(0.738, 0.738).plus(Vec(2, 0))); | |||
minHandlePos = mm2px(Vec(0.738, 22.078).plus(Vec(2, 0))); | |||
setSVGs(SVG::load(asset::global("res/ComponentLibrary/LEDSlider.svg")), NULL); | |||
setSVGs(SVG::load(asset::system("res/ComponentLibrary/LEDSlider.svg")), NULL); | |||
} | |||
}; | |||
/** API is unstable for LEDSlider. Will add a LightWidget later. */ | |||
struct LEDSliderGreen : LEDSlider { | |||
LEDSliderGreen() { | |||
handle->setSVG(SVG::load(asset::global("res/ComponentLibrary/LEDSliderGreenHandle.svg"))); | |||
handle->setSVG(SVG::load(asset::system("res/ComponentLibrary/LEDSliderGreenHandle.svg"))); | |||
} | |||
}; | |||
struct LEDSliderRed : LEDSlider { | |||
LEDSliderRed() { | |||
handle->setSVG(SVG::load(asset::global("res/ComponentLibrary/LEDSliderRedHandle.svg"))); | |||
handle->setSVG(SVG::load(asset::system("res/ComponentLibrary/LEDSliderRedHandle.svg"))); | |||
} | |||
}; | |||
struct LEDSliderYellow : LEDSlider { | |||
LEDSliderYellow() { | |||
handle->setSVG(SVG::load(asset::global("res/ComponentLibrary/LEDSliderYellowHandle.svg"))); | |||
handle->setSVG(SVG::load(asset::system("res/ComponentLibrary/LEDSliderYellowHandle.svg"))); | |||
} | |||
}; | |||
struct LEDSliderBlue : LEDSlider { | |||
LEDSliderBlue() { | |||
handle->setSVG(SVG::load(asset::global("res/ComponentLibrary/LEDSliderBlueHandle.svg"))); | |||
handle->setSVG(SVG::load(asset::system("res/ComponentLibrary/LEDSliderBlueHandle.svg"))); | |||
} | |||
}; | |||
struct LEDSliderWhite : LEDSlider { | |||
LEDSliderWhite() { | |||
handle->setSVG(SVG::load(asset::global("res/ComponentLibrary/LEDSliderWhiteHandle.svg"))); | |||
handle->setSVG(SVG::load(asset::system("res/ComponentLibrary/LEDSliderWhiteHandle.svg"))); | |||
} | |||
}; | |||
@@ -379,19 +379,19 @@ struct LEDSliderWhite : LEDSlider { | |||
struct PJ301MPort : SVGPort { | |||
PJ301MPort() { | |||
setSVG(SVG::load(asset::global("res/ComponentLibrary/PJ301M.svg"))); | |||
setSVG(SVG::load(asset::system("res/ComponentLibrary/PJ301M.svg"))); | |||
} | |||
}; | |||
struct PJ3410Port : SVGPort { | |||
PJ3410Port() { | |||
setSVG(SVG::load(asset::global("res/ComponentLibrary/PJ3410.svg"))); | |||
setSVG(SVG::load(asset::system("res/ComponentLibrary/PJ3410.svg"))); | |||
} | |||
}; | |||
struct CL1362Port : SVGPort { | |||
CL1362Port() { | |||
setSVG(SVG::load(asset::global("res/ComponentLibrary/CL1362.svg"))); | |||
setSVG(SVG::load(asset::system("res/ComponentLibrary/CL1362.svg"))); | |||
} | |||
}; | |||
@@ -514,83 +514,83 @@ struct PB61303Light : BASE { | |||
struct NKK : SVGSwitch, ToggleSwitch { | |||
NKK() { | |||
addFrame(SVG::load(asset::global("res/ComponentLibrary/NKK_0.svg"))); | |||
addFrame(SVG::load(asset::global("res/ComponentLibrary/NKK_1.svg"))); | |||
addFrame(SVG::load(asset::global("res/ComponentLibrary/NKK_2.svg"))); | |||
addFrame(SVG::load(asset::system("res/ComponentLibrary/NKK_0.svg"))); | |||
addFrame(SVG::load(asset::system("res/ComponentLibrary/NKK_1.svg"))); | |||
addFrame(SVG::load(asset::system("res/ComponentLibrary/NKK_2.svg"))); | |||
} | |||
}; | |||
struct CKSS : SVGSwitch, ToggleSwitch { | |||
CKSS() { | |||
addFrame(SVG::load(asset::global("res/ComponentLibrary/CKSS_0.svg"))); | |||
addFrame(SVG::load(asset::global("res/ComponentLibrary/CKSS_1.svg"))); | |||
addFrame(SVG::load(asset::system("res/ComponentLibrary/CKSS_0.svg"))); | |||
addFrame(SVG::load(asset::system("res/ComponentLibrary/CKSS_1.svg"))); | |||
} | |||
}; | |||
struct CKSSThree : SVGSwitch, ToggleSwitch { | |||
CKSSThree() { | |||
addFrame(SVG::load(asset::global("res/ComponentLibrary/CKSSThree_0.svg"))); | |||
addFrame(SVG::load(asset::global("res/ComponentLibrary/CKSSThree_1.svg"))); | |||
addFrame(SVG::load(asset::global("res/ComponentLibrary/CKSSThree_2.svg"))); | |||
addFrame(SVG::load(asset::system("res/ComponentLibrary/CKSSThree_0.svg"))); | |||
addFrame(SVG::load(asset::system("res/ComponentLibrary/CKSSThree_1.svg"))); | |||
addFrame(SVG::load(asset::system("res/ComponentLibrary/CKSSThree_2.svg"))); | |||
} | |||
}; | |||
struct CKD6 : SVGSwitch, MomentarySwitch { | |||
CKD6() { | |||
addFrame(SVG::load(asset::global("res/ComponentLibrary/CKD6_0.svg"))); | |||
addFrame(SVG::load(asset::global("res/ComponentLibrary/CKD6_1.svg"))); | |||
addFrame(SVG::load(asset::system("res/ComponentLibrary/CKD6_0.svg"))); | |||
addFrame(SVG::load(asset::system("res/ComponentLibrary/CKD6_1.svg"))); | |||
} | |||
}; | |||
struct TL1105 : SVGSwitch, MomentarySwitch { | |||
TL1105() { | |||
addFrame(SVG::load(asset::global("res/ComponentLibrary/TL1105_0.svg"))); | |||
addFrame(SVG::load(asset::global("res/ComponentLibrary/TL1105_1.svg"))); | |||
addFrame(SVG::load(asset::system("res/ComponentLibrary/TL1105_0.svg"))); | |||
addFrame(SVG::load(asset::system("res/ComponentLibrary/TL1105_1.svg"))); | |||
} | |||
}; | |||
struct LEDButton : SVGSwitch, MomentarySwitch { | |||
LEDButton() { | |||
addFrame(SVG::load(asset::global("res/ComponentLibrary/LEDButton.svg"))); | |||
addFrame(SVG::load(asset::system("res/ComponentLibrary/LEDButton.svg"))); | |||
} | |||
}; | |||
struct BefacoSwitch : SVGSwitch, ToggleSwitch { | |||
BefacoSwitch() { | |||
addFrame(SVG::load(asset::global("res/ComponentLibrary/BefacoSwitch_0.svg"))); | |||
addFrame(SVG::load(asset::global("res/ComponentLibrary/BefacoSwitch_1.svg"))); | |||
addFrame(SVG::load(asset::global("res/ComponentLibrary/BefacoSwitch_2.svg"))); | |||
addFrame(SVG::load(asset::system("res/ComponentLibrary/BefacoSwitch_0.svg"))); | |||
addFrame(SVG::load(asset::system("res/ComponentLibrary/BefacoSwitch_1.svg"))); | |||
addFrame(SVG::load(asset::system("res/ComponentLibrary/BefacoSwitch_2.svg"))); | |||
} | |||
}; | |||
struct BefacoPush : SVGSwitch, MomentarySwitch { | |||
BefacoPush() { | |||
addFrame(SVG::load(asset::global("res/ComponentLibrary/BefacoPush_0.svg"))); | |||
addFrame(SVG::load(asset::global("res/ComponentLibrary/BefacoPush_1.svg"))); | |||
addFrame(SVG::load(asset::system("res/ComponentLibrary/BefacoPush_0.svg"))); | |||
addFrame(SVG::load(asset::system("res/ComponentLibrary/BefacoPush_1.svg"))); | |||
} | |||
}; | |||
struct LEDBezel : SVGSwitch, MomentarySwitch { | |||
LEDBezel() { | |||
addFrame(SVG::load(asset::global("res/ComponentLibrary/LEDBezel.svg"))); | |||
addFrame(SVG::load(asset::system("res/ComponentLibrary/LEDBezel.svg"))); | |||
} | |||
}; | |||
struct PB61303 : SVGSwitch, MomentarySwitch { | |||
PB61303() { | |||
addFrame(SVG::load(asset::global("res/ComponentLibrary/PB61303.svg"))); | |||
addFrame(SVG::load(asset::system("res/ComponentLibrary/PB61303.svg"))); | |||
} | |||
}; | |||
struct PB61303Button : SVGButton { | |||
PB61303Button() { | |||
setSVGs(SVG::load(asset::global("res/ComponentLibrary/PB61303.svg")), NULL); | |||
setSVGs(SVG::load(asset::system("res/ComponentLibrary/PB61303.svg")), NULL); | |||
} | |||
}; | |||
struct LEDBezelButton : SVGButton { | |||
LEDBezelButton() { | |||
setSVGs(SVG::load(asset::global("res/ComponentLibrary/LEDBezel.svg")), NULL); | |||
setSVGs(SVG::load(asset::system("res/ComponentLibrary/LEDBezel.svg")), NULL); | |||
} | |||
}; | |||
@@ -600,14 +600,14 @@ struct LEDBezelButton : SVGButton { | |||
struct ScrewSilver : SVGScrew { | |||
ScrewSilver() { | |||
sw->setSVG(SVG::load(asset::global("res/ComponentLibrary/ScrewSilver.svg"))); | |||
sw->setSVG(SVG::load(asset::system("res/ComponentLibrary/ScrewSilver.svg"))); | |||
box.size = sw->box.size; | |||
} | |||
}; | |||
struct ScrewBlack : SVGScrew { | |||
ScrewBlack() { | |||
sw->setSVG(SVG::load(asset::global("res/ComponentLibrary/ScrewBlack.svg"))); | |||
sw->setSVG(SVG::load(asset::system("res/ComponentLibrary/ScrewBlack.svg"))); | |||
box.size = sw->box.size; | |||
} | |||
}; | |||
@@ -69,8 +69,8 @@ DEPRECATED inline float randomf() {return random::uniform();} | |||
// asset | |||
//////////////////// | |||
DEPRECATED inline std::string assetGlobal(std::string filename) {return asset::global(filename);} | |||
DEPRECATED inline std::string assetLocal(std::string filename) {return asset::local(filename);} | |||
DEPRECATED inline std::string assetGlobal(std::string filename) {return asset::system(filename);} | |||
DEPRECATED inline std::string assetLocal(std::string filename) {return asset::user(filename);} | |||
DEPRECATED inline std::string assetPlugin(Plugin *plugin, std::string filename) {return asset::plugin(plugin, filename);} | |||
//////////////////// | |||
@@ -239,7 +239,7 @@ void AudioInterface::step() { | |||
struct AudioInterfaceWidget : ModuleWidget { | |||
AudioInterfaceWidget(AudioInterface *module) : ModuleWidget(module) { | |||
setPanel(SVG::load(asset::global("res/Core/AudioInterface.svg"))); | |||
setPanel(SVG::load(asset::system("res/Core/AudioInterface.svg"))); | |||
addChild(createWidget<ScrewSilver>(Vec(RACK_GRID_WIDTH, 0))); | |||
addChild(createWidget<ScrewSilver>(Vec(box.size.x - 2 * RACK_GRID_WIDTH, 0))); | |||
@@ -182,7 +182,7 @@ struct MidiCcWidget : Grid16MidiWidget { | |||
struct MIDICCToCVInterfaceWidget : ModuleWidget { | |||
MIDICCToCVInterfaceWidget(MIDICCToCVInterface *module) : ModuleWidget(module) { | |||
setPanel(SVG::load(asset::global("res/Core/MIDICCToCVInterface.svg"))); | |||
setPanel(SVG::load(asset::system("res/Core/MIDICCToCVInterface.svg"))); | |||
addChild(createWidget<ScrewSilver>(Vec(RACK_GRID_WIDTH, 0))); | |||
addChild(createWidget<ScrewSilver>(Vec(box.size.x - 2 * RACK_GRID_WIDTH, 0))); | |||
@@ -261,7 +261,7 @@ struct MIDIToCVInterface : Module { | |||
struct MIDIToCVInterfaceWidget : ModuleWidget { | |||
MIDIToCVInterfaceWidget(MIDIToCVInterface *module) : ModuleWidget(module) { | |||
setPanel(SVG::load(asset::global("res/Core/MIDIToCVInterface.svg"))); | |||
setPanel(SVG::load(asset::system("res/Core/MIDIToCVInterface.svg"))); | |||
addChild(createWidget<ScrewSilver>(Vec(RACK_GRID_WIDTH, 0))); | |||
addChild(createWidget<ScrewSilver>(Vec(box.size.x - 2 * RACK_GRID_WIDTH, 0))); | |||
@@ -201,7 +201,7 @@ struct MidiTrigWidget : Grid16MidiWidget { | |||
struct MIDITriggerToCVInterfaceWidget : ModuleWidget { | |||
MIDITriggerToCVInterfaceWidget(MIDITriggerToCVInterface *module) : ModuleWidget(module) { | |||
setPanel(SVG::load(asset::global("res/Core/MIDITriggerToCVInterface.svg"))); | |||
setPanel(SVG::load(asset::system("res/Core/MIDITriggerToCVInterface.svg"))); | |||
addChild(createWidget<ScrewSilver>(Vec(RACK_GRID_WIDTH, 0))); | |||
addChild(createWidget<ScrewSilver>(Vec(box.size.x - 2 * RACK_GRID_WIDTH, 0))); | |||
@@ -8,7 +8,7 @@ struct NotesWidget : ModuleWidget { | |||
TextField *textField; | |||
NotesWidget(Module *module) : ModuleWidget(module) { | |||
setPanel(SVG::load(asset::global("res/Core/Notes.svg"))); | |||
setPanel(SVG::load(asset::system("res/Core/Notes.svg"))); | |||
addChild(createWidget<ScrewSilver>(Vec(RACK_GRID_WIDTH, 0))); | |||
addChild(createWidget<ScrewSilver>(Vec(box.size.x - 2 * RACK_GRID_WIDTH, 0))); | |||
@@ -303,7 +303,7 @@ struct QuadMIDIToCVInterface : Module { | |||
struct QuadMIDIToCVInterfaceWidget : ModuleWidget { | |||
QuadMIDIToCVInterfaceWidget(QuadMIDIToCVInterface *module) : ModuleWidget(module) { | |||
setPanel(SVG::load(asset::global("res/Core/QuadMIDIToCVInterface.svg"))); | |||
setPanel(SVG::load(asset::system("res/Core/QuadMIDIToCVInterface.svg"))); | |||
addChild(createWidget<ScrewSilver>(Vec(RACK_GRID_WIDTH, 0))); | |||
addChild(createWidget<ScrewSilver>(Vec(box.size.x - 2 * RACK_GRID_WIDTH, 0))); | |||
@@ -33,7 +33,7 @@ void LedDisplaySeparator::draw(NVGcontext *vg) { | |||
LedDisplayChoice::LedDisplayChoice() { | |||
box.size = mm2px(Vec(0, 28.0 / 3)); | |||
font = Font::load(asset::global("res/fonts/ShareTechMono-Regular.ttf")); | |||
font = Font::load(asset::system("res/fonts/ShareTechMono-Regular.ttf")); | |||
color = nvgRGB(0xff, 0xd7, 0x14); | |||
textOffset = Vec(10, 18); | |||
} | |||
@@ -63,7 +63,7 @@ void LedDisplayChoice::onButton(event::Button &e) { | |||
LedDisplayTextField::LedDisplayTextField() { | |||
font = Font::load(asset::global("res/fonts/ShareTechMono-Regular.ttf")); | |||
font = Font::load(asset::system("res/fonts/ShareTechMono-Regular.ttf")); | |||
color = nvgRGB(0xff, 0xd7, 0x14); | |||
textOffset = Vec(5, 5); | |||
} | |||
@@ -183,7 +183,7 @@ void ModuleWidget::save(std::string filename) { | |||
} | |||
void ModuleWidget::loadDialog() { | |||
std::string dir = asset::local("presets"); | |||
std::string dir = asset::user("presets"); | |||
system::createDirectory(dir); | |||
osdialog_filters *filters = osdialog_filters_parse(PRESET_FILTERS.c_str()); | |||
@@ -196,7 +196,7 @@ void ModuleWidget::loadDialog() { | |||
} | |||
void ModuleWidget::saveDialog() { | |||
std::string dir = asset::local("presets"); | |||
std::string dir = asset::user("presets"); | |||
system::createDirectory(dir); | |||
osdialog_filters *filters = osdialog_filters_parse(PRESET_FILTERS.c_str()); | |||
@@ -66,7 +66,7 @@ void RackWidget::reset() { | |||
if (osdialog_message(OSDIALOG_INFO, OSDIALOG_OK_CANCEL, "Clear patch and start over?")) { | |||
clear(); | |||
// Fails silently if file does not exist | |||
load(asset::local("template.vcv")); | |||
load(asset::user("template.vcv")); | |||
lastPath = ""; | |||
} | |||
} | |||
@@ -74,7 +74,7 @@ void RackWidget::reset() { | |||
void RackWidget::loadDialog() { | |||
std::string dir; | |||
if (lastPath.empty()) { | |||
dir = asset::local("patches"); | |||
dir = asset::user("patches"); | |||
system::createDirectory(dir); | |||
} | |||
else { | |||
@@ -103,7 +103,7 @@ void RackWidget::saveAsDialog() { | |||
std::string dir; | |||
std::string filename; | |||
if (lastPath.empty()) { | |||
dir = asset::local("patches"); | |||
dir = asset::user("patches"); | |||
system::createDirectory(dir); | |||
} | |||
else { | |||
@@ -493,8 +493,8 @@ void RackWidget::step() { | |||
// Autosave every 15 seconds | |||
if (gGuiFrame % (60 * 15) == 0) { | |||
save(asset::local("autosave.vcv")); | |||
settings::save(asset::local("settings.json")); | |||
save(asset::user("autosave.vcv")); | |||
settings::save(asset::user("settings.json")); | |||
} | |||
Widget::step(); | |||
@@ -38,7 +38,7 @@ struct TooltipIconButton : IconButton { | |||
struct NewButton : TooltipIconButton { | |||
NewButton() { | |||
setSVG(SVG::load(asset::global("res/icons/noun_146097_cc.svg"))); | |||
setSVG(SVG::load(asset::system("res/icons/noun_146097_cc.svg"))); | |||
} | |||
std::string getTooltipText() override {return "New patch (" WINDOW_MOD_KEY_NAME "+N)";} | |||
void onAction(event::Action &e) override { | |||
@@ -48,7 +48,7 @@ struct NewButton : TooltipIconButton { | |||
struct OpenButton : TooltipIconButton { | |||
OpenButton() { | |||
setSVG(SVG::load(asset::global("res/icons/noun_31859_cc.svg"))); | |||
setSVG(SVG::load(asset::system("res/icons/noun_31859_cc.svg"))); | |||
} | |||
std::string getTooltipText() override {return "Open patch (" WINDOW_MOD_KEY_NAME "+O)";} | |||
void onAction(event::Action &e) override { | |||
@@ -58,7 +58,7 @@ struct OpenButton : TooltipIconButton { | |||
struct SaveButton : TooltipIconButton { | |||
SaveButton() { | |||
setSVG(SVG::load(asset::global("res/icons/noun_1343816_cc.svg"))); | |||
setSVG(SVG::load(asset::system("res/icons/noun_1343816_cc.svg"))); | |||
} | |||
std::string getTooltipText() override {return "Save patch (" WINDOW_MOD_KEY_NAME "+S)";} | |||
void onAction(event::Action &e) override { | |||
@@ -68,7 +68,7 @@ struct SaveButton : TooltipIconButton { | |||
struct SaveAsButton : TooltipIconButton { | |||
SaveAsButton() { | |||
setSVG(SVG::load(asset::global("res/icons/noun_1343811_cc.svg"))); | |||
setSVG(SVG::load(asset::system("res/icons/noun_1343811_cc.svg"))); | |||
} | |||
std::string getTooltipText() override {return "Save patch as (" WINDOW_MOD_KEY_NAME "+Shift+S)";} | |||
void onAction(event::Action &e) override { | |||
@@ -78,7 +78,7 @@ struct SaveAsButton : TooltipIconButton { | |||
struct RevertButton : TooltipIconButton { | |||
RevertButton() { | |||
setSVG(SVG::load(asset::global("res/icons/noun_1084369_cc.svg"))); | |||
setSVG(SVG::load(asset::system("res/icons/noun_1084369_cc.svg"))); | |||
} | |||
std::string getTooltipText() override {return "Revert patch";} | |||
void onAction(event::Action &e) override { | |||
@@ -88,7 +88,7 @@ struct RevertButton : TooltipIconButton { | |||
struct DisconnectCablesButton : TooltipIconButton { | |||
DisconnectCablesButton() { | |||
setSVG(SVG::load(asset::global("res/icons/noun_1745061_cc.svg"))); | |||
setSVG(SVG::load(asset::system("res/icons/noun_1745061_cc.svg"))); | |||
} | |||
std::string getTooltipText() override {return "Disconnect cables";} | |||
void onAction(event::Action &e) override { | |||
@@ -98,7 +98,7 @@ struct DisconnectCablesButton : TooltipIconButton { | |||
struct PowerMeterButton : TooltipIconButton { | |||
PowerMeterButton() { | |||
setSVG(SVG::load(asset::global("res/icons/noun_305536_cc.svg"))); | |||
setSVG(SVG::load(asset::system("res/icons/noun_305536_cc.svg"))); | |||
} | |||
std::string getTooltipText() override {return "Toggle power meter (see manual for explanation)";} | |||
void onAction(event::Action &e) override { | |||
@@ -122,7 +122,7 @@ struct SampleRateItem : MenuItem { | |||
struct SampleRateButton : TooltipIconButton { | |||
SampleRateButton() { | |||
setSVG(SVG::load(asset::global("res/icons/noun_1240789_cc.svg"))); | |||
setSVG(SVG::load(asset::system("res/icons/noun_1240789_cc.svg"))); | |||
} | |||
std::string getTooltipText() override {return "Engine sample rate";} | |||
void onAction(event::Action &e) override { | |||
@@ -149,7 +149,7 @@ struct SampleRateButton : TooltipIconButton { | |||
struct RackLockButton : TooltipIconButton { | |||
RackLockButton() { | |||
setSVG(SVG::load(asset::global("res/icons/noun_468341_cc.svg"))); | |||
setSVG(SVG::load(asset::system("res/icons/noun_468341_cc.svg"))); | |||
} | |||
std::string getTooltipText() override {return "Lock modules";} | |||
void onAction(event::Action &e) override { | |||
@@ -236,8 +236,8 @@ Toolbar::Toolbar() { | |||
zoomSlider->box.size.x = 150; | |||
layout->addChild(zoomSlider); | |||
// Kind of hacky, but display the PluginManagerWidget only if the local directory is not the development directory | |||
if (asset::local("") != "./") { | |||
// Kind of hacky, but display the PluginManagerWidget only if the user directory is not the development directory | |||
if (asset::user("") != "./") { | |||
Widget *pluginManager = new PluginManagerWidget; | |||
layout->addChild(pluginManager); | |||
} | |||
@@ -23,14 +23,14 @@ namespace rack { | |||
namespace asset { | |||
std::string globalDir; | |||
std::string localDir; | |||
std::string systemDir; | |||
std::string userDir; | |||
void init(bool devMode) { | |||
if (globalDir.empty()) { | |||
if (systemDir.empty()) { | |||
if (devMode) { | |||
globalDir = "."; | |||
systemDir = "."; | |||
} | |||
else { | |||
#if ARCH_MAC | |||
@@ -41,25 +41,25 @@ void init(bool devMode) { | |||
Boolean success = CFURLGetFileSystemRepresentation(resourcesUrl, TRUE, (UInt8*) resourcesBuf, sizeof(resourcesBuf)); | |||
assert(success); | |||
CFRelease(resourcesUrl); | |||
globalDir = resourcesBuf; | |||
systemDir = resourcesBuf; | |||
#endif | |||
#if ARCH_WIN | |||
char moduleBuf[MAX_PATH]; | |||
DWORD length = GetModuleFileName(NULL, moduleBuf, sizeof(moduleBuf)); | |||
assert(length > 0); | |||
PathRemoveFileSpec(moduleBuf); | |||
globalDir = moduleBuf; | |||
systemDir = moduleBuf; | |||
#endif | |||
#if ARCH_LIN | |||
// TODO For now, users should launch Rack from their terminal in the global directory | |||
globalDir = "."; | |||
// TODO For now, users should launch Rack from their terminal in the system directory | |||
systemDir = "."; | |||
#endif | |||
} | |||
} | |||
if (localDir.empty()) { | |||
if (userDir.empty()) { | |||
if (devMode) { | |||
localDir = "."; | |||
userDir = "."; | |||
} | |||
else { | |||
#if ARCH_WIN | |||
@@ -67,15 +67,15 @@ void init(bool devMode) { | |||
char documentsBuf[MAX_PATH]; | |||
HRESULT result = SHGetFolderPath(NULL, CSIDL_MYDOCUMENTS, NULL, SHGFP_TYPE_CURRENT, documentsBuf); | |||
assert(result == S_OK); | |||
localDir = documentsBuf; | |||
localDir += "/Rack"; | |||
userDir = documentsBuf; | |||
userDir += "/Rack"; | |||
#endif | |||
#if ARCH_MAC | |||
// Get home directory | |||
struct passwd *pw = getpwuid(getuid()); | |||
assert(pw); | |||
localDir = pw->pw_dir; | |||
localDir += "/Documents/Rack"; | |||
userDir = pw->pw_dir; | |||
userDir += "/Documents/Rack"; | |||
#endif | |||
#if ARCH_LIN | |||
// Get home directory | |||
@@ -85,24 +85,24 @@ void init(bool devMode) { | |||
assert(pw); | |||
homeBuf = pw->pw_dir; | |||
} | |||
localDir = homeBuf; | |||
localDir += "/.Rack"; | |||
userDir = homeBuf; | |||
userDir += "/.Rack"; | |||
#endif | |||
} | |||
} | |||
system::createDirectory(globalDir); | |||
system::createDirectory(localDir); | |||
system::createDirectory(systemDir); | |||
system::createDirectory(userDir); | |||
} | |||
std::string global(std::string filename) { | |||
return globalDir + "/" + filename; | |||
std::string system(std::string filename) { | |||
return systemDir + "/" + filename; | |||
} | |||
std::string local(std::string filename) { | |||
return localDir + "/" + filename; | |||
std::string user(std::string filename) { | |||
return userDir + "/" + filename; | |||
} | |||
@@ -17,7 +17,7 @@ void init(bool devMode) { | |||
outputFile = stderr; | |||
} | |||
else { | |||
std::string logFilename = asset::local("log.txt"); | |||
std::string logFilename = asset::user("log.txt"); | |||
outputFile = fopen(logFilename.c_str(), "w"); | |||
} | |||
} | |||
@@ -40,16 +40,16 @@ int main(int argc, char *argv[]) { | |||
// Parse command line arguments | |||
int c; | |||
opterr = 0; | |||
while ((c = getopt(argc, argv, "dg:l:")) != -1) { | |||
while ((c = getopt(argc, argv, "ds:u:")) != -1) { | |||
switch (c) { | |||
case 'd': { | |||
devMode = true; | |||
} break; | |||
case 'g': { | |||
asset::globalDir = optarg; | |||
case 's': { | |||
asset::systemDir = optarg; | |||
} break; | |||
case 'l': { | |||
asset::localDir = optarg; | |||
case 'u': { | |||
asset::userDir = optarg; | |||
} break; | |||
default: break; | |||
} | |||
@@ -67,8 +67,8 @@ int main(int argc, char *argv[]) { | |||
INFO("%s %s", APP_NAME.c_str(), APP_VERSION.c_str()); | |||
if (devMode) | |||
INFO("Development mode"); | |||
INFO("Global directory: %s", asset::global("").c_str()); | |||
INFO("Local directory: %s", asset::local("").c_str()); | |||
INFO("System directory: %s", asset::system("").c_str()); | |||
INFO("User directory: %s", asset::user("").c_str()); | |||
// Initialize app | |||
tagsInit(); | |||
@@ -83,13 +83,13 @@ int main(int argc, char *argv[]) { | |||
gScene->devMode = devMode; | |||
event::gContext->rootWidget = gScene; | |||
windowInit(); | |||
settings::load(asset::local("settings.json")); | |||
settings::load(asset::user("settings.json")); | |||
if (patchFile.empty()) { | |||
// To prevent launch crashes, if Rack crashes between now and 15 seconds from now, the "skipAutosaveOnLaunch" property will remain in settings.json, so that in the next launch, the broken autosave will not be loaded. | |||
bool oldSkipAutosaveOnLaunch = settings::gSkipAutosaveOnLaunch; | |||
settings::gSkipAutosaveOnLaunch = true; | |||
settings::save(asset::local("settings.json")); | |||
settings::save(asset::user("settings.json")); | |||
settings::gSkipAutosaveOnLaunch = false; | |||
if (oldSkipAutosaveOnLaunch && osdialog_message(OSDIALOG_INFO, OSDIALOG_YES_NO, "Rack has recovered from a crash, possibly caused by a faulty module in your patch. Clear your patch and start over?")) { | |||
gScene->rackWidget->lastPath = ""; | |||
@@ -97,7 +97,7 @@ int main(int argc, char *argv[]) { | |||
else { | |||
// Load autosave | |||
std::string oldLastPath = gScene->rackWidget->lastPath; | |||
gScene->rackWidget->load(asset::local("autosave.vcv")); | |||
gScene->rackWidget->load(asset::user("autosave.vcv")); | |||
gScene->rackWidget->lastPath = oldLastPath; | |||
} | |||
} | |||
@@ -112,8 +112,8 @@ int main(int argc, char *argv[]) { | |||
gEngine->stop(); | |||
// Destroy namespaces | |||
gScene->rackWidget->save(asset::local("autosave.vcv")); | |||
settings::save(asset::local("settings.json")); | |||
gScene->rackWidget->save(asset::user("autosave.vcv")); | |||
settings::save(asset::user("settings.json")); | |||
delete gScene; | |||
gScene = NULL; | |||
delete event::gContext; | |||
@@ -177,7 +177,7 @@ static bool PluginManager_syncPlugin(PluginManager *pluginManager, std::string s | |||
INFO("Downloading plugin %s %s %s", slug.c_str(), latestVersion.c_str(), arch.c_str()); | |||
// Download zip | |||
std::string pluginDest = asset::local("plugins/" + slug + ".zip"); | |||
std::string pluginDest = asset::user("plugins/" + slug + ".zip"); | |||
if (!network::requestDownload(downloadUrl, pluginDest, &pluginManager->downloadProgress)) { | |||
WARN("Plugin %s download was unsuccessful", slug.c_str()); | |||
return false; | |||
@@ -306,23 +306,23 @@ PluginManager::PluginManager(bool devMode) { | |||
init(corePlugin); | |||
plugins.push_back(corePlugin); | |||
// Get local plugins directory | |||
std::string localPlugins = asset::local("plugins"); | |||
mkdir(localPlugins.c_str(), 0755); | |||
// Get user plugins directory | |||
std::string userPlugins = asset::user("plugins"); | |||
mkdir(userPlugins.c_str(), 0755); | |||
if (!devMode) { | |||
// Copy Fundamental package to plugins directory if folder does not exist | |||
std::string fundamentalSrc = asset::global("Fundamental.zip"); | |||
std::string fundamentalDest = asset::local("plugins/Fundamental.zip"); | |||
std::string fundamentalDir = asset::local("plugins/Fundamental"); | |||
std::string fundamentalSrc = asset::system("Fundamental.zip"); | |||
std::string fundamentalDest = asset::user("plugins/Fundamental.zip"); | |||
std::string fundamentalDir = asset::user("plugins/Fundamental"); | |||
if (system::isFile(fundamentalSrc) && !system::isFile(fundamentalDest) && !system::isDirectory(fundamentalDir)) { | |||
system::copyFile(fundamentalSrc, fundamentalDest); | |||
} | |||
} | |||
// Extract packages and load plugins | |||
extractPackages(localPlugins); | |||
PluginManager_loadPlugins(this, localPlugins); | |||
extractPackages(userPlugins); | |||
PluginManager_loadPlugins(this, userPlugins); | |||
} | |||
PluginManager::~PluginManager() { | |||
@@ -256,7 +256,7 @@ void windowInit() { | |||
assert(gFramebufferVg); | |||
// Set up Blendish | |||
gGuiFont = Font::load(asset::global("res/fonts/DejaVuSans.ttf")); | |||
gGuiFont = Font::load(asset::system("res/fonts/DejaVuSans.ttf")); | |||
bndSetFont(gGuiFont->handle); | |||
windowSetTheme(nvgRGB(0x33, 0x33, 0x33), nvgRGB(0xf0, 0xf0, 0xf0)); | |||