mirror of
https://github.com/Goldenkrew3000/OSSP_OpenSource.git
synced 2026-02-16 04:05:18 +10:00
Compare commits
2 Commits
9f96c574e9
...
6735603e9c
| Author | SHA1 | Date | |
|---|---|---|---|
| 6735603e9c | |||
| 8e7eb4c534 |
@@ -17,7 +17,7 @@ Discord RPC Settings:
|
|||||||
Enable ('enable') - 'true' to enable Discord RPC or 'false' to disable it
|
Enable ('enable') - 'true' to enable Discord RPC or 'false' to disable it
|
||||||
Method ('method'):
|
Method ('method'):
|
||||||
- Method '0' is the official local Discord RPC method, local application to local discord client
|
- Method '0' is the official local Discord RPC method, local application to local discord client
|
||||||
- Method '1' is a VERY buggy and in-development RPC method that uses a client-server model
|
- DO NOT USE: Method '1' is a VERY buggy and in-development RPC method that uses a client-server model
|
||||||
to allow Discord RPC from a mobile device securely
|
to allow Discord RPC from a mobile device securely
|
||||||
Show System Details ('showSystemDetails') - 'true' or 'false'
|
Show System Details ('showSystemDetails') - 'true' or 'false'
|
||||||
- Want to show off / Got bragging rights on your _unique_ system?? Well this is perfect for you!
|
- Want to show off / Got bragging rights on your _unique_ system?? Well this is perfect for you!
|
||||||
@@ -25,3 +25,20 @@ Show System Details ('showSystemDetails') - 'true' or 'false'
|
|||||||
Example: 'on Linux x86_64 6.17.1-arch1-1' will be shown in the RPC dialog
|
Example: 'on Linux x86_64 6.17.1-arch1-1' will be shown in the RPC dialog
|
||||||
Go on, don't be shy, show everyone you somehow have Discord and OSSP running on fucking s390x!!!
|
Go on, don't be shy, show everyone you somehow have Discord and OSSP running on fucking s390x!!!
|
||||||
- Setting this to 'false' will simply instead show what playlist you are playing.
|
- Setting this to 'false' will simply instead show what playlist you are playing.
|
||||||
|
Show Cover Art ('showCoverArt') - 'true' or 'false'
|
||||||
|
- If this is set to true, the cover art for the song playing will be shown on the Discord rich presence.
|
||||||
|
This can be disabled because the OpenSubsonic API does not have an unauthenticated way of accessing
|
||||||
|
album art from a server, which means you have to leak an authenticated server URL to Discord (Which
|
||||||
|
a lot of people would not feel comfortable doing, understandably).
|
||||||
|
- If this is set to false, Discord rich presence only shows the app icon, and does not leak any authenticated
|
||||||
|
URLs to Discord servers
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Radio Sqlite3 Database Drafting:
|
||||||
|
Location: $HOME/.config/ossp/radio.db
|
||||||
|
|
||||||
|
Table: stations
|
||||||
|
- Int: id
|
||||||
|
- String: name
|
||||||
|
- String: url
|
||||||
@@ -3,7 +3,6 @@
|
|||||||
* Goldenkrew3000 2025
|
* Goldenkrew3000 2025
|
||||||
* License: GNU General Public License 3.0
|
* License: GNU General Public License 3.0
|
||||||
* Discord Local RPC Handler
|
* Discord Local RPC Handler
|
||||||
* Note: This provides server auth creds (encoded) directly to Discord, could use Spotify's API instead??
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <inttypes.h>
|
#include <inttypes.h>
|
||||||
@@ -60,7 +59,7 @@ static void handleDiscordError(int errcode, const char* message)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int discordrpc_init() {
|
int discordrpc_init() {
|
||||||
printf("[DiscordRPC] Initializing...\n");
|
printf("[DiscordRPC] Initializing.\n");
|
||||||
DiscordEventHandlers handlers;
|
DiscordEventHandlers handlers;
|
||||||
memset(&handlers, 0, sizeof(handlers));
|
memset(&handlers, 0, sizeof(handlers));
|
||||||
handlers.ready = handleDiscordReady;
|
handlers.ready = handleDiscordReady;
|
||||||
@@ -87,7 +86,8 @@ void discordrpc_update(discordrpc_data** discordrpc_struct) {
|
|||||||
if ((*discordrpc_struct)->state == DISCORDRPC_STATE_IDLE) {
|
if ((*discordrpc_struct)->state == DISCORDRPC_STATE_IDLE) {
|
||||||
asprintf(&detailsString, "Idle");
|
asprintf(&detailsString, "Idle");
|
||||||
presence.details = detailsString;
|
presence.details = detailsString;
|
||||||
} else if ((*discordrpc_struct)->state == DISCORDRPC_STATE_PLAYING) {
|
} else if ((*discordrpc_struct)->state == DISCORDRPC_STATE_PLAYING_SONG) {
|
||||||
|
// Playing a song
|
||||||
time_t currentTime = time(NULL);
|
time_t currentTime = time(NULL);
|
||||||
asprintf(&detailsString, "%s", (*discordrpc_struct)->songTitle);
|
asprintf(&detailsString, "%s", (*discordrpc_struct)->songTitle);
|
||||||
asprintf(&stateString, "by %s", (*discordrpc_struct)->songArtist);
|
asprintf(&stateString, "by %s", (*discordrpc_struct)->songArtist);
|
||||||
@@ -99,6 +99,18 @@ void discordrpc_update(discordrpc_data** discordrpc_struct) {
|
|||||||
if (configObj->discordrpc_showSysDetails) {
|
if (configObj->discordrpc_showSysDetails) {
|
||||||
presence.largeImageText = discordrpc_osString;
|
presence.largeImageText = discordrpc_osString;
|
||||||
}
|
}
|
||||||
|
} else if ((*discordrpc_struct)->state == DISCORDRPC_STATE_PLAYING_RADIO) {
|
||||||
|
// Playing an internet radio station
|
||||||
|
time_t currentTime = time(NULL);
|
||||||
|
asprintf(&detailsString, "%s", (*discordrpc_struct)->songTitle);
|
||||||
|
asprintf(&stateString, "Internet radio station");
|
||||||
|
presence.details = detailsString;
|
||||||
|
presence.state = stateString;
|
||||||
|
presence.largeImageKey = (*discordrpc_struct)->coverArtUrl;
|
||||||
|
presence.startTimestamp = (long)currentTime;
|
||||||
|
if (configObj->discordrpc_showSysDetails) {
|
||||||
|
presence.largeImageText = discordrpc_osString;
|
||||||
|
}
|
||||||
} else if ((*discordrpc_struct)->state == DISCORDRPC_STATE_PAUSED) {
|
} else if ((*discordrpc_struct)->state == DISCORDRPC_STATE_PAUSED) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,8 +8,9 @@
|
|||||||
#define _DISCORDRPC_H
|
#define _DISCORDRPC_H
|
||||||
|
|
||||||
#define DISCORDRPC_STATE_IDLE 0
|
#define DISCORDRPC_STATE_IDLE 0
|
||||||
#define DISCORDRPC_STATE_PLAYING 1
|
#define DISCORDRPC_STATE_PLAYING_SONG 1
|
||||||
#define DISCORDRPC_STATE_PAUSED 2
|
#define DISCORDRPC_STATE_PLAYING_RADIO 2
|
||||||
|
#define DISCORDRPC_STATE_PAUSED 4
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
int state;
|
int state;
|
||||||
|
|||||||
Reference in New Issue
Block a user