Skip to content

Commit

Permalink
Merge pull request #90 from OpenShot/release-20200229
Browse files Browse the repository at this point in the history
Release branch for libopenshot-audio 0.2.0 (SO 7)
  • Loading branch information
jonoomph authored Mar 3, 2020
2 parents b28b437 + 16991bf commit 22d5bec
Show file tree
Hide file tree
Showing 4 changed files with 163 additions and 106 deletions.
7 changes: 1 addition & 6 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
language: cpp

matrix:
jobs:
include:
- os: linux
dist: xenial
Expand All @@ -19,11 +19,6 @@ addons:
- doxygen
- graphviz

homebrew:
update: true
packages:
- gcc

script:
- mkdir -p build; cd build;
- cmake -DCMAKE_INSTALL_PREFIX:PATH="$TRAVIS_OS_NAME-x64" -DCMAKE_BUILD_TYPE:STRING="Debug" -DCMAKE_CXX_FLAGS_DEBUG="-Wall -Wpedantic" ../
Expand Down
33 changes: 25 additions & 8 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,8 @@ For more information, please visit <http://www.openshot.org/>.
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/Modules")

################ PROJECT VERSION ####################
set(PROJECT_VERSION_FULL "0.1.9")
set(PROJECT_VERSION_FULL "0.2.0")
set(PROJECT_SO_VERSION 7)
set(HEX_VERSION_OVERRIDE "0x109") # For CMake < 3.13

# Remove the dash and anything following, to get the #.#.# version for project()
STRING(REGEX REPLACE "\-.*$" "" VERSION_NUM "${PROJECT_VERSION_FULL}")
Expand All @@ -57,13 +56,31 @@ STRING(REGEX REPLACE "\-.*$" "" VERSION_NUM "${PROJECT_VERSION_FULL}")
PROJECT(libopenshot-audio LANGUAGES C CXX VERSION ${VERSION_NUM})

# JuceHeader.h needs a hexadecimal version number for the project
if(CMAKE_VERSION VERSION_LESS 3.13)
set(PROJECT_VERSION_HEX ${HEX_VERSION_OVERRIDE}) # Ugly hardcoding
if(CMAKE_VERSION VERSION_GREATER 3.13)
math(EXPR PROJECT_VERSION_HEX
"(${PROJECT_VERSION_MAJOR} << 16) + \
(${PROJECT_VERSION_MINOR} << 8) + \
(${PROJECT_VERSION_PATCH})" OUTPUT_FORMAT HEXADECIMAL )
else()
math(EXPR PROJECT_VERSION_HEX
"(${PROJECT_VERSION_MAJOR} << 16) + \
(${PROJECT_VERSION_MINOR} << 8) + \
(${PROJECT_VERSION_PATCH})" OUTPUT_FORMAT HEXADECIMAL )
# Compile and run a C++ program to generate the hex version
set(HEX_COMPILE_DEFINITIONS
-DVERSION_MAJOR=${PROJECT_VERSION_MAJOR}
-DVERSION_MINOR=${PROJECT_VERSION_MINOR}
-DVERSION_PATCH=${PROJECT_VERSION_PATCH}
)
try_run(HEX_VERSION_RUN HEX_VERSION_BUILD
${CMAKE_CURRENT_BINARY_DIR}/hex_version
${PROJECT_SOURCE_DIR}/src/hex_version.cpp
COMPILE_DEFINITIONS ${HEX_COMPILE_DEFINITIONS}
RUN_OUTPUT_VARIABLE HEX_VERSION_OUTPUT
)
if (NOT HEX_VERSION_BUILD)
message(ERROR "Failed to compile hex-version utility!")
elseif(HEX_VERSION_RUN STREQUAL FAILED_TO_RUN)
message(ERROR "Could not execute hex-version utility!")
else()
set(PROJECT_VERSION_HEX ${HEX_VERSION_OUTPUT})
endif()
endif()

