Android: Fix MediaRecorder wrapper

The QJNIObject was never intended to be used as a base class.

Change-Id: I8311f909a37aeae6040eba4471b379cfc732297b
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
This commit is contained in:
Christian Strømme
2014-04-01 19:04:12 +02:00
committed by The Qt Project
parent 47d2ed915e
commit ebf9528eae
2 changed files with 25 additions and 24 deletions

View File

@@ -66,10 +66,10 @@ static void notifyInfo(JNIEnv* , jobject, jlong id, jint what, jint extra)
JMediaRecorder::JMediaRecorder() JMediaRecorder::JMediaRecorder()
: QObject() : QObject()
, QJNIObjectPrivate(g_qtMediaRecorderClass, "(J)V", reinterpret_cast<jlong>(this))
, m_id(reinterpret_cast<jlong>(this)) , m_id(reinterpret_cast<jlong>(this))
{ {
if (isValid()) m_mediaRecorder = QJNIObjectPrivate(g_qtMediaRecorderClass, "(J)V", m_id);
if (m_mediaRecorder.isValid())
g_objectMap.insert(m_id, this); g_objectMap.insert(m_id, this);
} }
@@ -80,13 +80,13 @@ JMediaRecorder::~JMediaRecorder()
void JMediaRecorder::release() void JMediaRecorder::release()
{ {
callMethod<void>("release"); m_mediaRecorder.callMethod<void>("release");
} }
bool JMediaRecorder::prepare() bool JMediaRecorder::prepare()
{ {
QJNIEnvironmentPrivate env; QJNIEnvironmentPrivate env;
callMethod<void>("prepare"); m_mediaRecorder.callMethod<void>("prepare");
if (env->ExceptionCheck()) { if (env->ExceptionCheck()) {
#ifdef QT_DEBUG #ifdef QT_DEBUG
env->ExceptionDescribe(); env->ExceptionDescribe();
@@ -99,13 +99,13 @@ bool JMediaRecorder::prepare()
void JMediaRecorder::reset() void JMediaRecorder::reset()
{ {
callMethod<void>("reset"); m_mediaRecorder.callMethod<void>("reset");
} }
bool JMediaRecorder::start() bool JMediaRecorder::start()
{ {
QJNIEnvironmentPrivate env; QJNIEnvironmentPrivate env;
callMethod<void>("start"); m_mediaRecorder.callMethod<void>("start");
if (env->ExceptionCheck()) { if (env->ExceptionCheck()) {
#ifdef QT_DEBUG #ifdef QT_DEBUG
env->ExceptionDescribe(); env->ExceptionDescribe();
@@ -119,7 +119,7 @@ bool JMediaRecorder::start()
void JMediaRecorder::stop() void JMediaRecorder::stop()
{ {
QJNIEnvironmentPrivate env; QJNIEnvironmentPrivate env;
callMethod<void>("stop"); m_mediaRecorder.callMethod<void>("stop");
if (env->ExceptionCheck()) { if (env->ExceptionCheck()) {
#ifdef QT_DEBUG #ifdef QT_DEBUG
env->ExceptionDescribe(); env->ExceptionDescribe();
@@ -130,13 +130,13 @@ void JMediaRecorder::stop()
void JMediaRecorder::setAudioChannels(int numChannels) void JMediaRecorder::setAudioChannels(int numChannels)
{ {
callMethod<void>("setAudioChannels", "(I)V", numChannels); m_mediaRecorder.callMethod<void>("setAudioChannels", "(I)V", numChannels);
} }
void JMediaRecorder::setAudioEncoder(AudioEncoder encoder) void JMediaRecorder::setAudioEncoder(AudioEncoder encoder)
{ {
QJNIEnvironmentPrivate env; QJNIEnvironmentPrivate env;
callMethod<void>("setAudioEncoder", "(I)V", int(encoder)); m_mediaRecorder.callMethod<void>("setAudioEncoder", "(I)V", int(encoder));
if (env->ExceptionCheck()) { if (env->ExceptionCheck()) {
#ifdef QT_DEBUG #ifdef QT_DEBUG
env->ExceptionDescribe(); env->ExceptionDescribe();
@@ -147,18 +147,18 @@ void JMediaRecorder::setAudioEncoder(AudioEncoder encoder)
void JMediaRecorder::setAudioEncodingBitRate(int bitRate) void JMediaRecorder::setAudioEncodingBitRate(int bitRate)
{ {
callMethod<void>("setAudioEncodingBitRate", "(I)V", bitRate); m_mediaRecorder.callMethod<void>("setAudioEncodingBitRate", "(I)V", bitRate);
} }
void JMediaRecorder::setAudioSamplingRate(int samplingRate) void JMediaRecorder::setAudioSamplingRate(int samplingRate)
{ {
callMethod<void>("setAudioSamplingRate", "(I)V", samplingRate); m_mediaRecorder.callMethod<void>("setAudioSamplingRate", "(I)V", samplingRate);
} }
void JMediaRecorder::setAudioSource(AudioSource source) void JMediaRecorder::setAudioSource(AudioSource source)
{ {
QJNIEnvironmentPrivate env; QJNIEnvironmentPrivate env;
callMethod<void>("setAudioSource", "(I)V", int(source)); m_mediaRecorder.callMethod<void>("setAudioSource", "(I)V", int(source));
if (env->ExceptionCheck()) { if (env->ExceptionCheck()) {
#ifdef QT_DEBUG #ifdef QT_DEBUG
env->ExceptionDescribe(); env->ExceptionDescribe();
@@ -170,13 +170,13 @@ void JMediaRecorder::setAudioSource(AudioSource source)
void JMediaRecorder::setCamera(JCamera *camera) void JMediaRecorder::setCamera(JCamera *camera)
{ {
QJNIObjectPrivate cam = camera->getCameraObject(); QJNIObjectPrivate cam = camera->getCameraObject();
callMethod<void>("setCamera", "(Landroid/hardware/Camera;)V", cam.object()); m_mediaRecorder.callMethod<void>("setCamera", "(Landroid/hardware/Camera;)V", cam.object());
} }
void JMediaRecorder::setVideoEncoder(VideoEncoder encoder) void JMediaRecorder::setVideoEncoder(VideoEncoder encoder)
{ {
QJNIEnvironmentPrivate env; QJNIEnvironmentPrivate env;
callMethod<void>("setVideoEncoder", "(I)V", int(encoder)); m_mediaRecorder.callMethod<void>("setVideoEncoder", "(I)V", int(encoder));
if (env->ExceptionCheck()) { if (env->ExceptionCheck()) {
#ifdef QT_DEBUG #ifdef QT_DEBUG
env->ExceptionDescribe(); env->ExceptionDescribe();
@@ -187,13 +187,13 @@ void JMediaRecorder::setVideoEncoder(VideoEncoder encoder)
void JMediaRecorder::setVideoEncodingBitRate(int bitRate) void JMediaRecorder::setVideoEncodingBitRate(int bitRate)
{ {
callMethod<void>("setVideoEncodingBitRate", "(I)V", bitRate); m_mediaRecorder.callMethod<void>("setVideoEncodingBitRate", "(I)V", bitRate);
} }
void JMediaRecorder::setVideoFrameRate(int rate) void JMediaRecorder::setVideoFrameRate(int rate)
{ {
QJNIEnvironmentPrivate env; QJNIEnvironmentPrivate env;
callMethod<void>("setVideoFrameRate", "(I)V", rate); m_mediaRecorder.callMethod<void>("setVideoFrameRate", "(I)V", rate);
if (env->ExceptionCheck()) { if (env->ExceptionCheck()) {
#ifdef QT_DEBUG #ifdef QT_DEBUG
env->ExceptionDescribe(); env->ExceptionDescribe();
@@ -205,7 +205,7 @@ void JMediaRecorder::setVideoFrameRate(int rate)
void JMediaRecorder::setVideoSize(const QSize &size) void JMediaRecorder::setVideoSize(const QSize &size)
{ {
QJNIEnvironmentPrivate env; QJNIEnvironmentPrivate env;
callMethod<void>("setVideoSize", "(II)V", size.width(), size.height()); m_mediaRecorder.callMethod<void>("setVideoSize", "(II)V", size.width(), size.height());
if (env->ExceptionCheck()) { if (env->ExceptionCheck()) {
#ifdef QT_DEBUG #ifdef QT_DEBUG
env->ExceptionDescribe(); env->ExceptionDescribe();
@@ -217,7 +217,7 @@ void JMediaRecorder::setVideoSize(const QSize &size)
void JMediaRecorder::setVideoSource(VideoSource source) void JMediaRecorder::setVideoSource(VideoSource source)
{ {
QJNIEnvironmentPrivate env; QJNIEnvironmentPrivate env;
callMethod<void>("setVideoSource", "(I)V", int(source)); m_mediaRecorder.callMethod<void>("setVideoSource", "(I)V", int(source));
if (env->ExceptionCheck()) { if (env->ExceptionCheck()) {
#ifdef QT_DEBUG #ifdef QT_DEBUG
env->ExceptionDescribe(); env->ExceptionDescribe();
@@ -229,7 +229,7 @@ void JMediaRecorder::setVideoSource(VideoSource source)
void JMediaRecorder::setOrientationHint(int degrees) void JMediaRecorder::setOrientationHint(int degrees)
{ {
QJNIEnvironmentPrivate env; QJNIEnvironmentPrivate env;
callMethod<void>("setOrientationHint", "(I)V", degrees); m_mediaRecorder.callMethod<void>("setOrientationHint", "(I)V", degrees);
if (env->ExceptionCheck()) { if (env->ExceptionCheck()) {
#ifdef QT_DEBUG #ifdef QT_DEBUG
env->ExceptionDescribe(); env->ExceptionDescribe();
@@ -241,7 +241,7 @@ void JMediaRecorder::setOrientationHint(int degrees)
void JMediaRecorder::setOutputFormat(OutputFormat format) void JMediaRecorder::setOutputFormat(OutputFormat format)
{ {
QJNIEnvironmentPrivate env; QJNIEnvironmentPrivate env;
callMethod<void>("setOutputFormat", "(I)V", int(format)); m_mediaRecorder.callMethod<void>("setOutputFormat", "(I)V", int(format));
if (env->ExceptionCheck()) { if (env->ExceptionCheck()) {
#ifdef QT_DEBUG #ifdef QT_DEBUG
env->ExceptionDescribe(); env->ExceptionDescribe();
@@ -253,9 +253,9 @@ void JMediaRecorder::setOutputFormat(OutputFormat format)
void JMediaRecorder::setOutputFile(const QString &path) void JMediaRecorder::setOutputFile(const QString &path)
{ {
QJNIEnvironmentPrivate env; QJNIEnvironmentPrivate env;
callMethod<void>("setOutputFile", m_mediaRecorder.callMethod<void>("setOutputFile",
"(Ljava/lang/String;)V", "(Ljava/lang/String;)V",
QJNIObjectPrivate::fromString(path).object()); QJNIObjectPrivate::fromString(path).object());
if (env->ExceptionCheck()) { if (env->ExceptionCheck()) {
#ifdef QT_DEBUG #ifdef QT_DEBUG
env->ExceptionDescribe(); env->ExceptionDescribe();

View File

@@ -50,7 +50,7 @@ QT_BEGIN_NAMESPACE
class JCamera; class JCamera;
class JMediaRecorder : public QObject, public QJNIObjectPrivate class JMediaRecorder : public QObject
{ {
Q_OBJECT Q_OBJECT
public: public:
@@ -127,6 +127,7 @@ Q_SIGNALS:
private: private:
jlong m_id; jlong m_id;
QJNIObjectPrivate m_mediaRecorder;
}; };
QT_END_NAMESPACE QT_END_NAMESPACE