Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
GenericMale committed Apr 29, 2022
1 parent ed3c144 commit 665685a
Show file tree
Hide file tree
Showing 94 changed files with 3,706 additions and 2 deletions.
8 changes: 8 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
.DS_Store
.idea
*.iml
.vscode/**

DistributionTool
DistributionTool.exe
release
34 changes: 32 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,32 @@
# streamdeck-sonos
Elgato Stream Deck Sonos Plugin
# Sonos Plugin for Elgato Stream Deck
Plugin which allows to control `Sonos` speakers and get live feedback.

![](screenshot.png)

# Features
- Code written in JavaScript
- Cross-platform (macOS, Windows)
- Play / Pause with Live Feedback (Album Cover, Artist, Title, Time)
- Previous & Next Track
- Change Input Source (Line In, TV, Queue)
- Play URL from Spotify, TuneIn, Tidal, Deezer and Apple Music
- Play Sonos Favorites
- Change Repeat & Shuffle Mode
- Change Volume

# Limitations

The plugin is written in JavaScript which makes it Cross-Platform compatible and can be trusted to not perform anything dangerous.

However, this also comes with some limitations:
- Speaker Auto Discovery cannot be performed.
The IP address of the speaker to control has to be entered manually but the IP can be easily retrieved from the Sonos App.
- Writing to Files not possible.
- Accessing the clipboard not possible.
- Can't listen to Push Notifications.
The plugin has to poll for status changes.

# Installation
Download the plugin from the [Releases](https://github.com/GenericMale/streamdeck-sonos/releases/) section.

If you double-click the `com.genericmale.sonos.streamDeckPlugin` file on your machine, Stream Deck will install the plugin.
Binary file added screenshot.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
85 changes: 85 additions & 0 deletions src/com.genericmale.sonos.sdPlugin/de.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
{
"Description": "Steuere deine Sonos Lautsprecher.",
"Name": "Sonos",
"Category": "Sonos",
"Localization": {
"Speaker IP": "Lautsprecher IP",
"Obtaining Speaker IP Address": "Lautsprecher IP feststellen",
"Sonos Desktop App": "Sonos Desktop App",
"Help -> About My Sonos System...": "Hilfe -> Über mein Sonos System...",
"Sonos Mobile App": "Sonos Handy App",
"Settings -> System -> About My System": "Einstellungen -> System -> Über mein System",
"Refresh Interval": "Intervall",
"Volume": "Lautstärke",
"Volume Increase": "Lautstärke Erhöhen",
"Volume Decrease": "Lautstärke Verringern",
"URL": "URL",
"Source": "Quelle",
"TV": "TV",
"Line In": "Line In",
"Sonos Queue": "Sonos Warteschlange",
"Favorite": "Favorit",
"Album Art": "Album",
"Display on key": "Auf Taste zeigen",
"Play": "Abspielen",
"Top Text": "Text Oben",
"Middle Text": "Text Mitte",
"Bottom Text": "Text Unten",
"None": "Nichts",
"Artist": "Künstler",
"Title": "Titel",
"Duration": "Dauer",
"Elapsed": "Vergangen",
"Remaining": "Verbleibend",
"Paused Text": "Pausieren Text"
},

"com.genericmale.sonos.playpause": {
"Name": "Abspielen / Stoppen",
"Tooltip": "Wiedergabe starten / stoppen und Wiedergabeinformationen anzeigen."
},
"com.genericmale.sonos.previous": {
"Name": "Zurück",
"Tooltip": "Zum vorherigen Lied in der Wartscheschlange springen."
},
"com.genericmale.sonos.next": {
"Name": "Weiter",
"Tooltip": "Zum nächsten Lied in der Wartscheschlange springen."
},
"com.genericmale.sonos.changesource": {
"Name": "Quelle ändern",
"Tooltip": "Die Wiedergabequelle (TV, Line In, Warteschlange) ändern."
},
"com.genericmale.sonos.playuri": {
"Name": "URL wiedergeben",
"Tooltip": "Ein Lied, Album, Playlist oder Radio Station mit einer URL von Spotify, TuneIn, Tidal, Deezer oder Apple Music abspielen."
},
"com.genericmale.sonos.playfavorites": {
"Name": "Favoriten wiedergeben",
"Tooltip": "Play one of the favorites added in the Sonos app."
},
"com.genericmale.sonos.repeat": {
"Name": "Wiederholungsmodus",
"Tooltip": "Den Wiederholungsmodus umschalten."
},
"com.genericmale.sonos.shuffle": {
"Name": "Zufällige Wiedergabe",
"Tooltip": "Die zufällige Wiedergabe umschalten."
},
"com.genericmale.sonos.volumeup": {
"Name": "Lautstärke erhöhen",
"Tooltip": "Die Lautstärke erhöhen."
},
"com.genericmale.sonos.volumedown": {
"Name": "Lautstärke verringern",
"Tooltip": "Die Lautstärke verringern."
},
"com.genericmale.sonos.mute": {
"Name": "Stummschalten",
"Tooltip": "Die Stummschaltung des Tons umschalten."
},
"com.genericmale.sonos.volume": {
"Name": "Lautstärke setzen",
"Tooltip": "Die Lautstärke auf einen fixen Wert ändern."
}
}
85 changes: 85 additions & 0 deletions src/com.genericmale.sonos.sdPlugin/en.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
{
"Description": "Control your Sonos Speakers.",
"Name": "Sonos",
"Category": "Sonos",
"Localization": {
"Speaker IP": "Speaker IP",
"Obtaining Speaker IP Address": "Obtaining Speaker IP Address",
"Sonos Desktop App": "Sonos Desktop App",
"Help -> About My Sonos System...": "Help -> About My Sonos System...",
"Sonos Mobile App": "Sonos Mobile App",
"Settings -> System -> About My System": "Settings -> System -> About My System",
"Refresh Interval": "Refresh Interval",
"Volume": "Volume",
"Volume Increase": "Volume Increase",
"Volume Decrease": "Volume Decrease",
"URL": "URL",
"Source": "Source",
"TV": "TV",
"Line In": "Line In",
"Sonos Queue": "Sonos Queue",
"Favorite": "Favorite",
"Album Art": "Album Art",
"Display on key": "Display on key",
"Play": "Play",
"Top Text": "Top Text",
"Middle Text": "Middle Text",
"Bottom Text": "Bottom Text",
"None": "None",
"Artist": "Artist",
"Title": "Title",
"Duration": "Duration",
"Elapsed": "Elapsed",
"Remaining": "Remaining",
"Paused Text": "Paused Text"
},

"com.genericmale.sonos.playpause": {
"Name": "Play / Pause",
"Tooltip": "Play and pause the audio and display playback info."
},
"com.genericmale.sonos.previous": {
"Name": "Previous Song",
"Tooltip": "Go back to the previous song in queue."
},
"com.genericmale.sonos.next": {
"Name": "Next Song",
"Tooltip": "Go to next song in queue."
},
"com.genericmale.sonos.changesource": {
"Name": "Change Source",
"Tooltip": "Change the playback source (TV, Line In, Queue)."
},
"com.genericmale.sonos.playuri": {
"Name": "Play URL",
"Tooltip": "Play a song, album, playlist or radio station with a URL from Spotify, TuneIn, Tidal, Deezer or Apple Music."
},
"com.genericmale.sonos.playfavorites": {
"Name": "Play Favorites",
"Tooltip": "Play one of the favorites added in the Sonos app."
},
"com.genericmale.sonos.repeat": {
"Name": "Repeat Mode",
"Tooltip": "Toggle the repeat mode."
},
"com.genericmale.sonos.shuffle": {
"Name": "Shuffle Mode",
"Tooltip": "Toggle the shuffle mode."
},
"com.genericmale.sonos.volumeup": {
"Name": "Volume Up",
"Tooltip": "Increase the volume."
},
"com.genericmale.sonos.volumedown": {
"Name": "Volume Down",
"Tooltip": "Decrease the volume."
},
"com.genericmale.sonos.mute": {
"Name": "Volume Mute / Unmute",
"Tooltip": "Mute and unmute the audio."
},
"com.genericmale.sonos.volume": {
"Name": "Volume Set",
"Tooltip": "Change the volume to a fixed value."
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 665685a

Please sign in to comment.