diff --git a/CMakeLists.txt b/CMakeLists.txt index 9051c25e3f96269df42e62d1d650cbc5b8ebbbb8..5d1d913f01bcc3adfb2c394d6c8745125a3bdf25 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,6 +13,7 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON) set(THREADS_PREFER_PTHREAD_FLAG ON) +# Find all dependencies find_package(QT NAMES Qt6 Qt5 COMPONENTS Widgets REQUIRED) find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Widgets REQUIRED) find_library(AVCODEC_LIBRARY avcodec REQUIRED) @@ -20,16 +21,17 @@ find_library(AVUTIL_LIBRARY avutil REQUIRED) find_library(SWRESAMPLE_LIBRARY swresample REQUIRED) find_library(AVFORMAT_LIBRARY avformat REQUIRED) +# Grab all files +file(GLOB Vivy_SRC + "${CMAKE_CURRENT_SOURCE_DIR}/src/*.cc" + "${CMAKE_CURRENT_SOURCE_DIR}/src/*.c" +) +file(GLOB Vivy_INC + "${CMAKE_CURRENT_SOURCE_DIR}/inc/vivy/*.h" +) set(PROJECT_SOURCES - main.cpp - mainwindow.cpp - mainwindow.h - audioVisualizer.h - audioVisualizer.cpp - timer.h - timer.cpp - timingBar.h - timingBar.cpp + ${Vivy_SRC} + ${Vivy_INC} ) if(${QT_VERSION_MAJOR} GREATER_EQUAL 6) @@ -43,14 +45,17 @@ else() ) endif() +# Link dependencies to Vivy target_link_libraries(Vivy PRIVATE Qt${QT_VERSION_MAJOR}::Widgets) target_link_libraries(Vivy PRIVATE ${AVCODEC_LIBRARY}) target_link_libraries(Vivy PRIVATE ${AVUTIL_LIBRARY}) target_link_libraries(Vivy PRIVATE ${SWRESAMPLE_LIBRARY}) target_link_libraries(Vivy PRIVATE ${AVFORMAT_LIBRARY}) +target_include_directories(Vivy PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/inc) + set_target_properties(Vivy PROPERTIES - MACOSX_BUNDLE_GUI_IDENTIFIER my.example.com + MACOSX_BUNDLE_GUI_IDENTIFIER vivy.iiens.net MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION} MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} ) diff --git a/audioVisualizer.h b/inc/vivy/audioVisualizer.h similarity index 92% rename from audioVisualizer.h rename to inc/vivy/audioVisualizer.h index dd07f3a63c930c0c5aacc399d7716ce3df78f955..04fa824651546b7fa8f772376ca94af4f0d1f54a 100644 --- a/audioVisualizer.h +++ b/inc/vivy/audioVisualizer.h @@ -16,7 +16,7 @@ class AudioVisualizer : public QWidget public: AudioVisualizer(QWidget *parent = nullptr); - ~AudioVisualizer(); + ~AudioVisualizer() = default; public slots: diff --git a/mainwindow.h b/inc/vivy/mainwindow.h similarity index 95% rename from mainwindow.h rename to inc/vivy/mainwindow.h index 0545c3730123a510eced27bcb95b3055c13d7853..7d613b7363989610078dcb557e0b00ace1f7d96e 100644 --- a/mainwindow.h +++ b/inc/vivy/mainwindow.h @@ -17,7 +17,7 @@ class MainWindow : public QMainWindow public: MainWindow(QWidget *parent = nullptr); - ~MainWindow(); + ~MainWindow() = default; private slots: void openAudioFile(); diff --git a/timer.h b/inc/vivy/timer.h similarity index 93% rename from timer.h rename to inc/vivy/timer.h index 40157d5ac545e9231f7e59e5d2f50a8fe90e69a4..67a7af669ab88fd5381e8c3d9f26d317c5f53456 100644 --- a/timer.h +++ b/inc/vivy/timer.h @@ -14,7 +14,8 @@ #include <QVector> #include <QGraphicsLineItem> #include <QGraphicsPixmapItem> -#include "timingBar.h" + +#include <vivy/timingBar.h> #define TO_ADD_TO_IMAGE_HEIGHT 2 @@ -24,7 +25,7 @@ class Timer : public QGraphicsView public: Timer(QImage img, QWidget *parent = nullptr); - ~Timer(); + ~Timer() = default; QPainter painter; QGraphicsScene* scene = new QGraphicsScene; diff --git a/timingBar.h b/inc/vivy/timingBar.h similarity index 96% rename from timingBar.h rename to inc/vivy/timingBar.h index 3519d4a373295848e2c41578ef8a363fb8981a60..b956a3cd824819185d5c4d8287d7f74902a5215f 100644 --- a/timingBar.h +++ b/inc/vivy/timingBar.h @@ -18,7 +18,7 @@ class TimingBar : public QGraphicsLineItem { public: TimingBar(QLine, QColor, QWidget *parent = nullptr); - ~TimingBar(); + ~TimingBar() = default; protected: //void mousePressEvent(QGraphicsSceneMouseEvent*); diff --git a/audioVisualizer.cpp b/src/audioVisualizer.cc similarity index 79% rename from audioVisualizer.cpp rename to src/audioVisualizer.cc index 4441f070d776365986ab335d0a4e098e9f918ac0..0d78e6b47d86545646d1b86571e73eb6480213dc 100644 --- a/audioVisualizer.cpp +++ b/src/audioVisualizer.cc @@ -1,14 +1,10 @@ -#include "audioVisualizer.h" +#include <vivy/audioVisualizer.h> AudioVisualizer::AudioVisualizer(QWidget *parent) : QWidget(parent) { } -AudioVisualizer::~AudioVisualizer() -{ -} - void AudioVisualizer::printSpectrum(QImage pixmap) { Timer *timer = new Timer(pixmap); diff --git a/main.cpp b/src/main.cc similarity index 84% rename from main.cpp rename to src/main.cc index 9dbace13de68b99a53cf3848be17e1125b83df0d..a378040f73bc96e67a047aa6f1c29ad4ea096a80 100644 --- a/main.cpp +++ b/src/main.cc @@ -1,4 +1,4 @@ -#include "mainwindow.h" +#include <vivy/mainwindow.h> #include <QApplication> diff --git a/mainwindow.cpp b/src/mainwindow.cc similarity index 97% rename from mainwindow.cpp rename to src/mainwindow.cc index 8dc3350189d33b40d0abb62d271616f75fd7b0ee..3f513c18e12d21db23b0fedb4e8bcd95610ecae6 100644 --- a/mainwindow.cpp +++ b/src/mainwindow.cc @@ -1,7 +1,8 @@ -#include "mainwindow.h" +#include <vivy/mainwindow.h> + #include <iostream> -#include <string.h> -#include <stdio.h> +#include <cstring> +#include <cstdio> #include <QStandardPaths> extern "C" { @@ -30,11 +31,8 @@ MainWindow::MainWindow(QWidget *parent) statusBar()->showMessage("QSimulate has started"); } -MainWindow::~MainWindow() -{ -} - -int decode_audio_file(const char* path, const int sample_rate, double** data, int* size) { +static int +decode_audio_file(const char* path, const int sample_rate, double** data, int* size) { // initialize all muxers, demuxers and protocols for libavformat // (does nothing if called twice during the course of one program execution) diff --git a/timer.cpp b/src/timer.cc similarity index 96% rename from timer.cpp rename to src/timer.cc index 975090082153cc10eab42b9f12dafe73685f16a8..53bd62ba922556460762bb51cd363367a7b246d5 100644 --- a/timer.cpp +++ b/src/timer.cc @@ -1,4 +1,4 @@ -#include "timer.h" +#include <vivy/timer.h> Timer::Timer(QImage img, QWidget *parent) : QGraphicsView(parent), @@ -12,11 +12,6 @@ Timer::Timer(QImage img, QWidget *parent) setScene(scene); } -Timer::~Timer() -{ -} - - void Timer::mousePressEvent(QMouseEvent* event){ QPoint pos = event->pos(); pos.rx() += horizontalScrollBar()->value(); diff --git a/timingBar.cpp b/src/timingBar.cc similarity index 95% rename from timingBar.cpp rename to src/timingBar.cc index 7edc742bda13cb4837a67fb802f82e564e7cdc34..25ddc752a74583df4a626c454b89a71853162c04 100644 --- a/timingBar.cpp +++ b/src/timingBar.cc @@ -1,4 +1,4 @@ -#include "timingBar.h" +#include <vivy/timingBar.h> #define BAR_DEMI_WIDTH 2 #define BAR_WIDTH 4 @@ -12,10 +12,6 @@ TimingBar::TimingBar(QLine line, QColor color, QWidget *parent) setCursor(Qt::PointingHandCursor); } -TimingBar::~TimingBar() -{ -} - /* void TimingBar::mousePressEvent(QGraphicsSceneMouseEvent* event){ fprintf(stderr, "CLICKED\n");