Cleaned up Queue system and REMOVED THE IMGUI DEBUG INTERFACEgit status
This commit is contained in:
@@ -68,45 +68,6 @@ int OSSPQ_AppendToEnd(char* title, char* album, char* artist, char* id, char* st
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
OSSPQ_SongStruct* OSSPQ_PopFromFront() {
|
||||
// Check if song queue is empty, if not, then pop oldest
|
||||
if (OSSPQ_SongQueue.empty()) {
|
||||
return NULL;
|
||||
}
|
||||
OSSPQ_SongObject songObject = OSSPQ_SongQueue.front();
|
||||
OSSPQ_SongQueue.pop_front();
|
||||
|
||||
// Allocate, initialize, and fill C compatible song object
|
||||
OSSPQ_SongStruct* songObjectC = (OSSPQ_SongStruct*)malloc(sizeof(OSSPQ_SongStruct));
|
||||
songObjectC->title = NULL;
|
||||
songObjectC->album = NULL;
|
||||
songObjectC->artist = NULL;
|
||||
songObjectC->id = NULL;
|
||||
songObjectC->streamUrl = NULL;
|
||||
songObjectC->coverArtUrl = NULL;
|
||||
songObjectC->duration = 0;
|
||||
songObjectC->mode = 0;
|
||||
|
||||
if (songObject.mode == OSSPQ_MODE_OPENSUBSONIC || songObject.mode == OSSPQ_MODE_LOCALFILE) {
|
||||
songObjectC->title = strdup(songObject.title.c_str());
|
||||
songObjectC->album = strdup(songObject.album.c_str());
|
||||
songObjectC->artist = strdup(songObject.artist.c_str());
|
||||
songObjectC->id = strdup(songObject.id.c_str());
|
||||
songObjectC->streamUrl = strdup(songObject.streamUrl.c_str());
|
||||
songObjectC->coverArtUrl = strdup(songObject.coverArtUrl.c_str());
|
||||
songObjectC->duration = songObject.duration;
|
||||
songObjectC->mode = songObject.mode;
|
||||
} else if (songObject.mode == OSSPQ_MODE_INTERNETRADIO) {
|
||||
songObjectC->title = strdup(songObject.title.c_str());
|
||||
songObjectC->id = strdup(songObject.id.c_str());
|
||||
songObjectC->streamUrl = strdup(songObject.streamUrl.c_str());
|
||||
}
|
||||
|
||||
return songObjectC;
|
||||
}
|
||||
*/
|
||||
|
||||
int OSSPQ_getCurrentPos() {
|
||||
return OSSPQ_currentPos;
|
||||
}
|
||||
@@ -169,12 +130,3 @@ void OSSPQ_FreeSongObjectC(OSSPQ_SongStruct* songObjectC) {
|
||||
if (songObjectC->coverArtUrl != NULL) { free(songObjectC->coverArtUrl); }
|
||||
if (songObjectC != NULL) { free(songObjectC); }
|
||||
}
|
||||
|
||||
// TODO Bullshit functions for dealing with Imgui
|
||||
char* internal_OSSPQ_GetTitleAtIndex(int idx) {
|
||||
return (char*)OSSPQ_SongQueue[idx].title.c_str();
|
||||
}
|
||||
|
||||
int internal_OSSPQ_GetItemCount() {
|
||||
return OSSPQ_SongQueue.size();
|
||||
}
|
||||
|
||||
@@ -28,19 +28,12 @@ typedef struct {
|
||||
} OSSPQ_SongStruct;
|
||||
|
||||
int OSSPQ_AppendToEnd(char* title, char* album, char* artist, char* id, char* streamUrl, char* coverArtUrl, long duration, int mode);
|
||||
//OSSPQ_SongStruct* OSSPQ_PopFromFront();
|
||||
void OSSPQ_FreeSongObjectC(OSSPQ_SongStruct* songObjectC);
|
||||
|
||||
// TODO
|
||||
char* internal_OSSPQ_GetTitleAtIndex(int idx);
|
||||
int internal_OSSPQ_GetItemCount();
|
||||
|
||||
// Testing
|
||||
int OSSPQ_getCurrentPos();
|
||||
int OSSPQ_getTotalPos();
|
||||
int OSSPQ_advancePos();
|
||||
int OSSPQ_backtrackPos();
|
||||
OSSPQ_SongStruct* OSSPQ_getAtPos(int pos);
|
||||
void OSSPQ_FreeSongObjectC(OSSPQ_SongStruct* songObjectC);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
+9
-1
@@ -120,7 +120,7 @@ void* OSSPlayer_ThrdInit(void* arg) {
|
||||
|
||||
// Poll play queue for new items to play
|
||||
while (true) { // TODO use global bool instead
|
||||
if (internal_OSSPQ_GetItemCount() != 0 && isPlaying == false) {
|
||||
if (OSSPQ_getTotalPos() != 0 && isPlaying == false) {
|
||||
// Player is not playing and a song is in the song queue
|
||||
|
||||
// Pull new song from the song queue
|
||||
@@ -529,6 +529,14 @@ void OSSPlayer_DiscordRPC_SendPaused() {
|
||||
discordrpc_struct_deinit(&discordrpc);
|
||||
}
|
||||
|
||||
void OSSPlayer_DiscordRPC_SendIdle() {
|
||||
discordrpc_data* discordrpc = NULL;
|
||||
discordrpc_struct_init(&discordrpc);
|
||||
discordrpc->state = DISCORDRPC_STATE_PAUSED;
|
||||
discordrpc_update(&discordrpc);
|
||||
discordrpc_struct_deinit(&discordrpc);
|
||||
}
|
||||
|
||||
void OSSPlayer_DiscordRPC_SendPlaying(time_t startTime) {
|
||||
OSSPQ_SongStruct* songObject = OSSPQ_getAtPos(OSSPQ_getCurrentPos());
|
||||
if (songObject == NULL) {
|
||||
|
||||
@@ -41,6 +41,7 @@ float OSSPlayer_PitchFollow(float freq, float semitone);
|
||||
float OSSPlayer_CentsToPSF(float cents);
|
||||
|
||||
void OSSPlayer_DiscordRPC_SendPaused();
|
||||
void OSSPlayer_DiscordRPC_SendIdle();
|
||||
void OSSPlayer_DiscordRPC_SendPlaying(time_t startTime);
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
Reference in New Issue
Block a user