Skip to content
This repository has been archived by the owner on Jul 9, 2021. It is now read-only.

Commit

Permalink
Art radio buttons, full disable addon via settings
Browse files Browse the repository at this point in the history
  • Loading branch information
Naamloos committed Jun 1, 2018
1 parent ca0d6ac commit 162f301
Show file tree
Hide file tree
Showing 6 changed files with 241 additions and 136 deletions.
301 changes: 168 additions & 133 deletions foobar2000/foo_mediacontrol/Discord.h
Expand Up @@ -31,166 +31,201 @@ static double start_epoch;
static double pause_epoch;
static double savedlength;

void UpdatePresence(wchar_t *songname, wchar_t *artist, double tracklength, wchar_t *filename, wchar_t *album)
{
savedsongname = util::wide_to_utf8(songname);
savedartist = util::wide_to_utf8(artist);
savedalbum = util::wide_to_utf8(album);
const char* GetArtType() {
int arttype = preferences::get_art_type();

if (strlen(savedsongname) < 1) {
savedsongname = util::wide_to_utf8(filename);
if (arttype == 1) {
return "foobar";
}
else if (arttype == 2) {
return "note";
}
if (strlen(savedartist) < 1) {
savedartist = "";
else if (arttype == 3) {
return "saiko";
}
savedlength = tracklength;
std::time_t result = std::time(nullptr);
start_epoch = result;

DiscordRichPresence discordPresence;
memset(&discordPresence, 0, sizeof(discordPresence));
discordPresence.details = savedsongname;
if (preferences::get_show_image()) {
discordPresence.largeImageKey = "foobar";
else if (arttype == 4) {
return "kirb";
}
discordPresence.smallImageKey = "play";
discordPresence.smallImageText = "Playing";
discordPresence.largeImageText = "Foobar2000";
if (preferences::get_show_album() && strlen(savedalbum) > 0) {
std::stringstream ss;
ss << savedartist << " [" << savedalbum << "]";
discordPresence.state = ss.str().c_str();
else if (arttype == 5) {
return "think";
}
else {
discordPresence.state = savedartist;
else if (arttype == 6) {
return "anime";
}
discordPresence.instance = 1;
discordPresence.startTimestamp = result;
discordPresence.endTimestamp = result + tracklength;
Discord_UpdatePresence(&discordPresence);

return "foobar";
}

void UpdatePresenceSeeked(double seek) {
std::time_t result = std::time(nullptr);
void UpdatePresence(wchar_t *songname, wchar_t *artist, double tracklength, wchar_t *filename, wchar_t *album)
{
if (preferences::get_enabled()) {
savedsongname = util::wide_to_utf8(songname);
savedartist = util::wide_to_utf8(artist);
savedalbum = util::wide_to_utf8(album);

DiscordRichPresence discordPresence;
memset(&discordPresence, 0, sizeof(discordPresence));
discordPresence.details = savedsongname;
if (preferences::get_show_image()) {
discordPresence.largeImageKey = "foobar";
}
discordPresence.smallImageKey = "play";
discordPresence.smallImageText = "Playing";
discordPresence.largeImageText = "Foobar2000";
if (preferences::get_show_album() && strlen(savedalbum) > 0) {
std::stringstream ss;
ss << savedartist << " [" << savedalbum << "]";
discordPresence.state = ss.str().c_str();
if (strlen(savedsongname) < 1) {
savedsongname = util::wide_to_utf8(filename);
}
if (strlen(savedartist) < 1) {
savedartist = "";
}
savedlength = tracklength;
std::time_t result = std::time(nullptr);
start_epoch = result;

DiscordRichPresence discordPresence;
memset(&discordPresence, 0, sizeof(discordPresence));
discordPresence.details = savedsongname;
if (preferences::get_show_image()) {
discordPresence.largeImageKey = GetArtType();
}
discordPresence.smallImageKey = "play";
discordPresence.smallImageText = "Playing";
discordPresence.largeImageText = "Foobar2000";
if (preferences::get_show_album() && strlen(savedalbum) > 0) {
std::stringstream ss;
ss << savedartist << " [" << savedalbum << "]";
discordPresence.state = ss.str().c_str();
}
else {
discordPresence.state = savedartist;
}
discordPresence.instance = 1;
discordPresence.startTimestamp = result;
discordPresence.endTimestamp = result + tracklength;
Discord_UpdatePresence(&discordPresence);
}
else {
discordPresence.state = savedartist;
}

void UpdatePresenceSeeked(double seek) {
if (preferences::get_enabled()) {
std::time_t result = std::time(nullptr);

DiscordRichPresence discordPresence;
memset(&discordPresence, 0, sizeof(discordPresence));
discordPresence.details = savedsongname;
if (preferences::get_show_image()) {
discordPresence.largeImageKey = GetArtType();
}
discordPresence.smallImageKey = "play";
discordPresence.smallImageText = "Playing";
discordPresence.largeImageText = "Foobar2000";
if (preferences::get_show_album() && strlen(savedalbum) > 0) {
std::stringstream ss;
ss << savedartist << " [" << savedalbum << "]";
discordPresence.state = ss.str().c_str();
}
else {
discordPresence.state = savedartist;
}
discordPresence.instance = 1;
discordPresence.startTimestamp = result;
discordPresence.endTimestamp = result + (savedlength - seek);
Discord_UpdatePresence(&discordPresence);
}
discordPresence.instance = 1;
discordPresence.startTimestamp = result;
discordPresence.endTimestamp = result + (savedlength - seek);
Discord_UpdatePresence(&discordPresence);
}

void UpdatePresenceResumed() {
std::time_t result = std::time(nullptr);
double played = pause_epoch - start_epoch;

DiscordRichPresence discordPresence;
memset(&discordPresence, 0, sizeof(discordPresence));
discordPresence.details = savedsongname;
if (preferences::get_show_image()) {
discordPresence.largeImageKey = "foobar";
}
discordPresence.smallImageKey = "play";
discordPresence.smallImageText = "Playing";
discordPresence.largeImageText = "Foobar2000";
if (preferences::get_show_album() && strlen(savedalbum) > 0) {
std::stringstream ss;
ss << savedartist << " [" << savedalbum << "]";
discordPresence.state = ss.str().c_str();
}
else {
discordPresence.state = savedartist;
if (preferences::get_enabled()) {
std::time_t result = std::time(nullptr);
double played = pause_epoch - start_epoch;

DiscordRichPresence discordPresence;
memset(&discordPresence, 0, sizeof(discordPresence));
discordPresence.details = savedsongname;
if (preferences::get_show_image()) {
discordPresence.largeImageKey = GetArtType();
}
discordPresence.smallImageKey = "play";
discordPresence.smallImageText = "Playing";
discordPresence.largeImageText = "Foobar2000";
if (preferences::get_show_album() && strlen(savedalbum) > 0) {
std::stringstream ss;
ss << savedartist << " [" << savedalbum << "]";
discordPresence.state = ss.str().c_str();
}
else {
discordPresence.state = savedartist;
}
discordPresence.instance = 1;
discordPresence.startTimestamp = result;
discordPresence.endTimestamp = result + (savedlength - played);
Discord_UpdatePresence(&discordPresence);
}
discordPresence.instance = 1;
discordPresence.startTimestamp = result;
discordPresence.endTimestamp = result + (savedlength - played);
Discord_UpdatePresence(&discordPresence);
}

void UpdatePresencePaused()
{
pause_epoch = std::time(nullptr);
char buffer[256];
sprintf_s(buffer, 256, "%s (Paused)", savedsongname);
DiscordRichPresence discordPresence;
memset(&discordPresence, 0, sizeof(discordPresence));
discordPresence.details = buffer;
if (preferences::get_show_image()) {
discordPresence.largeImageKey = "foobar";
}
discordPresence.smallImageKey = "pause";
discordPresence.smallImageText = "Paused";
discordPresence.largeImageText = "Foobar2000";
if (preferences::get_show_album() && strlen(savedalbum) > 0) {
std::stringstream ss;
ss << savedartist << " [" << savedalbum << "]";
discordPresence.state = ss.str().c_str();
}
else {
discordPresence.state = savedartist;
if (preferences::get_enabled()) {
pause_epoch = std::time(nullptr);
char buffer[256];
sprintf_s(buffer, 256, "%s (Paused)", savedsongname);
DiscordRichPresence discordPresence;
memset(&discordPresence, 0, sizeof(discordPresence));
discordPresence.details = buffer;
if (preferences::get_show_image()) {
discordPresence.largeImageKey = GetArtType();
}
discordPresence.smallImageKey = "pause";
discordPresence.smallImageText = "Paused";
discordPresence.largeImageText = "Foobar2000";
if (preferences::get_show_album() && strlen(savedalbum) > 0) {
std::stringstream ss;
ss << savedartist << " [" << savedalbum << "]";
discordPresence.state = ss.str().c_str();
}
else {
discordPresence.state = savedartist;
}
discordPresence.instance = 1;
Discord_UpdatePresence(&discordPresence);
}
discordPresence.instance = 1;
Discord_UpdatePresence(&discordPresence);
}

void UpdatePresenceStopped()
{
if (preferences::get_show_stop()) {
if (preferences::get_show_songstop() == false) {
char buffer[256];
DiscordRichPresence discordPresence;
memset(&discordPresence, 0, sizeof(discordPresence));
if (preferences::get_show_image()) {
discordPresence.largeImageKey = "foobar";
}
discordPresence.smallImageKey = "stop";
discordPresence.smallImageText = "Stopped";
discordPresence.largeImageText = "Foobar2000";
discordPresence.details = "Stopped";
discordPresence.instance = 1;
Discord_UpdatePresence(&discordPresence);
}
else {
char buffer[256];
sprintf_s(buffer, 256, "%s (Stopped)", savedsongname);
DiscordRichPresence discordPresence;
memset(&discordPresence, 0, sizeof(discordPresence));
discordPresence.details = buffer;
if (preferences::get_show_image()) {
discordPresence.largeImageKey = "foobar";
}
discordPresence.smallImageKey = "stop";
discordPresence.smallImageText = "Stopped";
discordPresence.largeImageText = "Foobar2000";
if (preferences::get_show_album() && strlen(savedalbum) > 0) {
std::stringstream ss;
ss << savedartist << " [" << savedalbum << "]";
discordPresence.state = ss.str().c_str();
if (preferences::get_enabled()) {
if (preferences::get_show_stop()) {
if (preferences::get_show_songstop() == false) {
char buffer[256];
DiscordRichPresence discordPresence;
memset(&discordPresence, 0, sizeof(discordPresence));
if (preferences::get_show_image()) {
discordPresence.largeImageKey = GetArtType();
}
discordPresence.smallImageKey = "stop";
discordPresence.smallImageText = "Stopped";
discordPresence.largeImageText = "Foobar2000";
discordPresence.details = "Stopped";
discordPresence.instance = 1;
Discord_UpdatePresence(&discordPresence);
}
else {
discordPresence.state = savedartist;
char buffer[256];
sprintf_s(buffer, 256, "%s (Stopped)", savedsongname);
DiscordRichPresence discordPresence;
memset(&discordPresence, 0, sizeof(discordPresence));
discordPresence.details = buffer;
if (preferences::get_show_image()) {
discordPresence.largeImageKey = GetArtType();
}
discordPresence.smallImageKey = "stop";
discordPresence.smallImageText = "Stopped";
discordPresence.largeImageText = "Foobar2000";
if (preferences::get_show_album() && strlen(savedalbum) > 0) {
std::stringstream ss;
ss << savedartist << " [" << savedalbum << "]";
discordPresence.state = ss.str().c_str();
}
else {
discordPresence.state = savedartist;
}
discordPresence.instance = 1;
Discord_UpdatePresence(&discordPresence);
}
discordPresence.instance = 1;
Discord_UpdatePresence(&discordPresence);
}
}
else {
Discord_ClearPresence();
else {
Discord_ClearPresence();
}
}
}

0 comments on commit 162f301

Please sign in to comment.