Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Introduce media file tab for controlling playback #2410

Merged
merged 1 commit into from
Oct 1, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions ChangeLog.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,15 @@

Version 5.17.1, unreleased
Default Qt Client
- Media tab in main window for controlling media file streaming
- Support "{username}" variable for majority of TTS and status events related to user action
- Option to use TeamTalk Sound Output device for default sound event playback mode
- Option to choose bitween text or emoji for user and channel info in channel list
- Indication when user is sharing desktop in channel list
- Ability to restore all custom TTS and status bar events to default values
- All byte sizes converted to local format
- Option to use TeamTalk Sound Output device for default sound event playback mode
- Option to choose bitween text or emoji for user and channel info in channel list
- Fixed gender changed from female to male when migrating to 5.17 release
- Fixed sound events disabled when migrating to 5.17 release
- All size converted to local format
Android Client
-
iOS Client
Expand Down
7 changes: 4 additions & 3 deletions Client/qtTeamTalk/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ if (Qt5_FOUND OR Qt6_FOUND)
set (CMAKE_CXX_STANDARD 17)
set (CMAKE_OSX_DEPLOYMENT_TARGET 11.0) # Qt 6.5.0 requires
else()
set (CMAKE_CXX_STANDARD 11)
set (CMAKE_CXX_STANDARD 17)
endif()

set (CMAKE_CXX_STANDARD_REQUIRED ON)
Expand Down Expand Up @@ -90,7 +90,8 @@ if (Qt5_FOUND OR Qt6_FOUND)
serverlogeventsmodel.h textmessagecontainer.h
useraccountsmodel.h encryptionsetupdlg.h utiltt.h utilxml.h
utilos.h serverdlg.h moveusersdlg.h useraccountdlg.h soundeventsmodel.h
mytableview.h mytabwidget.h shortcutsmodel.h
mytableview.h mytabwidget.h shortcutsmodel.h utilmedia.h

main.cpp mainwindow.cpp preferencesdlg.cpp uservideowidget.cpp
channelstree.cpp channeldlg.cpp userinfodlg.cpp
bannedusersdlg.cpp useraccountsdlg.cpp videogridwidget.cpp
Expand All @@ -110,7 +111,7 @@ if (Qt5_FOUND OR Qt6_FOUND)
serverlogeventsmodel.cpp textmessagecontainer.cpp
useraccountsmodel.cpp encryptionsetupdlg.cpp utiltt.cpp utilxml.cpp
utilos.cpp serverdlg.cpp moveusersdlg.cpp useraccountdlg.cpp soundeventsmodel.cpp
mytableview.cpp mytabwidget.cpp shortcutsmodel.cpp
mytableview.cpp mytabwidget.cpp shortcutsmodel.cpp utilmedia.cpp
mainwindow.ui channel.ui preferences.ui
serverlist.ui userinfo.ui bannedusers.ui useraccounts.ui
serverproperties.ui uservideo.ui keycomp.ui textmessage.ui
Expand Down
2 changes: 1 addition & 1 deletion Client/qtTeamTalk/audiopreprocessordlg.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ AudioPreprocessorDlg::AudioPreprocessorDlg(AudioPreprocessor preprocess, QWidget
ui.gainlevelSlider->setRange(SOUND_GAIN_MIN, SOUND_GAIN_MAX);

// SpeexDSP audio preprocessor
ui.gainlevelSpinBox->setRange(0, 0x7FFF);
ui.gainlevelSpinBox->setRange(SPEEXDSP_AGC_GAINLEVEL_MIN, SPEEXDSP_AGC_GAINLEVEL_MAX);
ui.maxdecSpinBox->setRange(-100, 0);
ui.maxdenoiseSpinBox->setRange(-100, 0);

Expand Down
35 changes: 35 additions & 0 deletions Client/qtTeamTalk/common.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -375,6 +375,41 @@ AudioPreprocessor loadAudioPreprocessor(AudioPreprocessorType preprocessortype)
return preprocessor;
}

