Commit 6d83c57d authored by Don Gagne's avatar Don Gagne Committed by GitHub

Merge pull request #5729 from bluerobotics/pr-video-limit

Add option to disable video auto-delete
parents bef3967b df78b98d
...@@ -75,7 +75,16 @@ ...@@ -75,7 +75,16 @@
"type": "uint32", "type": "uint32",
"min": 100, "min": 100,
"units": "MB", "units": "MB",
"defaultValue": 2048 "defaultValue": 10240,
"mobileDefaultValue": 2048
},
{
"name": "EnableStorageLimit",
"shortDescription": "Enable/Disable Limits on Storage Usage",
"longDescription": "When enabled, old video files will be auto-deleted when the total size of QGC-recorded video exceeds the maximum video storage usage.",
"type": "bool",
"defaultValue": false,
"mobileDefaultValue": true
}, },
{ {
"name": "RtspTimeout", "name": "RtspTimeout",
......
...@@ -28,6 +28,7 @@ const char* VideoSettings::videoGridLinesName = "VideoGridLines"; ...@@ -28,6 +28,7 @@ const char* VideoSettings::videoGridLinesName = "VideoGridLines";
const char* VideoSettings::showRecControlName = "ShowRecControl"; const char* VideoSettings::showRecControlName = "ShowRecControl";
const char* VideoSettings::recordingFormatName = "RecordingFormat"; const char* VideoSettings::recordingFormatName = "RecordingFormat";
const char* VideoSettings::maxVideoSizeName = "MaxVideoSize"; const char* VideoSettings::maxVideoSizeName = "MaxVideoSize";
const char* VideoSettings::enableStorageLimitName = "EnableStorageLimit";
const char* VideoSettings::rtspTimeoutName = "RtspTimeout"; const char* VideoSettings::rtspTimeoutName = "RtspTimeout";
const char* VideoSettings::videoSourceNoVideo = "No Video Available"; const char* VideoSettings::videoSourceNoVideo = "No Video Available";
...@@ -47,6 +48,7 @@ VideoSettings::VideoSettings(QObject* parent) ...@@ -47,6 +48,7 @@ VideoSettings::VideoSettings(QObject* parent)
, _showRecControlFact(NULL) , _showRecControlFact(NULL)
, _recordingFormatFact(NULL) , _recordingFormatFact(NULL)
, _maxVideoSizeFact(NULL) , _maxVideoSizeFact(NULL)
, _enableStorageLimitFact(NULL)
, _rtspTimeoutFact(NULL) , _rtspTimeoutFact(NULL)
{ {
QQmlEngine::setObjectOwnership(this, QQmlEngine::CppOwnership); QQmlEngine::setObjectOwnership(this, QQmlEngine::CppOwnership);
...@@ -169,6 +171,15 @@ Fact* VideoSettings::maxVideoSize(void) ...@@ -169,6 +171,15 @@ Fact* VideoSettings::maxVideoSize(void)
return _maxVideoSizeFact; return _maxVideoSizeFact;
} }
Fact* VideoSettings::enableStorageLimit(void)
{
if (!_enableStorageLimitFact) {
_enableStorageLimitFact = _createSettingsFact(enableStorageLimitName);
}
return _enableStorageLimitFact;
}
Fact* VideoSettings::rtspTimeout(void) Fact* VideoSettings::rtspTimeout(void)
{ {
if (!_rtspTimeoutFact) { if (!_rtspTimeoutFact) {
......
...@@ -28,6 +28,7 @@ public: ...@@ -28,6 +28,7 @@ public:
Q_PROPERTY(Fact* showRecControl READ showRecControl CONSTANT) Q_PROPERTY(Fact* showRecControl READ showRecControl CONSTANT)
Q_PROPERTY(Fact* recordingFormat READ recordingFormat CONSTANT) Q_PROPERTY(Fact* recordingFormat READ recordingFormat CONSTANT)
Q_PROPERTY(Fact* maxVideoSize READ maxVideoSize CONSTANT) Q_PROPERTY(Fact* maxVideoSize READ maxVideoSize CONSTANT)
Q_PROPERTY(Fact* enableStorageLimit READ enableStorageLimit CONSTANT)
Q_PROPERTY(Fact* rtspTimeout READ rtspTimeout CONSTANT) Q_PROPERTY(Fact* rtspTimeout READ rtspTimeout CONSTANT)
Fact* videoSource (void); Fact* videoSource (void);
...@@ -39,6 +40,7 @@ public: ...@@ -39,6 +40,7 @@ public:
Fact* showRecControl (void); Fact* showRecControl (void);
Fact* recordingFormat (void); Fact* recordingFormat (void);
Fact* maxVideoSize (void); Fact* maxVideoSize (void);
Fact* enableStorageLimit(void);
Fact* rtspTimeout (void); Fact* rtspTimeout (void);
static const char* videoSettingsGroupName; static const char* videoSettingsGroupName;
...@@ -52,6 +54,7 @@ public: ...@@ -52,6 +54,7 @@ public:
static const char* showRecControlName; static const char* showRecControlName;
static const char* recordingFormatName; static const char* recordingFormatName;
static const char* maxVideoSizeName; static const char* maxVideoSizeName;
static const char* enableStorageLimitName;
static const char* rtspTimeoutName; static const char* rtspTimeoutName;
static const char* videoSourceNoVideo; static const char* videoSourceNoVideo;
...@@ -70,6 +73,7 @@ private: ...@@ -70,6 +73,7 @@ private:
SettingsFact* _showRecControlFact; SettingsFact* _showRecControlFact;
SettingsFact* _recordingFormatFact; SettingsFact* _recordingFormatFact;
SettingsFact* _maxVideoSizeFact; SettingsFact* _maxVideoSizeFact;
SettingsFact* _enableStorageLimitFact;
SettingsFact* _rtspTimeoutFact; SettingsFact* _rtspTimeoutFact;
}; };
......
...@@ -549,6 +549,8 @@ VideoReceiver::_onBusMessage(GstBus* bus, GstMessage* msg, gpointer data) ...@@ -549,6 +549,8 @@ VideoReceiver::_onBusMessage(GstBus* bus, GstMessage* msg, gpointer data)
void void
VideoReceiver::_cleanupOldVideos() VideoReceiver::_cleanupOldVideos()
{ {
//-- Only perform cleanup if storage limit is enabled
if(qgcApp()->toolbox()->settingsManager()->videoSettings()->enableStorageLimit()->rawValue().toBool()) {
QString savePath = qgcApp()->toolbox()->settingsManager()->appSettings()->videoSavePath(); QString savePath = qgcApp()->toolbox()->settingsManager()->appSettings()->videoSavePath();
QDir videoDir = QDir(savePath); QDir videoDir = QDir(savePath);
videoDir.setFilter(QDir::Files | QDir::Readable | QDir::NoSymLinks | QDir::Writable); videoDir.setFilter(QDir::Files | QDir::Readable | QDir::NoSymLinks | QDir::Writable);
...@@ -578,6 +580,7 @@ VideoReceiver::_cleanupOldVideos() ...@@ -578,6 +580,7 @@ VideoReceiver::_cleanupOldVideos()
vidList.removeLast(); vidList.removeLast();
} }
} }
}
} }
#endif #endif
......
...@@ -630,7 +630,21 @@ QGCView { ...@@ -630,7 +630,21 @@ QGCView {
anchors.centerIn: parent anchors.centerIn: parent
Row { Row {
spacing: ScreenTools.defaultFontPixelWidth spacing: ScreenTools.defaultFontPixelWidth
visible: QGroundControl.videoManager.isGStreamer && videoSource.currentIndex && videoSource.currentIndex < 4 && QGroundControl.settingsManager.videoSettings.maxVideoSize.visible visible: QGroundControl.videoManager.isGStreamer && videoSource.currentIndex && videoSource.currentIndex < 4 && QGroundControl.settingsManager.videoSettings.enableStorageLimit.visible
QGCLabel {
text: qsTr("Auto-Delete Files:")
width: _labelWidth
anchors.verticalCenter: parent.verticalCenter
}
FactCheckBox {
text: ""
fact: QGroundControl.settingsManager.videoSettings.enableStorageLimit
anchors.verticalCenter: parent.verticalCenter
}
}
Row {
spacing: ScreenTools.defaultFontPixelWidth
visible: QGroundControl.videoManager.isGStreamer && videoSource.currentIndex && videoSource.currentIndex < 4 && QGroundControl.settingsManager.videoSettings.maxVideoSize.visible && QGroundControl.settingsManager.videoSettings.enableStorageLimit.value
QGCLabel { QGCLabel {
text: qsTr("Max Storage Usage:") text: qsTr("Max Storage Usage:")
width: _labelWidth width: _labelWidth
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment