Browse Source

Add definitions of carla_database.py in c++

Signed-off-by: falkTX <falktx@falktx.com>
tags/v2.1-rc1
falkTX 4 years ago
parent
commit
ed335301e9
Signed by: falkTX <falktx@falktx.com> GPG Key ID: CDBAA37ABC74FBA0
6 changed files with 399 additions and 10 deletions
  1. +1
    -1
      .travis/script-linux-juce-strict.sh
  2. +1
    -1
      .travis/script-linux-strict.sh
  3. +9
    -6
      source/frontend/Makefile
  4. +184
    -1
      source/frontend/carla_database.cpp
  5. +144
    -1
      source/frontend/carla_database.hpp
  6. +60
    -0
      source/frontend/carla_database_app.cpp

+ 1
- 1
.travis/script-linux-juce-strict.sh View File

@@ -17,7 +17,7 @@ make distclean >/dev/null
make features

# Build things that we skip strict tests for
make 3rd USING_JUCE=true
make 3rd frontend USING_JUCE=true

# Build native stuff
make TESTBUILD=true USING_JUCE=true

+ 1
- 1
.travis/script-linux-strict.sh View File

@@ -17,7 +17,7 @@ make distclean >/dev/null
make features

# Build things that we skip strict tests for
make 3rd
make 3rd frontend
make -C source/modules/water posix32

# Build native stuff


+ 9
- 6
source/frontend/Makefile View File

@@ -187,8 +187,9 @@ endif

# ---------------------------------------------------------------------------------------------------------------------

# $(OBJDIR)/carla.cpp.o \

OBJS = \
$(OBJDIR)/carla.cpp.o \
$(OBJDIR)/carla_app.cpp.o \
$(OBJDIR)/carla_database.cpp.o \
$(OBJDIR)/carla_host.cpp.o \
@@ -207,12 +208,14 @@ OBJS = \

# ---------------------------------------------------------------------------------------------------------------------

TARGETS = $(BINDIR)/carla
# TARGETS = $(BINDIR)/carla
# TARGETS = carla
TARGETS = \
$(BINDIR)/carla_database

# ---------------------------------------------------------------------------------------------------------------------

all: $(RES) $(UIs)
all: $(RES) $(UIs) $(TARGETS)

# ---------------------------------------------------------------------------------------------------------------------

@@ -221,10 +224,10 @@ $(BINDIR)/carla: $(OBJS)
@echo "Linking carla"
$(CXX) $(OBJS) $(LIBS_START) $(LIBS) $(LIBS_END) $(LINK_FLAGS) -o $@

carla_settings: $(OBJS)
$(BINDIR)/carla_database: $(OBJS) $(OBJDIR)/carla_database_app.cpp.o
-@mkdir -p $(BINDIR)
@echo "Linking carla"
$(CXX) $(OBJS) $(LIBS_START) $(LIBS) $(LIBS_END) $(LINK_FLAGS) -o $@
@echo "Linking carla_database"
$(CXX) $^ $(LIBS_START) $(LIBS) $(LIBS_END) $(LINK_FLAGS) -o $@

# ---------------------------------------------------------------------------------------------------------------------



+ 184
- 1
source/frontend/carla_database.cpp View File

@@ -1 +1,184 @@
/*
* Carla plugin database code
* Copyright (C) 2011-2019 Filipe Coelho <falktx@falktx.com>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of
* the License, or any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* For a full copy of the GNU General Public License see the doc/GPL.txt file.
*/

#include "carla_database.hpp"

// --------------------------------------------------------------------------------------------------------------------
// Separate Thread for Plugin Search

struct SearchPluginsThread::PrivateData {
PrivateData(void*)
{
}
};

SearchPluginsThread::SearchPluginsThread(QObject* parent, QString pathBinaries)
: QThread(parent),
self(new PrivateData(this))
{
}

SearchPluginsThread::~SearchPluginsThread()
{
delete self;
}

// --------------------------------------------------------------------------------------------------------------------
// Plugin Refresh Dialog

struct PluginRefreshW::PrivateData {
PrivateData(void*)
{
}
};

PluginRefreshW::PluginRefreshW(QWidget* parent)
: QDialog(parent),
self(new PrivateData(this))
{
delete self;
}

PluginRefreshW::~PluginRefreshW()
{
}

void PluginRefreshW::getValues(QString& audioDevice, uint& bufferSize, double& sampleRate)
{
}

void PluginRefreshW::closeEvent(QCloseEvent* event)
{
}

void PluginRefreshW::slot_saveSettings()
{
}

void PluginRefreshW::slot_start()
{
}

void PluginRefreshW::slot_skip()
{
}

void PluginRefreshW::slot_checkTools()
{
}

void PluginRefreshW::slot_handlePluginLook(float percent, QString plugin)
{
}

void PluginRefreshW::slot_handlePluginThreadFinished()
{
}

// --------------------------------------------------------------------------------------------------------------------
// Plugin Database Dialog

struct PluginDatabaseW::PrivateData {
PrivateData(void*)
{
}
};

PluginDatabaseW::PluginDatabaseW(QWidget* parent, const CarlaHost& host, bool hasCanvas, bool hasCanvasGL)
: QDialog(parent),
self(new PrivateData(this))
{
}

PluginDatabaseW::~PluginDatabaseW()
{
delete self;
}

void PluginDatabaseW::showEvent(QShowEvent* event)
{
}

void PluginDatabaseW::slot_cellClicked(int row, int column)
{
}

void PluginDatabaseW::slot_cellDoubleClicked(int row, int column)
{
}

void PluginDatabaseW::slot_addPlugin()
{
}

