summaryrefslogtreecommitdiffstats
path: root/src/plugins/android/src/qandroidmediaserviceplugin.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/android/src/qandroidmediaserviceplugin.cpp')
-rw-r--r--src/plugins/android/src/qandroidmediaserviceplugin.cpp36
1 files changed, 29 insertions, 7 deletions
diff --git a/src/plugins/android/src/qandroidmediaserviceplugin.cpp b/src/plugins/android/src/qandroidmediaserviceplugin.cpp
index 03c2b287c..005def8cf 100644
--- a/src/plugins/android/src/qandroidmediaserviceplugin.cpp
+++ b/src/plugins/android/src/qandroidmediaserviceplugin.cpp
@@ -43,8 +43,9 @@
#include "qandroidmediaservice.h"
#include "qandroidcaptureservice.h"
-#include "qandroidvideodeviceselectorcontrol.h"
#include "qandroidaudioinputselectorcontrol.h"
+#include "qandroidcamerainfocontrol.h"
+#include "qandroidcamerasession.h"
#include "jmediaplayer.h"
#include "jsurfacetexture.h"
#include "jsurfacetextureholder.h"
@@ -98,16 +99,21 @@ QMediaServiceProviderHint::Features QAndroidMediaServicePlugin::supportedFeature
QByteArray QAndroidMediaServicePlugin::defaultDevice(const QByteArray &service) const
{
- if (service == Q_MEDIASERVICE_CAMERA)
- return QAndroidVideoDeviceSelectorControl::defaultDeviceName();
+ if (service == Q_MEDIASERVICE_CAMERA && !QAndroidCameraSession::availableCameras().isEmpty())
+ return QAndroidCameraSession::availableCameras().first().name;
return QByteArray();
}
QList<QByteArray> QAndroidMediaServicePlugin::devices(const QByteArray &service) const
{
- if (service == Q_MEDIASERVICE_CAMERA)
- return QAndroidVideoDeviceSelectorControl::availableDevices();
+ if (service == Q_MEDIASERVICE_CAMERA) {
+ QList<QByteArray> devices;
+ const QList<AndroidCameraInfo> &cameras = QAndroidCameraSession::availableCameras();
+ for (int i = 0; i < cameras.count(); ++i)
+ devices.append(cameras.at(i).name);
+ return devices;
+ }
if (service == Q_MEDIASERVICE_AUDIOSOURCE)
return QAndroidAudioInputSelectorControl::availableDevices();
@@ -117,8 +123,14 @@ QList<QByteArray> QAndroidMediaServicePlugin::devices(const QByteArray &service)
QString QAndroidMediaServicePlugin::deviceDescription(const QByteArray &service, const QByteArray &device)
{
- if (service == Q_MEDIASERVICE_CAMERA)
- return QAndroidVideoDeviceSelectorControl::availableDeviceDescription(device);
+ if (service == Q_MEDIASERVICE_CAMERA) {
+ const QList<AndroidCameraInfo> &cameras = QAndroidCameraSession::availableCameras();
+ for (int i = 0; i < cameras.count(); ++i) {
+ const AndroidCameraInfo &info = cameras.at(i);
+ if (info.name == device)
+ return info.description;
+ }
+ }
if (service == Q_MEDIASERVICE_AUDIOSOURCE)
return QAndroidAudioInputSelectorControl::availableDeviceDescription(device);
@@ -126,6 +138,16 @@ QString QAndroidMediaServicePlugin::deviceDescription(const QByteArray &service,
return QString();
}
+QCamera::Position QAndroidMediaServicePlugin::cameraPosition(const QByteArray &device) const
+{
+ return QAndroidCameraInfoControl::position(device);
+}
+
+int QAndroidMediaServicePlugin::cameraOrientation(const QByteArray &device) const
+{
+ return QAndroidCameraInfoControl::orientation(device);
+}
+
Q_DECL_EXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void * /*reserved*/)
{