int main(int argc, char *argv[]) { QApplication a(argc, argv); a.setApplicationVersion(REFLOW_CURRENT_VERSION); a.setOrganizationName("Gargant Studios"); a.setOrganizationDomain("gargant.com"); a.setApplicationName("Reflow"); // Splash screen RESplash splash; splash.show(); // Default soundfont path RESoundFontManager::Instance().SetDefaultSoundFontPath(DataPath() + "/GeneralUser.sf2"); REAudioSettings settings; RERtAudioEngine* audio = RERtAudioEngine::Instance(); //REJackAudioEngine* audio = REJackAudioEngine::Instance(); audio->Initialize(settings); audio->StartRendering(); REMainWindow w; w.ActionNew(); w.show(); QObject::connect(&splash, SIGNAL(accepted()), &w, SLOT(CheckUpdatesInBackground())); return a.exec(); }
DataPath DataPath::component(unsigned index) const { auto& mgr = path.getNodeManager(); auto& ext = mgr.getLangExtension<lang::DatapathExtension>(); assert_true(getTargetType().isa<TupleTypePtr>()) << "Current target must be a tuple type!"; assert_lt(index, getTargetType().as<TupleTypePtr>().size()); auto elementType = getTargetType().as<TupleTypePtr>()[index]; IRBuilder builder(mgr); return DataPath(builder.callExpr(ext.getDataPathComponent(), path, builder.uintLit(index), builder.getTypeLiteral(elementType))); }
DataPath DataPath::member(const string& name) const { auto& mgr = path.getNodeManager(); auto& ext = mgr.getLangExtension<lang::DatapathExtension>(); assert_true(getTargetType().isa<TagTypePtr>()) << "Current target must be a tag type!"; auto elementType = getTargetType().as<TagTypePtr>()->getFieldType(name); assert_true(elementType) << "No member " << name << " in type " << *getTargetType() << "\n"; IRBuilder builder(mgr); return DataPath(builder.callExpr(ext.getDataPathMember(), path, builder.getIdentifierLiteral(name), builder.getTypeLiteral(elementType))); }
DataPath DataPath::parent(const TypePtr& type) const { auto& mgr = path.getNodeManager(); auto& ext = mgr.getLangExtension<lang::DatapathExtension>(); IRBuilder builder(mgr); return DataPath(builder.callExpr(ext.getDataPathParent(), path, builder.getTypeLiteral(type))); }
DataPath DataPath::element(const ExpressionPtr& element) const { auto& mgr = path.getNodeManager(); auto& ext = mgr.getLangExtension<lang::DatapathExtension>(); assert_true(mgr.getLangBasic().isSignedInt(element->getType())) << "Index has to be a signed integer!"; return DataPath(IRBuilder(mgr).callExpr(ext.getDataPathElement(), path, element)); }