support 44.1 for the note 4

This commit is contained in:
Stephen Birarda 2015-01-23 11:48:23 -08:00
parent 86c0cbe4a8
commit a3b92e05da
5 changed files with 38 additions and 12 deletions

View file

@ -61,6 +61,7 @@
Remove the comment if you do not require these default permissions. --> Remove the comment if you do not require these default permissions. -->
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<!-- camera permission required for GEAR VR passthrough camera --> <!-- camera permission required for GEAR VR passthrough camera -->
<uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.CAMERA" />

View file

@ -107,7 +107,7 @@ macro(qt_create_apk)
# use androiddeployqt to create the apk # use androiddeployqt to create the apk
add_custom_target(${TARGET_NAME}-apk add_custom_target(${TARGET_NAME}-apk
COMMAND ${ANDROID_DEPLOY_QT} --input "${TARGET_NAME}-deployment.json" --output "${ANDROID_APK_OUTPUT_DIR}" --android-platform android-${ANDROID_API_LEVEL} --install --deployment bundled "\\$(ARGS)" COMMAND ${ANDROID_DEPLOY_QT} --input "${TARGET_NAME}-deployment.json" --output "${ANDROID_APK_OUTPUT_DIR}" --android-platform android-${ANDROID_API_LEVEL} --install --verbose --deployment bundled "\\$(ARGS)"
DEPENDS ${TARGET_NAME} DEPENDS ${TARGET_NAME}
) )
endmacro() endmacro()

View file

@ -9,6 +9,5 @@
"target-architecture": "@ANDROID_ABI@", "target-architecture": "@ANDROID_ABI@",
"application-binary": "@EXECUTABLE_DESTINATION_PATH@", "application-binary": "@EXECUTABLE_DESTINATION_PATH@",
"android-extra-libs": "@_DEPS@", "android-extra-libs": "@_DEPS@",
"android-extra-plugins": "",
"android-package-source-directory": "@ANDROID_APK_BUILD_DIR@" "android-package-source-directory": "@ANDROID_APK_BUILD_DIR@"
} }

View file

@ -12,6 +12,7 @@
#include <QtCore/QThread> #include <QtCore/QThread>
#include <QtWidgets/QInputDialog> #include <QtWidgets/QInputDialog>
#include <AddressManager.h>
#include <AudioClient.h> #include <AudioClient.h>
#include <NodeList.h> #include <NodeList.h>
@ -38,6 +39,9 @@ RenderingClient::RenderingClient(QObject *parent) :
connect(audioThread, &QThread::started, audioClient.data(), &AudioClient::start); connect(audioThread, &QThread::started, audioClient.data(), &AudioClient::start);
audioThread->start(); audioThread->start();
connect(DependencyManager::get<AddressManager>().data(), &AddressManager::locationChangeRequired,
this, &RenderingClient::goToLocation);
} }
RenderingClient::~RenderingClient() { RenderingClient::~RenderingClient() {

View file

@ -67,7 +67,7 @@ AudioClient::AudioClient() :
_receivedAudioStream(0, RECEIVED_AUDIO_STREAM_CAPACITY_FRAMES, InboundAudioStream::Settings()), _receivedAudioStream(0, RECEIVED_AUDIO_STREAM_CAPACITY_FRAMES, InboundAudioStream::Settings()),
_isStereoInput(false), _isStereoInput(false),
_outputBufferSizeFrames(DEFAULT_AUDIO_OUTPUT_BUFFER_SIZE_FRAMES), _outputBufferSizeFrames(DEFAULT_AUDIO_OUTPUT_BUFFER_SIZE_FRAMES),
_outputStarveDetectionEnabled(true), _outputStarveDetectionEnabled(false),
_outputStarveDetectionStartTimeMsec(0), _outputStarveDetectionStartTimeMsec(0),
_outputStarveDetectionCount(0), _outputStarveDetectionCount(0),
_outputStarveDetectionPeriodMsec(DEFAULT_AUDIO_OUTPUT_STARVE_DETECTION_PERIOD), _outputStarveDetectionPeriodMsec(DEFAULT_AUDIO_OUTPUT_STARVE_DETECTION_PERIOD),
@ -283,17 +283,34 @@ bool adjustedFormatForAudioDevice(const QAudioDeviceInfo& audioDevice,
} }
} }
const int FORTY_FOUR = 44100;
adjustedAudioFormat = desiredAudioFormat;
#ifdef Q_OS_ANDROID
adjustedAudioFormat.setSampleRate(FORTY_FOUR);
#else
const int HALF_FORTY_FOUR = FORTY_FOUR / 2;
if (audioDevice.supportedSampleRates().contains(AudioConstants::SAMPLE_RATE * 2)) { if (audioDevice.supportedSampleRates().contains(AudioConstants::SAMPLE_RATE * 2)) {
// use 48, which is a sample downsample, upsample // use 48, which is a sample downsample, upsample
adjustedAudioFormat = desiredAudioFormat;
adjustedAudioFormat.setSampleRate(AudioConstants::SAMPLE_RATE * 2); adjustedAudioFormat.setSampleRate(AudioConstants::SAMPLE_RATE * 2);
} else if (audioDevice.supportedSampleRates().contains(HALF_FORTY_FOUR)) {
// use 22050, resample but closer to 24
adjustedAudioFormat.setSampleRate(HALF_FORTY_FOUR);
} else if (audioDevice.supportedSampleRates().contains(FORTY_FOUR)) {
// use 48000, libsoxr will resample
adjustedAudioFormat.setSampleRate(FORTY_FOUR);
}
#endif
if (adjustedAudioFormat != desiredAudioFormat) {
// return the nearest in case it needs 2 channels // return the nearest in case it needs 2 channels
adjustedAudioFormat = audioDevice.nearestFormat(adjustedAudioFormat); adjustedAudioFormat = audioDevice.nearestFormat(adjustedAudioFormat);
return true; return true;
} } else {
return false; return false;
}
} else { } else {
// set the adjustedAudioFormat to the desiredAudioFormat, since it will work // set the adjustedAudioFormat to the desiredAudioFormat, since it will work
adjustedAudioFormat = desiredAudioFormat; adjustedAudioFormat = desiredAudioFormat;
@ -999,10 +1016,15 @@ bool AudioClient::switchInputToAudioDevice(const QAudioDeviceInfo& inputDeviceIn
// how do we want to handle input working, but output not working? // how do we want to handle input working, but output not working?
int numFrameSamples = calculateNumberOfFrameSamples(_numInputCallbackBytes); int numFrameSamples = calculateNumberOfFrameSamples(_numInputCallbackBytes);
_inputRingBuffer.resizeForFrameSize(numFrameSamples); _inputRingBuffer.resizeForFrameSize(numFrameSamples);
_inputDevice = _audioInput->start();
connect(_inputDevice, SIGNAL(readyRead()), this, SLOT(handleAudioInput()));
_inputDevice = _audioInput->start();
if (_inputDevice) {
connect(_inputDevice, SIGNAL(readyRead()), this, SLOT(handleAudioInput()));
supportedFormat = true; supportedFormat = true;
} else {
qDebug() << "Error starting audio input -" << _audioInput->error();
}
} }
} }
} }