Update MediaClient
This commit is contained in:
409
MediaClient/MediaClientForMobile/utils.cpp
Normal file
409
MediaClient/MediaClientForMobile/utils.cpp
Normal file
@@ -0,0 +1,409 @@
|
||||
/***************************************************************************************
|
||||
*
|
||||
* IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
|
||||
*
|
||||
* By downloading, copying, installing or using the software you agree to this license.
|
||||
* If you do not agree to this license, do not download, install,
|
||||
* copy or use the software.
|
||||
*
|
||||
* Copyright (C) 2014-2024, Happytimesoft Corporation, all rights reserved.
|
||||
*
|
||||
* Redistribution and use in binary forms, with or without modification, are permitted.
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software distributed
|
||||
* under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
|
||||
* CONDITIONS OF ANY KIND, either express or implied. See the License for the specific
|
||||
* language governing permissions and limitations under the License.
|
||||
*
|
||||
****************************************************************************************/
|
||||
|
||||
#include "sys_inc.h"
|
||||
#include "config.h"
|
||||
#include "utils.h"
|
||||
#include <QCoreApplication>
|
||||
#include <QDir>
|
||||
#include <QFile>
|
||||
#include <QMessageBox>
|
||||
#include <QSettings>
|
||||
#include <QScreen>
|
||||
#include <QApplication>
|
||||
#include <QDateTime>
|
||||
#include <QCoreApplication>
|
||||
#include <QStandardPaths>
|
||||
|
||||
|
||||
QString getSnapshotPath()
|
||||
{
|
||||
#if defined(IOS)
|
||||
return QStandardPaths::standardLocations(QStandardPaths::DocumentsLocation).last();
|
||||
#else
|
||||
return QStandardPaths::standardLocations(QStandardPaths::PicturesLocation).last();
|
||||
#endif
|
||||
}
|
||||
|
||||
QString getRecordPath()
|
||||
{
|
||||
#if defined(IOS)
|
||||
return QStandardPaths::standardLocations(QStandardPaths::DocumentsLocation).last();
|
||||
#else
|
||||
return QStandardPaths::standardLocations(QStandardPaths::MoviesLocation).last();
|
||||
#endif
|
||||
}
|
||||
|
||||
QString getOpenFilePath()
|
||||
{
|
||||
QSettings setting;
|
||||
|
||||
return setting.value("openFilePath").toString();
|
||||
}
|
||||
|
||||
BOOL getEnableLogFlag()
|
||||
{
|
||||
QSettings setting;
|
||||
|
||||
return setting.value("enableLog", 1).toInt();
|
||||
}
|
||||
|
||||
int getVideoRenderMode()
|
||||
{
|
||||
QSettings setting;
|
||||
|
||||
return setting.value("videoRenderMode", 0).toInt();
|
||||
}
|
||||
|
||||
BOOL getRtpMulticast()
|
||||
{
|
||||
QSettings setting;
|
||||
|
||||
return setting.value("rtpMulticast", 0).toInt();
|
||||
}
|
||||
|
||||
BOOL getRtpOverUdp()
|
||||
{
|
||||
QSettings setting;
|
||||
|
||||
return setting.value("rtpOverUdp", 0).toInt();
|
||||
}
|
||||
|
||||
BOOL getRtspOverHttp()
|
||||
{
|
||||
QSettings setting;
|
||||
|
||||
return setting.value("rtspOverHttp", 0).toInt();
|
||||
}
|
||||
|
||||
int getRtspOverHttpPort()
|
||||
{
|
||||
QSettings setting;
|
||||
|
||||
return setting.value("rtspOverHttpPort", 80).toInt();
|
||||
}
|
||||
|
||||
BOOL getRtspOverWs()
|
||||
{
|
||||
QSettings setting;
|
||||
|
||||
return setting.value("rtspOverWs", 0).toInt();
|
||||
}
|
||||
|
||||
int getRtspOverWsPort()
|
||||
{
|
||||
QSettings setting;
|
||||
|
||||
return setting.value("rtspOverWsPort", 80).toInt();
|
||||
}
|
||||
|
||||
int getLogLevel()
|
||||
{
|
||||
QSettings setting;
|
||||
|
||||
return setting.value("logLevel", 2).toInt();
|
||||
}
|
||||
|
||||
int getSysLang()
|
||||
{
|
||||
QSettings setting;
|
||||
|
||||
return setting.value("sysLang", 0).toInt();
|
||||
}
|
||||
|
||||
int getRecordTime()
|
||||
{
|
||||
QSettings setting;
|
||||
|
||||
return setting.value("recordTime", 0).toInt();
|
||||
}
|
||||
|
||||
int getRecordSize()
|
||||
{
|
||||
QSettings setting;
|
||||
|
||||
return setting.value("recordSize", 0).toInt();
|
||||
}
|
||||
|
||||
int getHWDecoding()
|
||||
{
|
||||
QSettings setting;
|
||||
|
||||
return setting.value("HWDecoding", 0).toInt();
|
||||
}
|
||||
|
||||
int getLayoutMode()
|
||||
{
|
||||
QSettings setting;
|
||||
|
||||
return setting.value("layoutMode", 4).toInt();
|
||||
}
|
||||
|
||||
BOOL getChannels(QList<CHANNEL> & channels)
|
||||
{
|
||||
QSettings settings;
|
||||
|
||||
int size = settings.beginReadArray("Channels");
|
||||
for (int i = 0; i < size; ++i)
|
||||
{
|
||||
settings.setArrayIndex(i);
|
||||
CHANNEL channel;
|
||||
channel.url = settings.value("Url").toString();
|
||||
channel.user = settings.value("User").toString();
|
||||
channel.pass = settings.value("Pass").toString();
|
||||
channels.append(channel);
|
||||
}
|
||||
settings.endArray();
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
QString getTempFile(QString prefix, QString extName)
|
||||
{
|
||||
QDateTime tm = QDateTime::currentDateTime();
|
||||
QString time;
|
||||
QString fileName;
|
||||
|
||||
time = QString::asprintf("%04d%02d%02d_%02d%02d%02d",
|
||||
tm.date().year(), tm.date().month(), tm.date().day(),
|
||||
tm.time().hour(), tm.time().minute(), tm.time().second());
|
||||
|
||||
fileName = prefix + "_" + time + extName;
|
||||
|
||||
return fileName;
|
||||
}
|
||||
|
||||
void saveOpenFilePath(QString path)
|
||||
{
|
||||
QSettings setting;
|
||||
|
||||
setting.setValue("openFilePath", path);
|
||||
}
|
||||
|
||||
void saveEnableLogFlag(BOOL flag)
|
||||
{
|
||||
QSettings setting;
|
||||
|
||||
setting.setValue("enableLog", flag);
|
||||
}
|
||||
|
||||
void saveVideoRenderMode(int mode)
|
||||
{
|
||||
QSettings setting;
|
||||
|
||||
setting.setValue("videoRenderMode", mode);
|
||||
}
|
||||
|
||||
void saveRtpMulticast(BOOL flag)
|
||||
{
|
||||
QSettings setting;
|
||||
|
||||
setting.setValue("rtpMulticast", flag);
|
||||
}
|
||||
|
||||
void saveRtpOverUdp(BOOL flag)
|
||||
{
|
||||
QSettings setting;
|
||||
|
||||
setting.setValue("rtpOverUdp", flag);
|
||||
}
|
||||
|
||||
void saveRtspOverHttp(BOOL flag)
|
||||
{
|
||||
QSettings setting;
|
||||
|
||||
setting.setValue("rtspOverHttp", flag);
|
||||
}
|
||||
|
||||
void saveRtspOverHttpPort(int port)
|
||||
{
|
||||
QSettings setting;
|
||||
|
||||
setting.setValue("rtspOverHttpPort", port);
|
||||
}
|
||||
|
||||
void saveRtspOverWs(BOOL flag)
|
||||
{
|
||||
QSettings setting;
|
||||
|
||||
setting.setValue("rtspOverWs", flag);
|
||||
}
|
||||
|
||||
void saveRtspOverWsPort(int port)
|
||||
{
|
||||
QSettings setting;
|
||||
|
||||
setting.setValue("rtspOverWsPort", port);
|
||||
}
|
||||
|
||||
void saveLogLevel(int level)
|
||||
{
|
||||
QSettings setting;
|
||||
|
||||
setting.setValue("logLevel", level);
|
||||
}
|
||||
|
||||
void saveSysLang(int lang)
|
||||
{
|
||||
QSettings setting;
|
||||
|
||||
setting.setValue("sysLang", lang);
|
||||
}
|
||||
|
||||
void saveRecordTime(int value)
|
||||
{
|
||||
QSettings setting;
|
||||
|
||||
setting.setValue("recordTime", value);
|
||||
}
|
||||
|
||||
void saveRecordSize(int value)
|
||||
{
|
||||
QSettings setting;
|
||||
|
||||
setting.setValue("recordSize", value);
|
||||
}
|
||||
|
||||
void saveHWDecoding(int value)
|
||||
{
|
||||
QSettings setting;
|
||||
|
||||
setting.setValue("HWDecoding", value);
|
||||
}
|
||||
|
||||
void saveLayoutMode(int value)
|
||||
{
|
||||
QSettings setting;
|
||||
|
||||
setting.setValue("layoutMode", value);
|
||||
}
|
||||
|
||||
void saveChannels(QList<CHANNEL> & channels)
|
||||
{
|
||||
QSettings settings;
|
||||
settings.beginWriteArray("Channels");
|
||||
for (int i = 0; i < channels.size(); ++i)
|
||||
{
|
||||
settings.setArrayIndex(i);
|
||||
settings.setValue("Url", channels[i].url);
|
||||
settings.setValue("User", channels[i].user);
|
||||
settings.setValue("Pass", channels[i].pass);
|
||||
}
|
||||
settings.endArray();
|
||||
}
|
||||
|
||||
BOOL isUrl(QString url)
|
||||
{
|
||||
BOOL isUrl = 0;
|
||||
|
||||
if (isRtspUrl(url))
|
||||
{
|
||||
isUrl = 1;
|
||||
}
|
||||
else if (isRtmpUrl(url))
|
||||
{
|
||||
isUrl = 1;
|
||||
}
|
||||
else if (isHttpUrl(url))
|
||||
{
|
||||
isUrl = 1;
|
||||
}
|
||||
else if (isSrtUrl(url))
|
||||
{
|
||||
isUrl = 1;
|
||||
}
|
||||
|
||||
return isUrl;
|
||||
}
|
||||
|
||||
BOOL isRtspUrl(QString url)
|
||||
{
|
||||
BOOL isUrl = 0;
|
||||
|
||||
if (url.startsWith("rtsp://"))
|
||||
{
|
||||
isUrl = 1;
|
||||
}
|
||||
#ifdef OVER_WEBSOCKET
|
||||
else if (url.startsWith("ws://"))
|
||||
{
|
||||
// rtsp over websocket
|
||||
isUrl = 1;
|
||||
}
|
||||
#ifdef HTTPS
|
||||
else if (url.startsWith("wss://"))
|
||||
{
|
||||
// rtsp over websocket
|
||||
isUrl = 1;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
return isUrl;
|
||||
}
|
||||
|
||||
BOOL isRtmpUrl(QString url)
|
||||
{
|
||||
BOOL isUrl = 0;
|
||||
|
||||
if (url.startsWith("rtmp://") ||
|
||||
url.startsWith("rtmpt://") ||
|
||||
url.startsWith("rtmps://") ||
|
||||
url.startsWith("rtmpe://") ||
|
||||
url.startsWith("rtmpfp://") ||
|
||||
url.startsWith("rtmpte://") ||
|
||||
url.startsWith("rtmpts://"))
|
||||
{
|
||||
isUrl = 1;
|
||||
}
|
||||
|
||||
return isUrl;
|
||||
}
|
||||
|
||||
BOOL isHttpUrl(QString url)
|
||||
{
|
||||
BOOL isUrl = 0;
|
||||
|
||||
if (url.startsWith("http://"))
|
||||
{
|
||||
isUrl = 1;
|
||||
}
|
||||
#ifdef HTTPS
|
||||
else if (url.startsWith("https://"))
|
||||
{
|
||||
isUrl = 1;
|
||||
}
|
||||
#endif
|
||||
|
||||
return isUrl;
|
||||
}
|
||||
|
||||
BOOL isSrtUrl(QString url)
|
||||
{
|
||||
BOOL isUrl = 0;
|
||||
|
||||
if (url.startsWith("srt://"))
|
||||
{
|
||||
isUrl = 1;
|
||||
}
|
||||
|
||||
return isUrl;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user