diff options
Diffstat (limited to 'pica-client/videodevice.cpp')
| -rw-r--r-- | pica-client/videodevice.cpp | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/pica-client/videodevice.cpp b/pica-client/videodevice.cpp new file mode 100644 index 0000000..75b516b --- /dev/null +++ b/pica-client/videodevice.cpp @@ -0,0 +1,40 @@ +#include "videodevice.h" +#include <QFile> + +VideoDevice::VideoDevice() +{ + +} + +VideoDevice::~VideoDevice() +{ + +} + +QList<MediaDeviceInfo> VideoDevice::Enumerate() +{ + QList<MediaDeviceInfo> result; + int index = 0; +#ifdef Q_OS_LINUX + for (int i = 0; i < 64; i++) + { + QString device = QString(QLatin1String("/dev/video%1")).arg(i); + if (QFile::exists(device)) + { + MediaDeviceInfo d; + d.device = device; + + QFile v4l2_name(QString(QLatin1String("/sys/class/video4linux/video%1/name")).arg(i)); + if (v4l2_name.open((QIODevice::ReadOnly | QIODevice::Text))) + { + d.humanReadable = QString(v4l2_name.readLine()).trimmed(); + v4l2_name.close(); + } + d.index = index++; + + result << d; + } + } +#endif + return result; +} |
