Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
94 commits
Select commit Hold shift + click to select a range
d9abe62
iOS sound support. opus lib modified because of "Compile sources as" …
ngocdh Apr 13, 2021
1c90af9
resolving merge
ngocdh Apr 14, 2021
60fcdef
BOOL -> bool
ngocdh Apr 14, 2021
9b9474f
Android built-in mic / external device
ngocdh Apr 14, 2021
ed1e28e
Update sound.h
ngocdh Apr 14, 2021
4c4eb56
Update sound.cpp
ngocdh Apr 14, 2021
444a820
Update clientdlg.cpp
ngocdh Apr 14, 2021
36e7232
Update sound.cpp
ngocdh Apr 14, 2021
4eaf3de
Update sound.cpp
ngocdh Apr 14, 2021
7660feb
Update clientdlg.cpp
ngocdh Apr 14, 2021
6e4d23e
Update clientsettingsdlg.cpp
ngocdh Apr 14, 2021
e88bf3b
Update client.cpp
ngocdh Apr 14, 2021
5d5b757
Update client.cpp
ngocdh Apr 14, 2021
c7b9cac
Update clientdlg.cpp
ngocdh Apr 14, 2021
84c49dd
Update clientsettingsdlg.cpp
ngocdh Apr 14, 2021
6fc18e2
Update chatdlg.cpp
ngocdh Apr 14, 2021
99c5e58
Update clientdlg.cpp
ngocdh Apr 14, 2021
f36b806
Update chatdlg.cpp
ngocdh Apr 14, 2021
9ab1fa7
Update clientsettingsdlg.cpp
ngocdh Apr 14, 2021
d7d0611
Update clientdlg.h
ngocdh Apr 15, 2021
6e436c4
Update client.cpp
ngocdh Apr 15, 2021
4d16da0
Update sound.cpp
ngocdh Apr 15, 2021
133feb8
Update sound.cpp
ngocdh Apr 15, 2021
4ad5680
Update sound.h
ngocdh Apr 15, 2021
16f2284
Update sound.cpp
ngocdh Apr 15, 2021
ef748a7
Update clientdlg.cpp
ngocdh Apr 15, 2021
4d189e7
Update client.h
ngocdh Apr 15, 2021
f853767
Update sound.cpp
ngocdh Apr 15, 2021
68f7881
Update sound.h
ngocdh Apr 15, 2021
e5f4372
Update clientdlg.cpp
ngocdh Apr 15, 2021
faf9fb2
Update sound.h
ngocdh Apr 15, 2021
45e217c
Update sound.h
ngocdh Apr 15, 2021
108c6ab
Update sound.h
ngocdh Apr 15, 2021
3adc7f8
Update sound.h
ngocdh Apr 15, 2021
bced568
Update clientdlg.cpp
ngocdh Apr 15, 2021
055fbe3
Update client.h
ngocdh Apr 15, 2021
3167c95
Update sound.cpp
ngocdh Apr 15, 2021
3b5c530
Update sound.cpp
ngocdh Apr 15, 2021
4c4de4d
Update sound.cpp
ngocdh Apr 15, 2021
55dfa4c
test device 9
ngocdh Apr 15, 2021
64bf820
android build only
ngocdh Apr 15, 2021
b918af5
Revert changes in opus, remove Foundation.h, remove unused BOOL. Add …
ngocdh Apr 16, 2021
2eb2754
Merge remote-tracking branch 'refs/remotes/origin/master'
ngocdh Apr 16, 2021
022a004
Revert "android build only"
ngocdh Apr 16, 2021
726060a
resolving conflict in src/clientdlg.h (add SendTabChange)
ngocdh Apr 16, 2021
75bf59c
Merge remote-tracking branch 'refs/remotes/truemaster/master'
ngocdh Apr 16, 2021
d526b1b
trying setAudioApi AAudio
ngocdh Apr 19, 2021
8877002
Update sound.cpp
ngocdh Apr 19, 2021
6d2a71e
dev 9 aaudio
ngocdh Apr 19, 2021
b6b2ebf
Update sound.cpp
ngocdh Apr 20, 2021
27ffe92
check getDeviceId() instead of oboe::Result::OK
ngocdh Apr 20, 2021
6ee7197
AAudio 7 only when builtinmic=true
ngocdh Apr 20, 2021
0465a5d
dev 20 for google pixel 5
ngocdh Apr 20, 2021
2517706
Merge pull request #2 from ngocdh/master
ngocdh Apr 20, 2021
b7f8b3d
Add input device id text box
ngocdh Apr 20, 2021
9c2d4ab
void OnBuiltInMicIdChanged();
ngocdh Apr 20, 2021
56ac5e3
edtBuiltInMicId and OnBuiltInMicIdChanged
ngocdh Apr 20, 2021
8556f81
iBuiltInMicId
ngocdh Apr 20, 2021
284518f
SetInputDeviceId iBuiltInMicId
ngocdh Apr 20, 2021
3bcdba8
iBuiltInMicId - SetInputDeviceId ( const int deviceid )
ngocdh Apr 20, 2021
81ee2d5
SetInputDeviceId ( int deviceid );
ngocdh Apr 20, 2021
742e7a1
void CSound::SetInputDeviceId ( int deviceid )
ngocdh Apr 20, 2021
5726ecb
SetInputDeviceId( int deviceid );
ngocdh Apr 20, 2021
7fdb2d6
Update sound.mm
ngocdh Apr 20, 2021
0846c5b
setBuiltinMic unsetBuiltinMic
ngocdh Apr 20, 2021
ea4614e
auto dev
ngocdh Apr 20, 2021
f2d3302
Update sound.h
ngocdh Apr 20, 2021
9e3a60a
SetInputDeviceId ( int deviceid );
ngocdh Apr 20, 2021
1372fb6
revert change (committed by error)
ngocdh Apr 20, 2021
94961b3
Merge branch 'master' into mobile-builtinmic
ngocdh Apr 20, 2021
e76929c
remove SetBuiltinMic
ngocdh Apr 20, 2021
7527ade
SetBuiltInMicId GetBuiltInMicId
ngocdh Apr 20, 2021
1dc63a0
GetBuiltInMicId instead of direct access
ngocdh Apr 20, 2021
83311ab
pClient->SetBuiltInMicId
ngocdh Apr 20, 2021
5e2dbb2
close menu action
ngocdh Apr 20, 2021
276ae3b
Device id text box for Android only
ngocdh Apr 20, 2021
dd29299
different close menu for ios and android
ngocdh Apr 20, 2021
2daaf6a
experimental textbox for Built-in Mic deviceid input - Android only (…
ngocdh Apr 22, 2021
e26aa4a
Merge remote-tracking branch 'refs/remotes/truemaster/master'
ngocdh May 19, 2021
4ca2e30
Client.cpp: iOS 4 sound inits down to 1 <- reduce launch time
ngocdh May 19, 2021
3cbb2c4
iOS: Sound inits down to 1 from 36
ngocdh May 20, 2021
ab49a72
Sound inits back to 9 times (not 9*4=36) until a way to check if app …
ngocdh May 20, 2021
474e0b8
Remove unused libs to speed up launch
ngocdh May 26, 2021
92010f5
iOS: remove unused libs
ngocdh May 26, 2021
eea2908
autobuild: +x bit for mac or else check will fail
ngocdh May 26, 2021
4d61784
autobuild mac artifacts +x
ngocdh May 26, 2021
c5edb9d
Fix connect button crash
ngocdh Jun 6, 2021
cc13fc6
really fix connect crash?
ngocdh Jun 7, 2021
cb53bea
connect crash
ngocdh Jun 7, 2021
114460e
Temporary crash fix, TODO: reopen socket when SIGPIPE
ngocdh Jun 7, 2021
99a6230
Fix iOS return-from-idle crash: reopen socket
ngocdh Jun 7, 2021
ab02049
Merge master into master
ngocdh Jun 12, 2021
b1a5b51
update as requested
ngocdh Jun 12, 2021
73c677f
remove qm changes and add ngocdh as contributor in about
ngocdh Jun 12, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .clang-format-ignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# exclude third party code from clang-format checks
./libs
./windows/nsProcess
12 changes: 10 additions & 2 deletions .github/workflows/autobuild.yml
Original file line number Diff line number Diff line change
Expand Up @@ -111,19 +111,27 @@ jobs:
- config_name: MacOS (codeQL)
target_os: macos
building_on_os: macos-10.15
cmd1_prebuild: "./autobuild/mac/codeQL/autobuild_mac_1_prepare.sh"
cmd1_prebuild: "./autobuild/mac/codeQL/autobuild_mac_1_prepare.sh 5.15.2"
cmd2_build: "./autobuild/mac/codeQL/autobuild_mac_2_build.sh"
cmd3_postbuild: false
uses_codeql: true

- config_name: MacOS (artifacts)
target_os: macos
building_on_os: macos-10.15
cmd1_prebuild: "./autobuild/mac/artifacts/autobuild_mac_1_prepare.sh"
cmd1_prebuild: "./autobuild/mac/artifacts/autobuild_mac_1_prepare.sh 5.15.2"
cmd2_build: "./autobuild/mac/artifacts/autobuild_mac_2_build.sh"
cmd3_postbuild: "./autobuild/mac/artifacts/autobuild_mac_3_copy_files.sh"
uses_codeql: false

- config_name: MacOS Legacy (artifacts)
target_os: macos
building_on_os: macos-10.15
cmd1_prebuild: "./autobuild/mac/artifacts/autobuild_mac_1_prepare.sh 5.9.9"
cmd2_build: "./autobuild/mac/artifacts/autobuild_mac_2_build.sh"
cmd3_postbuild: "./autobuild/mac/artifacts/autobuild_mac_3_copy_files.sh legacy"
uses_codeql: false

- config_name: Windows (artifact+codeQL)
target_os: windows
building_on_os: windows-latest
Expand Down
20 changes: 20 additions & 0 deletions .github/workflows/coding-style-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: Coding Style Check

on:
push:
branches: [ master ]
pull_request:
branches: [ master ]

jobs:
clang-format:
name: Verify Clang-Format compliance
permissions:
contents: read
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: DoozyX/clang-format-lint-action@2a28e3a8d9553f244243f7e1ff94f6685dff87be
with:
clangFormatVersion: 10
extensions: 'cpp,h'
155 changes: 155 additions & 0 deletions COMPILING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,155 @@
## Points to note

- Jamulus can be compiled for Linux, Windows and macOS. However, the preferred method of supporting these platforms is to use the binaries generated by the autobuild process in the Jamulus repository.
- For unattended installs, see the contributed [installation scripts](https://github.com/jamulussoftware/installscripts)
- There are reports from people who successfully compile and run Jamulus on BSDs.
- Android and iOS are not officially supported.

---


## Download sources

For .tar.gz [use this link](https://github.com/jamulussoftware/jamulus/archive/latest.tar.gz) to download the latest release

For .zip [use this link](https://github.com/jamulussoftware/jamulus/archive/latest.zip)

## Linux

#### Install dependencies

On Ubuntu-based distributions 18.04+, Debian 9+, and Raspberry Pi OS:

* build-essential
* qt5-qmake
* qtdeclarative5-dev
* qt5-default
* qttools5-dev-tools
* libjack-jackd2-dev

#### On Fedora 33+

* qt5-qtdeclarative-devel
* jack-audio-connection-kit-dbus
* qt5-qtbase
* jack-audio-connection-kit-devel
* qt5-linguist

#### For all desktop distributions

[QjackCtl](https://qjackctl.sourceforge.io/) is optional, but recommended to configure JACK.


### Standard desktop build

```
make distclean
qmake # qmake-qt5 on Fedora 33
make
sudo make install
```

`make distclean` is optional but ensures a clean build environment. `make install` is optional and puts the Jamulus binary into `/usr/local/bin`.

### “Headless” server build

Although not strictly necessary, we recommend using the headless flag to avoid having to install some of the dependent packages, save some disk space and/or speed up your build time.

Note that you don’t need to install the JACK package(s) for a headless build. If you plan to run headless on Gentoo, or are compiling under Ubuntu for use on another Ubuntu machine, the only packages you should need for a headless build are `qtcore`, `qtnetwork`, `qtconcurrent` and `qtxml` (both for building and running the server).

Compile the sources to ignore the JACK sound library:

```
make distclean # recommended
qmake "CONFIG+=nosound headless"
make
sudo make install # optional
```

To control the server with systemd, see this [unit file example](https://github.com/jamulussoftware/jamulus/blob/master/distributions/jamulus-server.service). See also runtime [configuration options](https://jamulus.io/wiki/Command-Line-Options), and [this information](https://jamulus.io/wiki/Tips-Tricks-More#controlling-recordings-on-linux-headless-servers) on controlling recordings on headless servers.

---

## Windows


You will need [Qt](https://www.qt.io/download)

* Use the free GPLv2 license for Open Source development
* To determine the Qt version you need, check [qt-installer-windows.qs](https://github.com/jamulussoftware/jamulus/blob/master/windows/qt-installer-windows.qs): under INSTALL_COMPONENTS you will see `qt.qt5.[version]`, e.g., 5123 means version 5.12.3.
* Select Components during installation: Expand the Qt section, find the matching version, e.g., **Qt 5.12.3**, and add the compiler components for your compiler, e.g., `MSVC 2017 32-bit/64-bit` for Visual Studio 2019
* [ASIO development files](https://www.steinberg.net/en/company/developer.html)

### Compiling and building installer

Most users will probably want to use this method:

1. Open PowerShell
1. Navigate to the `jamulus` directory
1. To allow unsigned scripts, right-click on the `windows\deploy_windows.ps1` script, select properties and allow the execution of this script. You can also run `Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser`. (You can revert this after having run this script. For more information see the [Microsoft PowerShell documentation page](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.security/set-executionpolicy)).
1. Edit the $QtCompile32 and $QtCompile64 variables.
1. Run the Jamulus compilation and installer script in PowerShell: `.\windows\deploy_windows.ps1`.
1. You can now find the Jamulus installer in the `.\deploy` directory.

### Compiling only

1. Create a folder under `\windows` called ASIOSDK2
1. Download the [ASIOSDK](https://www.steinberg.net/asiosdk), open the top level folder in the .zip file and copy the contents into `[\path\to\jamulus\source]\windows\ASIOSDK2` so that, e.g., the folder `[\path\to\jamulus\source]\windows\ASIOSDK2\common` exists
1. Open Jamulus.pro in Qt Creator, configure the project with a default kit, then compile & run

---

## macOS
You will need XCode and Qt as follows:

```
brew install qt5
brew link qt5 --force
```

### Generate XCode Project file

`qmake -spec macx-xcode Jamulus.pro`

### Print build targets and configuration in console

`xcodebuild -list -project Jamulus.xcodeproj`

will prompt

```
Targets:
Jamulus
Qt Preprocess

Build Configurations:
Debug
Release
```

If no build configuration is specified and `-scheme` is not passed then "Release" is used.

```
Schemes:
Jamulus
```

### Build the project

`xcodebuild build`

Will build the file and make it available in `./Release/Jamulus.app`

## iOS
* Make sure to install qt5 with the Qt Installer (not homebrew), and explicitly select iOS when choosing the Qt version
* Run `/path/to/qt/5.15.2/ios/bin/qmake -spec macx-xcode Jamulus.pro`
* Open the generated .xcodeproject in XCode, check the Signing & Capabilities and configure a team
* To run on a iOS device, build and run on the device, you'll have first trust your developer profile in device's Settings.

## Android
* Install Qt, including the Android support from the Qt installer
* Follow Qt's [Getting Started with Qt for Android](https://doc.qt.io/qt-5/android-getting-started.html) instructions
* Make sure Jamulus submodules are present, notably oboe:
`git submodule update --init`
* Open Jamulus.pro in Qt Creator
* Now you should be able to Build & Run for Android.
Loading