diff --git a/.travis.yml b/.travis.yml index a155b05e658..bb1b86b8371 100644 --- a/.travis.yml +++ b/.travis.yml @@ -44,6 +44,7 @@ addons: - protobuf-compiler - scons - vamp-plugin-sdk + - qtkeychain-dev before_install: # Virtual X, needed for analyzer waveform tests - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then export DISPLAY=:99.0 ; fi diff --git a/SConstruct b/SConstruct index d2e7ae81fd7..c2680fb3646 100644 --- a/SConstruct +++ b/SConstruct @@ -63,8 +63,9 @@ available_features = [features.Mad, features.IPod, features.FFMPEG, - # Experimental features - features.OpenGLES + # Experimental features + features.OpenGLES, + features.QtKeychain ] build = mixxx.MixxxBuild(target, machine, build_type, diff --git a/build/depends.py b/build/depends.py index ec434a6eba1..2d6e331ca75 100644 --- a/build/depends.py +++ b/build/depends.py @@ -632,6 +632,12 @@ def configure(self, build, conf): def sources(self, build): return ['#lib/reverb/Reverb.cc'] +class QtKeychain(Dependence): + def configure(self, build, conf): + libs = ['qtkeychain'] + if not conf.CheckLib(libs): + raise Exception( + "Could not find qtkeychain.") class MixxxCore(Feature): @@ -680,10 +686,12 @@ def sources(self, build): "preferences/settingsmanager.cpp", "preferences/replaygainsettings.cpp", "preferences/broadcastsettings.cpp", + "preferences/broadcastsettings_legacy.cpp", + "preferences/broadcastsettingsmodel.cpp", + "preferences/broadcastprofile.cpp", "preferences/upgrade.cpp", "preferences/dlgpreferencepage.cpp", - "effects/effectmanifest.cpp", "effects/effectmanifestparameter.cpp", @@ -755,7 +763,8 @@ def sources(self, build): "engine/enginevumeter.cpp", "engine/enginesidechaincompressor.cpp", "engine/sidechain/enginesidechain.cpp", - "engine/sidechain/networkstreamworker.cpp", + "engine/sidechain/networkoutputstreamworker.cpp", + "engine/sidechain/networkinputstreamworker.cpp", "engine/enginexfader.cpp", "engine/enginemicrophone.cpp", "engine/enginedeck.cpp", diff --git a/build/features.py b/build/features.py index 729887075ef..ba0dc678a32 100644 --- a/build/features.py +++ b/build/features.py @@ -853,7 +853,7 @@ def sources(self, build): depends.Qt.uic(build)('preferences/dialog/dlgprefbroadcastdlg.ui') return ['preferences/dialog/dlgprefbroadcast.cpp', 'broadcast/broadcastmanager.cpp', - 'engine/sidechain/enginebroadcast.cpp'] + 'engine/sidechain/shoutconnection.cpp'] class Opus(Feature): @@ -1300,3 +1300,27 @@ def sources(self, build): def depends(self, build): return [depends.IOKit, depends.UPower] + +class QtKeychain(Feature): + def description(self): + return "Secure credentials storage support for Live Broadcasting profiles" + + def enabled(self, build): + build.flags['qtkeychain'] = util.get_flags(build.env, 'qtkeychain', 0) + if int(build.flags['qtkeychain']): + return True + return False + + def add_options(self, build, vars): + vars.Add('qtkeychain', 'Set to 1 to enable secure credentials storage support for Live Broadcasting profiles', 0) + + def configure(self, build, conf): + if not self.enabled(build): + return + build.env.Append(CPPDEFINES='__QTKEYCHAIN__') + + def sources(self, build): + return [] + + def depends(self, build): + return [depends.QtKeychain] diff --git a/res/skins/Shade/btn_broadcast_warning.png b/res/skins/Shade/btn_broadcast_warning.png new file mode 100644 index 00000000000..8c5e3dad94e Binary files /dev/null and b/res/skins/Shade/btn_broadcast_warning.png differ diff --git a/res/skins/Shade/mixer_panel.xml b/res/skins/Shade/mixer_panel.xml index e09bc41209e..b1e56bc67c8 100644 --- a/res/skins/Shade/mixer_panel.xml +++ b/res/skins/Shade/mixer_panel.xml @@ -603,7 +603,7 @@ - 4 + 5 0 btn_broadcast_unconnected.png @@ -624,6 +624,11 @@ btn_broadcast_failure.png btn_broadcast_failure.png + + 4 + btn_broadcast_warning.png + btn_broadcast_warning.png + 113,30 [Shoutcast],enabled diff --git a/res/skins/Tango/button_5state_display.xml b/res/skins/Tango/button_5state_display.xml new file mode 100644 index 00000000000..ccf8f258d98 --- /dev/null +++ b/res/skins/Tango/button_5state_display.xml @@ -0,0 +1,66 @@ + + diff --git a/res/skins/Tango/buttons/btn_broadcast_warning.svg b/res/skins/Tango/buttons/btn_broadcast_warning.svg new file mode 100644 index 00000000000..d7a3eabf42b --- /dev/null +++ b/res/skins/Tango/buttons/btn_broadcast_warning.svg @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + diff --git a/res/skins/Tango/buttons/btn_broadcast_warning_netbook.svg b/res/skins/Tango/buttons/btn_broadcast_warning_netbook.svg new file mode 100644 index 00000000000..113ffdf5de4 --- /dev/null +++ b/res/skins/Tango/buttons/btn_broadcast_warning_netbook.svg @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + diff --git a/res/skins/Tango/centerbox_deck12.xml b/res/skins/Tango/centerbox_deck12.xml index 75f426f81b2..b333567bd41 100644 --- a/res/skins/Tango/centerbox_deck12.xml +++ b/res/skins/Tango/centerbox_deck12.xml @@ -166,7 +166,7 @@ Description: horizontal 104f,30me -