void saveAudioPreprocessor(const AudioPreprocessor& preprocessor)
{
ttSettings->setValue(SETTINGS_STREAMMEDIA_AUDIOPREPROCESSOR, preprocessor.nPreprocessor);
switch (preprocessor.nPreprocessor)
{
case NO_AUDIOPREPROCESSOR:
break;
case SPEEXDSP_AUDIOPREPROCESSOR:
ttSettings->setValue(SETTINGS_STREAMMEDIA_SPX_AGC_ENABLE, preprocessor.speexdsp.bEnableAGC);
ttSettings->setValue(SETTINGS_STREAMMEDIA_SPX_AGC_GAINLEVEL, preprocessor.speexdsp.nGainLevel);
ttSettings->setValue(SETTINGS_STREAMMEDIA_SPX_AGC_INC_MAXDB, preprocessor.speexdsp.nMaxIncDBSec);
ttSettings->setValue(SETTINGS_STREAMMEDIA_SPX_AGC_DEC_MAXDB, preprocessor.speexdsp.nMaxDecDBSec);
ttSettings->setValue(SETTINGS_STREAMMEDIA_SPX_AGC_GAINMAXDB, preprocessor.speexdsp.nMaxGainDB);
ttSettings->setValue(SETTINGS_STREAMMEDIA_SPX_DENOISE_ENABLE, preprocessor.speexdsp.bEnableDenoise);
ttSettings->setValue(SETTINGS_STREAMMEDIA_SPX_DENOISE_SUPPRESS, preprocessor.speexdsp.nMaxNoiseSuppressDB);
break;
case TEAMTALK_AUDIOPREPROCESSOR:
ttSettings->setValue(SETTINGS_STREAMMEDIA_TTAP_MUTELEFT, preprocessor.ttpreprocessor.bMuteLeftSpeaker);
ttSettings->setValue(SETTINGS_STREAMMEDIA_TTAP_MUTERIGHT, preprocessor.ttpreprocessor.bMuteRightSpeaker);
ttSettings->setValue(SETTINGS_STREAMMEDIA_TTAP_GAINLEVEL, preprocessor.ttpreprocessor.nGainLevel);
break;
case WEBRTC_AUDIOPREPROCESSOR :
ttSettings->setValue(SETTINGS_STREAMMEDIA_WEBRTC_GAINCTL_ENABLE, preprocessor.webrtc.gaincontroller2.bEnable);
ttSettings->setValue(SETTINGS_STREAMMEDIA_WEBRTC_GAINDB, preprocessor.webrtc.gaincontroller2.fixeddigital.fGainDB);
ttSettings->setValue(SETTINGS_STREAMMEDIA_WEBRTC_SAT_PROT_ENABLE, preprocessor.webrtc.gaincontroller2.adaptivedigital.bEnable );
ttSettings->setValue(SETTINGS_STREAMMEDIA_WEBRTC_INIT_SAT_MARGIN_DB, preprocessor.webrtc.gaincontroller2.adaptivedigital.fInitialSaturationMarginDB);
ttSettings->setValue(SETTINGS_STREAMMEDIA_WEBRTC_EXTRA_SAT_MARGIN_DB, preprocessor.webrtc.gaincontroller2.adaptivedigital.fExtraSaturationMarginDB);
ttSettings->setValue(SETTINGS_STREAMMEDIA_WEBRTC_MAXGAIN_DBSEC, preprocessor.webrtc.gaincontroller2.adaptivedigital.fMaxGainChangeDBPerSecond);
ttSettings->setValue(SETTINGS_STREAMMEDIA_WEBRTC_MAX_OUT_NOISE, preprocessor.webrtc.gaincontroller2.adaptivedigital.fMaxOutputNoiseLevelDBFS);
ttSettings->setValue(SETTINGS_STREAMMEDIA_WEBRTC_NOISESUPPRESS_ENABLE, preprocessor.webrtc.noisesuppression.bEnable);
ttSettings->setValue(SETTINGS_STREAMMEDIA_WEBRTC_NOISESUPPRESS_LEVEL, preprocessor.webrtc.noisesuppression.nLevel);
break;
}
}

bool isWebLogin(const QString& username, bool includeParentLoginName)
{
if (username.endsWith(WEBLOGIN_BEARWARE_USERNAMEPOSTFIX, Qt::CaseInsensitive))
Expand Down
1 change: 1 addition & 0 deletions Client/qtTeamTalk/common.h
Original file line number Diff line number Diff line change
Expand Up @@ -193,6 +193,7 @@ bool hasDesktopAccess(const QVector<DesktopAccessEntry>& entries,
void deleteDesktopAccessEntries();

AudioPreprocessor loadAudioPreprocessor(AudioPreprocessorType preprocessortype);
void saveAudioPreprocessor(const AudioPreprocessor& preprocess);

bool isWebLogin(const QString& username, bool includeParentLoginName);
QString userCacheID(const User& user);
Expand Down
Loading
Loading