message("\
Expand Down
178 changes: 86 additions & 92 deletions src/Main.cpp
Original file line number Diff line number Diff line change
@@ -1,92 +1,86 @@
/**
* @file
* @brief Source code to play a test sound
* @author Jonathan Thomas <[email protected]>
*
* @section LICENSE
*
* Copyright (c) 2008-2016 OpenShot Studios, LLC
* <http://www.openshotstudios.com/>. This file is part of OpenShot Audio
* Library (libopenshot-audio), an open-source project dedicated to delivering
* high quality audio editing and playback solutions to the world. For more
* information visit <http://www.openshot.org/>.
*
* OpenShot Audio Library (libopenshot-audio) 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
* 3 of the License, or (at your option) any later version.
*
* OpenShot Audio Library (libopenshot-audio) 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.
*
* You should have received a copy of the GNU General Public License
* along with OpenShot Library. If not, see <http://www.gnu.org/licenses/>.
*
* @mainpage OpenShot Audio Library C++ API
*
* Welcome to the OpenShot Audio Library C++ API. This library is used by libopenshot to enable audio
* features, which powers the <a href="http://www.openshot.org">OpenShot Video Editor</a> application.
*/

#include <iostream>
#include <unistd.h>
#include "../JuceLibraryCode/JuceHeader.h"

#if JUCE_MINGW
#define sleep(a) Sleep(a * 1000)
#include <windows.h>
#endif

using namespace std;

//==============================================================================
int main()
{

// Initialize audio devices
cout << "Begin init" << endl;
AudioDeviceManager deviceManager;
String error = deviceManager.initialise ( 0, /* number of input channels */
2, /* number of output channels */
0, /* no XML settings.. */
true /* select default device on failure */);

// Output error (if any)
if (error.isNotEmpty()) {
cout << "Error on initialise(): " << error.toStdString() << endl;
}

// Play test sound
cout << "Playing sound now" << endl;
deviceManager.playTestSound();
for (int x = 1; x <= 5; x++) {
cout << "... " << x << endl;
sleep(1);
}

cout << "before device loop" << endl;
for (int i = 0; i < deviceManager.getAvailableDeviceTypes().size(); ++i)
{
const AudioIODeviceType* t = deviceManager.getAvailableDeviceTypes()[i];
const StringArray deviceNames = t->getDeviceNames ();

for (int j = 0; j < deviceNames.size (); ++j )
{
const String deviceName = deviceNames[j];
String menuName;

menuName << deviceName << " (" << t->getTypeName() << ")";
cout << menuName << endl;
}
}
cout << "after device loop" << endl;

// Stop audio devices
deviceManager.closeAudioDevice();
deviceManager.removeAllChangeListeners();
deviceManager.dispatchPendingMessages();

return 0;
}
/**
* @file
* @brief Source code to play a test sound
* @author Jonathan Thomas <[email protected]>
*
* @section LICENSE
*
* Copyright (c) 2008-2016 OpenShot Studios, LLC
* <http://www.openshotstudios.com/>. This file is part of OpenShot Audio
* Library (libopenshot-audio), an open-source project dedicated to delivering
* high quality audio editing and playback solutions to the world. For more
* information visit <http://www.openshot.org/>.
*
* OpenShot Audio Library (libopenshot-audio) 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
* 3 of the License, or (at your option) any later version.
*
* OpenShot Audio Library (libopenshot-audio) 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.
*
* You should have received a copy of the GNU General Public License
* along with OpenShot Library. If not, see <http://www.gnu.org/licenses/>.
*
* @mainpage OpenShot Audio Library C++ API
*
* Welcome to the OpenShot Audio Library C++ API. This library is used by libopenshot to enable audio
* features, which powers the <a href="http://www.openshot.org">OpenShot Video Editor</a> application.
*/

#include <iostream>
#include "../JuceLibraryCode/JuceHeader.h"

//==============================================================================
int main()
{

// Initialize audio devices
std::cout << "Begin init" << std::endl;
AudioDeviceManager deviceManager;
String error = deviceManager.initialise (
0, /* number of input channels */
2, /* number of output channels */
0, /* no XML settings.. */
true /* select default device on failure */
);

// Output error (if any)
if (error.isNotEmpty()) {
std::cout << "Error on initialise(): " << error.toStdString() << std::endl;
}

// Play test sound
std::cout << "Playing sound now" << std::endl;
deviceManager.playTestSound();
for (int x = 1; x <= 5; x++) {
std::cout << "... " << x << std::endl;
juce::Thread::sleep(1000);
}

std::cout << "before device loop" << std::endl;
for (int i = 0; i < deviceManager.getAvailableDeviceTypes().size(); ++i)
{
const AudioIODeviceType* t = deviceManager.getAvailableDeviceTypes()[i];
const StringArray deviceNames = t->getDeviceNames ();

for (int j = 0; j < deviceNames.size (); ++j )
{
const String deviceName = deviceNames[j];
String menuName;

menuName << deviceName << " (" << t->getTypeName() << ")";
std::cout << menuName << std::endl;
}
}
std::cout << "after device loop" << std::endl;

// Stop audio devices
deviceManager.closeAudioDevice();
deviceManager.removeAllChangeListeners();
deviceManager.dispatchPendingMessages();

return 0;
}
51 changes: 51 additions & 0 deletions src/hex_version.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
/**
* @file
* @brief Build utility program to generate hex-format version numbers
* @author FeRD (Frank Dana) <[email protected]>
*
* @section LICENSE
*
* Copyright (c) 2008-2020 OpenShot Studios, LLC
* <http://www.openshotstudios.com/>. This file is part of OpenShot Audio
* Library (libopenshot-audio), an open-source project dedicated to delivering
* high quality audio editing and playback solutions to the world. For more
* information visit <http://www.openshot.org/>.
*
* OpenShot Audio Library (libopenshot-audio) 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
* 3 of the License, or (at your option) any later version.
*
* OpenShot Audio Library (libopenshot-audio) 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.
*
* You should have received a copy of the GNU General Public License
* along with OpenShot Library. If not, see <http://www.gnu.org/licenses/>.
*
* @mainpage OpenShot Audio Library C++ API
*
* Welcome to the OpenShot Audio Library C++ API. This library is used by libopenshot to enable audio
* features, which powers the <a href="http://www.openshot.org">OpenShot Video Editor</a> application.
*/

#include <iostream>
#include <ios>

// The following values must be defined at compile time:
// VERSION_MAJOR, VERSION_MINOR, VERSION_PATCH

#if !defined(VERSION_MAJOR) || !defined(VERSION_MINOR) || !defined(VERSION_PATCH)
#pragma error "Define version components on compiler command line!"
#endif

int main()
{

int hex_version = (VERSION_MAJOR << 16) +
(VERSION_MINOR << 8) +
(VERSION_PATCH);

std::cout << std::hex << "0x" << hex_version;
}

0 comments on commit 22d5bec

Please sign in to comment.