From 9900e4efa8409f56c62ea6fed80916032bd1ba12 Mon Sep 17 00:00:00 2001 From: Cinders Date: Sat, 16 Mar 2013 09:46:47 -0600 Subject: [PATCH] Add Milkshake-style stream title notifications --- indra/newview/app_settings/settings.xml | 7 +-- .../skins/default/xui/en/notifications.xml | 18 ++++++ .../xui/en/panel_preferences_sound.xml | 55 +++++++++++++++---- indra/newview/streamtitledisplay.cpp | 53 +++++++++++------- 4 files changed, 98 insertions(+), 35 deletions(-) diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 57223a99d7..3f860f8421 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -417,15 +417,14 @@ ShowStreamMetadata Comment - Shows stream metadata (artist, title) in local chat. + Shows stream metadata (artist, title) notifications. (0 = Off, 1 = Notification Toast, 2 = Nearby Chat) Persist 1 Type - Boolean + U32 Value - 1 + 2 - StreamMetadataAnnounceToChat Comment diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index d4751b28c7..d77903ac23 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -11099,6 +11099,24 @@ Error in the regular expression: Successfully imported stream list from XML. + + StreamMetadata + ♫ Now Playing: + [TITLE] + [ARTIST]♫ + + + StreamMetadata + ♫ Now Playing: + [TITLE]♫ + + - + + Show stream title notifications: + + + + + + ShowStreamMetadata(gSavedSettings, "ShowStreamMetadata"); + LLCachedControl ShowStreamMetadata(gSavedSettings, "ShowStreamMetadata"); LLCachedControl StreamMetadataAnnounceToChat(gSavedSettings, "StreamMetadataAnnounceToChat"); if(!gAudiop) return; - if(gAudiop->getStreamingAudioImpl()->hasNewMetadata() && (ShowStreamMetadata || StreamMetadataAnnounceToChat)) + if(gAudiop->getStreamingAudioImpl()->hasNewMetadata() && (ShowStreamMetadata > 0 || StreamMetadataAnnounceToChat)) { - LLChat chat; + std::string chat = ""; std::string title = gAudiop->getStreamingAudioImpl()->getCurrentTitle(); std::string artist = gAudiop->getStreamingAudioImpl()->getCurrentArtist(); - // Sometimes we get blanks... - chat.mText = ""; + if(artist.length() > 0) { - chat.mText = artist; + chat = artist; } if(title.length() > 0) { - if (chat.mText.length() > 0) + if (chat.length() > 0) { - chat.mText += " - "; + chat += " - "; } - chat.mText += title; + chat += title; } - if (chat.mText.length() > 0) + if (chat.length() > 0) { if (StreamMetadataAnnounceToChat) { - sendStreamTitleToChat(chat.mText); + sendStreamTitleToChat(chat); } - if (ShowStreamMetadata) + if (ShowStreamMetadata > 1) + { + chat = LLTrans::getString("StreamtitleNowPlaying") + " " + chat; + reportToNearbyChat(chat); + } + else if (ShowStreamMetadata == 1) { - chat.mText = LLTrans::getString("StreamtitleNowPlaying") + " " + chat.mText; - chat.mSourceType = CHAT_SOURCE_SYSTEM; LLSD args; - args["type"] = LLNotificationsUI::NT_NEARBYCHAT; - LLNotificationsUI::LLNotificationManager::instance().onChat(chat, args); + args["TITLE"] = title; + if(artist.length() > 0) + { + args["ARTIST"] = artist; + LLNotificationsUtil::add("StreamMetadata", args); + + } + else + { + LLNotificationsUtil::add("StreamMetadataNoArtist", args); + } } } }