void PluginDatabaseW::slot_checkPlugin(int row)
{
}

void PluginDatabaseW::slot_checkFilters()
{
}

void PluginDatabaseW::slot_refreshPlugins()
{
}

void PluginDatabaseW::slot_clearFilters()
{
}

void PluginDatabaseW::slot_saveSettings()
{
}

// --------------------------------------------------------------------------------------------------------------------
// Jack Application Dialog

struct JackApplicationW::PrivateData {
PrivateData(void*)
{
}
};

JackApplicationW::JackApplicationW(QWidget* parent)
: QDialog(parent),
self(new PrivateData(this))
{
}

JackApplicationW::~JackApplicationW()
{
delete self;
}

void JackApplicationW::getCommandAndFlags(QString& command, QString& name, QString& labelSetup)
{
}

void JackApplicationW::slot_commandChanged(QString text)
{
}

void JackApplicationW::slot_sessionManagerChanged(int index)
{
}

void JackApplicationW::slot_saveSettings()
{
}

// --------------------------------------------------------------------------------------------------------------------

+ 144
- 1
source/frontend/carla_database.hpp View File

@@ -1 +1,144 @@
/*
* Carla plugin database code
* Copyright (C) 2011-2019 Filipe Coelho <falktx@falktx.com>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of
* the License, or any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* For a full copy of the GNU General Public License see the doc/GPL.txt file.
*/

#ifndef CARLA_DATABASE_HPP_INCLUDED
#define CARLA_DATABASE_HPP_INCLUDED

//---------------------------------------------------------------------------------------------------------------------
// Imports (Global)

#include <QtCore/QThread>
#include <QtWidgets/QDialog>

//---------------------------------------------------------------------------------------------------------------------
// Imports (Custom)

#include "CarlaJuceUtils.hpp"

class CarlaHost;

// --------------------------------------------------------------------------------------------------------------------
// Separate Thread for Plugin Search

class SearchPluginsThread : public QThread
{
Q_OBJECT

signals:
void pluginLook();

public:
SearchPluginsThread(QObject* parent, QString pathBinaries);
~SearchPluginsThread() override;

private:
struct PrivateData;
PrivateData* const self;

CARLA_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(SearchPluginsThread)
};

// --------------------------------------------------------------------------------------------------------------------
// Plugin Refresh Dialog

class PluginRefreshW : public QDialog
{
Q_OBJECT

public:
PluginRefreshW(QWidget* parent);
~PluginRefreshW() override;

void getValues(QString& audioDevice, uint& bufferSize, double& sampleRate);

private:
struct PrivateData;
PrivateData* const self;

protected:
void closeEvent(QCloseEvent* event) override;

private slots:
void slot_saveSettings();
void slot_start();
void slot_skip();
void slot_checkTools();
void slot_handlePluginLook(float percent, QString plugin);
void slot_handlePluginThreadFinished();

CARLA_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(PluginRefreshW)
};

// --------------------------------------------------------------------------------------------------------------------
// Plugin Database Dialog

class PluginDatabaseW : public QDialog
{
Q_OBJECT

public:
PluginDatabaseW(QWidget* parent, const CarlaHost& host, bool hasCanvas, bool hasCanvasGL);
~PluginDatabaseW() override;

private:
struct PrivateData;
PrivateData* const self;

protected:
void showEvent(QShowEvent* event) override;

private slots:
void slot_cellClicked(int row, int column);
void slot_cellDoubleClicked(int row, int column);
void slot_addPlugin();
void slot_checkPlugin(int row);
void slot_checkFilters();
void slot_refreshPlugins();
void slot_clearFilters();
void slot_saveSettings();

CARLA_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(PluginDatabaseW)
};

// --------------------------------------------------------------------------------------------------------------------
// Jack Application Dialog

class JackApplicationW : public QDialog
{
Q_OBJECT

public:
JackApplicationW(QWidget* parent);
~JackApplicationW() override;

void getCommandAndFlags(QString& command, QString& name, QString& labelSetup);

private:
struct PrivateData;
PrivateData* const self;

private slots:
void slot_commandChanged(QString text);
void slot_sessionManagerChanged(int index);
void slot_saveSettings();

CARLA_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(JackApplicationW)
};

//---------------------------------------------------------------------------------------------------------------------

#endif // CARLA_DATABASE_HPP_INCLUDED

+ 60
- 0
source/frontend/carla_database_app.cpp View File

@@ -0,0 +1,60 @@
/*
* Carla plugin database code
* Copyright (C) 2011-2019 Filipe Coelho <falktx@falktx.com>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of
* the License, or any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* For a full copy of the GNU General Public License see the doc/GPL.txt file.
*/

#include "carla_database.hpp"

//---------------------------------------------------------------------------------------------------------------------

#include "carla_app.hpp"
#include "carla_host.hpp"

// --------------------------------------------------------------------------------------------------------------------
// Main

int main(int argc, char* argv[])
{
// ----------------------------------------------------------------------------------------------------------------
// Read CLI args

const QString initName(handleInitialCommandLineArguments(argc, argv));

// ----------------------------------------------------------------------------------------------------------------
// App initialization

const CarlaApplication app("Carla2", argc, argv);

// ----------------------------------------------------------------------------------------------------------------
// Init host backend

CarlaHost& host = initHost(initName, false, false, true);
loadHostSettings(host);

// ----------------------------------------------------------------------------------------------------------------
// Create GUI

JackApplicationW gui(nullptr);

// ----------------------------------------------------------------------------------------------------------------
// Show GUI

gui.show();

// ----------------------------------------------------------------------------------------------------------------
// App-Loop

return app.exec();
}

Loading…
Cancel
Save