mirror of
https://github.com/SuperBFG7/ympd
synced 2025-05-04 16:34:07 +00:00
Fix: free unused memory
This commit is contained in:
parent
7dbf1d0262
commit
9458d483cf
@ -41,7 +41,7 @@ const char * mpd_cmd_strs[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
static inline enum mpd_cmd_ids get_cmd_id(const char *cmd) {
|
static inline enum mpd_cmd_ids get_cmd_id(const char *cmd) {
|
||||||
for (unsigned i = 0; i < sizeof(mpd_cmd_strs) / sizeof(mpd_cmd_strs[0]); i ++)
|
for (unsigned i = 0; i < sizeof(mpd_cmd_strs) / sizeof(mpd_cmd_strs[0]); i++)
|
||||||
if (!strncmp(cmd, mpd_cmd_strs[i], strlen(mpd_cmd_strs[i])))
|
if (!strncmp(cmd, mpd_cmd_strs[i], strlen(mpd_cmd_strs[i])))
|
||||||
return i;
|
return i;
|
||||||
|
|
||||||
@ -290,10 +290,10 @@ void callback_mympd(struct mg_connection *nc, const struct mg_str msg) {
|
|||||||
case MPD_API_QUEUE_MOVE_TRACK:
|
case MPD_API_QUEUE_MOVE_TRACK:
|
||||||
je = json_scanf(msg.p, msg.len, "{data: {from: %u, to: %u}}", &uint_buf1, &uint_buf2);
|
je = json_scanf(msg.p, msg.len, "{data: {from: %u, to: %u}}", &uint_buf1, &uint_buf2);
|
||||||
if (je == 2) {
|
if (je == 2) {
|
||||||
uint_buf1 --;
|
uint_buf1--;
|
||||||
uint_buf2 --;
|
uint_buf2--;
|
||||||
if (uint_buf1 < uint_buf2)
|
if (uint_buf1 < uint_buf2)
|
||||||
uint_buf2 --;
|
uint_buf2--;
|
||||||
mpd_run_move(mpd.conn, uint_buf1, uint_buf2);
|
mpd_run_move(mpd.conn, uint_buf1, uint_buf2);
|
||||||
n = snprintf(mpd.buf, MAX_SIZE, "{\"type\": \"result\", \"data\": \"ok\"}");
|
n = snprintf(mpd.buf, MAX_SIZE, "{\"type\": \"result\", \"data\": \"ok\"}");
|
||||||
}
|
}
|
||||||
@ -301,10 +301,10 @@ void callback_mympd(struct mg_connection *nc, const struct mg_str msg) {
|
|||||||
case MPD_API_PLAYLIST_MOVE_TRACK:
|
case MPD_API_PLAYLIST_MOVE_TRACK:
|
||||||
je = json_scanf(msg.p, msg.len, "{data: {plist: %Q, from: %u, to: %u }}", &p_charbuf1, &uint_buf1, &uint_buf2);
|
je = json_scanf(msg.p, msg.len, "{data: {plist: %Q, from: %u, to: %u }}", &p_charbuf1, &uint_buf1, &uint_buf2);
|
||||||
if (je == 3) {
|
if (je == 3) {
|
||||||
uint_buf1 --;
|
uint_buf1--;
|
||||||
uint_buf2 --;
|
uint_buf2--;
|
||||||
if (uint_buf1 < uint_buf2)
|
if (uint_buf1 < uint_buf2)
|
||||||
uint_buf2 --;
|
uint_buf2--;
|
||||||
mpd_send_playlist_move(mpd.conn, p_charbuf1, uint_buf1, uint_buf2);
|
mpd_send_playlist_move(mpd.conn, p_charbuf1, uint_buf1, uint_buf2);
|
||||||
mpd_response_finish(mpd.conn);
|
mpd_response_finish(mpd.conn);
|
||||||
free(p_charbuf1);
|
free(p_charbuf1);
|
||||||
@ -349,7 +349,7 @@ void callback_mympd(struct mg_connection *nc, const struct mg_str msg) {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case MPD_API_QUEUE_LIST:
|
case MPD_API_QUEUE_LIST:
|
||||||
je = json_scanf(msg.p, msg.len, "{data: {offset: %u }}", &uint_buf1);
|
je = json_scanf(msg.p, msg.len, "{data: {offset: %u}}", &uint_buf1);
|
||||||
if (je == 1) {
|
if (je == 1) {
|
||||||
n = mympd_put_queue(mpd.buf, uint_buf1, &mpd.queue_version, &mpd.queue_length);
|
n = mympd_put_queue(mpd.buf, uint_buf1, &mpd.queue_version, &mpd.queue_length);
|
||||||
}
|
}
|
||||||
@ -358,7 +358,7 @@ void callback_mympd(struct mg_connection *nc, const struct mg_str msg) {
|
|||||||
n = mympd_put_current_song(mpd.buf);
|
n = mympd_put_current_song(mpd.buf);
|
||||||
break;
|
break;
|
||||||
case MPD_API_DATABASE_SONGDETAILS:
|
case MPD_API_DATABASE_SONGDETAILS:
|
||||||
je = json_scanf(msg.p, msg.len, "{data: { uri: %Q }}", &p_charbuf1);
|
je = json_scanf(msg.p, msg.len, "{data: { uri: %Q}}", &p_charbuf1);
|
||||||
if (je == 1) {
|
if (je == 1) {
|
||||||
n = mympd_put_songdetails(mpd.buf, p_charbuf1);
|
n = mympd_put_songdetails(mpd.buf, p_charbuf1);
|
||||||
free(p_charbuf1);
|
free(p_charbuf1);
|
||||||
@ -416,7 +416,7 @@ void callback_mympd(struct mg_connection *nc, const struct mg_str msg) {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case MPD_API_PLAYLIST_LIST:
|
case MPD_API_PLAYLIST_LIST:
|
||||||
je = json_scanf(msg.p, msg.len, "{data: {offset:%u, filter:%Q}}", &uint_buf1, &p_charbuf1);
|
je = json_scanf(msg.p, msg.len, "{data: {offset: %u, filter: %Q}}", &uint_buf1, &p_charbuf1);
|
||||||
if (je == 2) {
|
if (je == 2) {
|
||||||
n = mympd_put_playlists(mpd.buf, uint_buf1, p_charbuf1);
|
n = mympd_put_playlists(mpd.buf, uint_buf1, p_charbuf1);
|
||||||
free(p_charbuf1);
|
free(p_charbuf1);
|
||||||
@ -622,7 +622,7 @@ void mympd_notify(struct mg_mgr *s) {
|
|||||||
|
|
||||||
void mympd_parse_idle(struct mg_mgr *s, int idle_bitmask) {
|
void mympd_parse_idle(struct mg_mgr *s, int idle_bitmask) {
|
||||||
int len = 0;
|
int len = 0;
|
||||||
for (unsigned j = 0;; j ++) {
|
for (unsigned j = 0;; j++) {
|
||||||
enum mpd_idle idle_event = 1 << j;
|
enum mpd_idle idle_event = 1 << j;
|
||||||
const char *idle_name = mpd_idle_name(idle_event);
|
const char *idle_name = mpd_idle_name(idle_event);
|
||||||
if (idle_name == NULL)
|
if (idle_name == NULL)
|
||||||
@ -731,6 +731,7 @@ void mympd_mpd_features() {
|
|||||||
token = strtok(NULL, s);
|
token = strtok(NULL, s);
|
||||||
}
|
}
|
||||||
printf("\n");
|
printf("\n");
|
||||||
|
free(str);
|
||||||
}
|
}
|
||||||
|
|
||||||
void mympd_idle(struct mg_mgr *s, int timeout) {
|
void mympd_idle(struct mg_mgr *s, int timeout) {
|
||||||
@ -1305,7 +1306,7 @@ int mympd_put_settings(char *buffer) {
|
|||||||
|
|
||||||
struct node *current = mympd_tags.list;
|
struct node *current = mympd_tags.list;
|
||||||
while (current != NULL) {
|
while (current != NULL) {
|
||||||
if (nr ++)
|
if (nr++)
|
||||||
len += json_printf(&out, ",");
|
len += json_printf(&out, ",");
|
||||||
len += json_printf(&out, "%Q", current->data);
|
len += json_printf(&out, "%Q", current->data);
|
||||||
current = current->next;
|
current = current->next;
|
||||||
@ -1316,7 +1317,7 @@ int mympd_put_settings(char *buffer) {
|
|||||||
nr = 0;
|
nr = 0;
|
||||||
current = syscmds.list;
|
current = syscmds.list;
|
||||||
while (current != NULL) {
|
while (current != NULL) {
|
||||||
if (nr ++)
|
if (nr++)
|
||||||
len += json_printf(&out, ",");
|
len += json_printf(&out, ",");
|
||||||
len += json_printf(&out, "%Q", current->data);
|
len += json_printf(&out, "%Q", current->data);
|
||||||
current = current->next;
|
current = current->next;
|
||||||
@ -1341,7 +1342,7 @@ int mympd_put_outputs(char *buffer) {
|
|||||||
len = json_printf(&out, "{type: outputs, data: {outputs: [");
|
len = json_printf(&out, "{type: outputs, data: {outputs: [");
|
||||||
nr = 0;
|
nr = 0;
|
||||||
while ((output = mpd_recv_output(mpd.conn)) != NULL) {
|
while ((output = mpd_recv_output(mpd.conn)) != NULL) {
|
||||||
if (nr ++)
|
if (nr++)
|
||||||
len += json_printf(&out, ",");
|
len += json_printf(&out, ",");
|
||||||
len += json_printf(&out,"{id: %d, name: %Q, state: %d}",
|
len += json_printf(&out,"{id: %d, name: %Q, state: %d}",
|
||||||
mpd_output_get_id(output),
|
mpd_output_get_id(output),
|
||||||
@ -1399,6 +1400,7 @@ int mympd_get_cover(const char *uri, char *cover, int cover_len) {
|
|||||||
len = snprintf(cover, cover_len, "/library/%s/%s", path, config.coverimage);
|
len = snprintf(cover, cover_len, "/library/%s/%s", path, config.coverimage);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
free(path);
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1451,7 +1453,8 @@ int mympd_put_songdetails(char *buffer, char *uri) {
|
|||||||
char cover[500];
|
char cover[500];
|
||||||
|
|
||||||
len = json_printf(&out, "{type: song_details, data: {");
|
len = json_printf(&out, "{type: song_details, data: {");
|
||||||
mpd_send_list_all_meta(mpd.conn, uri);
|
if (!mpd_send_list_all_meta(mpd.conn, uri))
|
||||||
|
RETURN_ERROR_AND_RECOVER("mpd_send_list_all_meta");
|
||||||
if ((entity = mpd_recv_entity(mpd.conn)) != NULL) {
|
if ((entity = mpd_recv_entity(mpd.conn)) != NULL) {
|
||||||
song = mpd_entity_get_song(entity);
|
song = mpd_entity_get_song(entity);
|
||||||
mympd_get_cover(uri, cover, 500);
|
mympd_get_cover(uri, cover, 500);
|
||||||
@ -1502,8 +1505,8 @@ int mympd_put_queue(char *buffer, unsigned int offset, unsigned *queue_version,
|
|||||||
song = mpd_entity_get_song(entity);
|
song = mpd_entity_get_song(entity);
|
||||||
drtn = mpd_song_get_duration(song);
|
drtn = mpd_song_get_duration(song);
|
||||||
totalTime += drtn;
|
totalTime += drtn;
|
||||||
entity_count ++;
|
entity_count++;
|
||||||
if (entities_returned ++)
|
if (entities_returned++)
|
||||||
len += json_printf(&out, ",");
|
len += json_printf(&out, ",");
|
||||||
len += json_printf(&out, "{id: %d, pos: %d, ",
|
len += json_printf(&out, "{id: %d, pos: %d, ",
|
||||||
mpd_song_get_id(song),
|
mpd_song_get_id(song),
|
||||||
@ -1550,11 +1553,11 @@ int mympd_put_browse(char *buffer, char *path, unsigned int offset, char *filter
|
|||||||
while ((entity = mpd_recv_entity(mpd.conn)) != NULL) {
|
while ((entity = mpd_recv_entity(mpd.conn)) != NULL) {
|
||||||
const struct mpd_song *song;
|
const struct mpd_song *song;
|
||||||
const struct mpd_directory *dir;
|
const struct mpd_directory *dir;
|
||||||
entity_count ++;
|
entity_count++;
|
||||||
if (entity_count > offset && entity_count <= offset + config.max_elements_per_page) {
|
if (entity_count > offset && entity_count <= offset + config.max_elements_per_page) {
|
||||||
switch (mpd_entity_get_type(entity)) {
|
switch (mpd_entity_get_type(entity)) {
|
||||||
case MPD_ENTITY_TYPE_UNKNOWN:
|
case MPD_ENTITY_TYPE_UNKNOWN:
|
||||||
entity_count --;
|
entity_count--;
|
||||||
break;
|
break;
|
||||||
case MPD_ENTITY_TYPE_SONG:
|
case MPD_ENTITY_TYPE_SONG:
|
||||||
song = mpd_entity_get_song(entity);
|
song = mpd_entity_get_song(entity);
|
||||||
@ -1562,13 +1565,13 @@ int mympd_put_browse(char *buffer, char *path, unsigned int offset, char *filter
|
|||||||
if (strncmp(filter, "-", 1) == 0 || strncasecmp(filter, entityName, 1) == 0 ||
|
if (strncmp(filter, "-", 1) == 0 || strncasecmp(filter, entityName, 1) == 0 ||
|
||||||
(strncmp(filter, "0", 1) == 0 && isalpha(*entityName) == 0 )
|
(strncmp(filter, "0", 1) == 0 && isalpha(*entityName) == 0 )
|
||||||
) {
|
) {
|
||||||
if (entities_returned ++)
|
if (entities_returned++)
|
||||||
len += json_printf(&out, ",");
|
len += json_printf(&out, ",");
|
||||||
len += json_printf(&out, "{type: song, ");
|
len += json_printf(&out, "{type: song, ");
|
||||||
PUT_SONG_TAGS();
|
PUT_SONG_TAGS();
|
||||||
len += json_printf(&out, "}");
|
len += json_printf(&out, "}");
|
||||||
} else {
|
} else {
|
||||||
entity_count --;
|
entity_count--;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -1578,21 +1581,21 @@ int mympd_put_browse(char *buffer, char *path, unsigned int offset, char *filter
|
|||||||
char *dirName = strrchr(entityName, '/');
|
char *dirName = strrchr(entityName, '/');
|
||||||
|
|
||||||
if (dirName != NULL)
|
if (dirName != NULL)
|
||||||
dirName ++;
|
dirName++;
|
||||||
else
|
else
|
||||||
dirName = strdup(entityName);
|
dirName = strdup(entityName);
|
||||||
|
|
||||||
if (strncmp(filter, "-", 1) == 0 || strncasecmp(filter, dirName, 1) == 0 ||
|
if (strncmp(filter, "-", 1) == 0 || strncasecmp(filter, dirName, 1) == 0 ||
|
||||||
(strncmp(filter, "0", 1) == 0 && isalpha(*dirName) == 0 )
|
(strncmp(filter, "0", 1) == 0 && isalpha(*dirName) == 0 )
|
||||||
) {
|
) {
|
||||||
if (entities_returned ++)
|
if (entities_returned++)
|
||||||
len += json_printf(&out, ",");
|
len += json_printf(&out, ",");
|
||||||
len += json_printf(&out, "{type: dir, uri: %Q, name: %Q}",
|
len += json_printf(&out, "{type: dir, uri: %Q, name: %Q}",
|
||||||
entityName,
|
entityName,
|
||||||
dirName
|
dirName
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
entity_count --;
|
entity_count--;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -1601,14 +1604,14 @@ int mympd_put_browse(char *buffer, char *path, unsigned int offset, char *filter
|
|||||||
entityName = mpd_playlist_get_path(pl);
|
entityName = mpd_playlist_get_path(pl);
|
||||||
char *plName = strrchr(entityName, '/');
|
char *plName = strrchr(entityName, '/');
|
||||||
if (plName != NULL) {
|
if (plName != NULL) {
|
||||||
plName ++;
|
plName++;
|
||||||
} else {
|
} else {
|
||||||
plName = strdup(entityName);
|
plName = strdup(entityName);
|
||||||
}
|
}
|
||||||
if (strncmp(filter, "-", 1) == 0 || strncasecmp(filter, plName, 1) == 0 ||
|
if (strncmp(filter, "-", 1) == 0 || strncasecmp(filter, plName, 1) == 0 ||
|
||||||
(strncmp(filter, "0", 1) == 0 && isalpha(*plName) == 0 )
|
(strncmp(filter, "0", 1) == 0 && isalpha(*plName) == 0 )
|
||||||
) {
|
) {
|
||||||
if (entities_returned ++)
|
if (entities_returned++)
|
||||||
len += json_printf(&out, ",");
|
len += json_printf(&out, ",");
|
||||||
snprintf(smartpls_file, 400, "%s/smartpls/%s", config.varlibdir, plName);
|
snprintf(smartpls_file, 400, "%s/smartpls/%s", config.varlibdir, plName);
|
||||||
if (access(smartpls_file, F_OK ) != -1)
|
if (access(smartpls_file, F_OK ) != -1)
|
||||||
@ -1621,7 +1624,7 @@ int mympd_put_browse(char *buffer, char *path, unsigned int offset, char *filter
|
|||||||
plName
|
plName
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
entity_count --;
|
entity_count--;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1666,22 +1669,22 @@ int mympd_put_db_tag(char *buffer, unsigned int offset, char *mpdtagtype, char *
|
|||||||
|
|
||||||
len = json_printf(&out, "{type: listDBtags, data: [");
|
len = json_printf(&out, "{type: listDBtags, data: [");
|
||||||
while ((pair = mpd_recv_pair_tag(mpd.conn, mpd_tag_name_parse(mpdtagtype))) != NULL) {
|
while ((pair = mpd_recv_pair_tag(mpd.conn, mpd_tag_name_parse(mpdtagtype))) != NULL) {
|
||||||
entity_count ++;
|
entity_count++;
|
||||||
if (entity_count > offset && entity_count <= offset + config.max_elements_per_page) {
|
if (entity_count > offset && entity_count <= offset + config.max_elements_per_page) {
|
||||||
if (strcmp(pair->value, "") == 0) {
|
if (strcmp(pair->value, "") == 0) {
|
||||||
entity_count --;
|
entity_count--;
|
||||||
}
|
}
|
||||||
else if (strncmp(filter, "-", 1) == 0 || strncasecmp(filter, pair->value, 1) == 0 ||
|
else if (strncmp(filter, "-", 1) == 0 || strncasecmp(filter, pair->value, 1) == 0 ||
|
||||||
(strncmp(filter, "0", 1) == 0 && isalpha(*pair->value) == 0 )
|
(strncmp(filter, "0", 1) == 0 && isalpha(*pair->value) == 0 )
|
||||||
) {
|
) {
|
||||||
if (entities_returned ++)
|
if (entities_returned++)
|
||||||
len += json_printf(&out, ", ");
|
len += json_printf(&out, ", ");
|
||||||
len += json_printf(&out, "{type: %Q, value: %Q}",
|
len += json_printf(&out, "{type: %Q, value: %Q}",
|
||||||
mpdtagtype,
|
mpdtagtype,
|
||||||
pair->value
|
pair->value
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
entity_count --;
|
entity_count--;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
mpd_return_pair(mpd.conn, pair);
|
mpd_return_pair(mpd.conn, pair);
|
||||||
@ -1726,9 +1729,9 @@ int mympd_put_songs_in_album(char *buffer, char *album, char *search, char *tag)
|
|||||||
len = json_printf(&out, "{type: listTitles, data: [");
|
len = json_printf(&out, "{type: listTitles, data: [");
|
||||||
|
|
||||||
while ((song = mpd_recv_song(mpd.conn)) != NULL) {
|
while ((song = mpd_recv_song(mpd.conn)) != NULL) {
|
||||||
entity_count ++;
|
entity_count++;
|
||||||
if (entity_count <= config.max_elements_per_page) {
|
if (entity_count <= config.max_elements_per_page) {
|
||||||
if (entities_returned ++)
|
if (entities_returned++)
|
||||||
len += json_printf(&out, ", ");
|
len += json_printf(&out, ", ");
|
||||||
else {
|
else {
|
||||||
mympd_get_cover(mpd_song_get_uri(song), cover, 500);
|
mympd_get_cover(mpd_song_get_uri(song), cover, 500);
|
||||||
@ -1776,13 +1779,13 @@ int mympd_put_playlists(char *buffer, unsigned int offset, char *filter) {
|
|||||||
len = json_printf(&out, "{type: playlists, data: [");
|
len = json_printf(&out, "{type: playlists, data: [");
|
||||||
|
|
||||||
while ((pl = mpd_recv_playlist(mpd.conn)) != NULL) {
|
while ((pl = mpd_recv_playlist(mpd.conn)) != NULL) {
|
||||||
entity_count ++;
|
entity_count++;
|
||||||
if (entity_count > offset && entity_count <= offset + config.max_elements_per_page) {
|
if (entity_count > offset && entity_count <= offset + config.max_elements_per_page) {
|
||||||
plpath = mpd_playlist_get_path(pl);
|
plpath = mpd_playlist_get_path(pl);
|
||||||
if (strncmp(filter,"-",1) == 0 || strncasecmp(filter, plpath, 1) == 0 ||
|
if (strncmp(filter,"-",1) == 0 || strncasecmp(filter, plpath, 1) == 0 ||
|
||||||
(strncmp(filter, "0", 1) == 0 && isalpha(*plpath) == 0 )
|
(strncmp(filter, "0", 1) == 0 && isalpha(*plpath) == 0 )
|
||||||
) {
|
) {
|
||||||
if (entities_returned ++)
|
if (entities_returned++)
|
||||||
len += json_printf(&out, ", ");
|
len += json_printf(&out, ", ");
|
||||||
snprintf(smartpls_file, 400, "%s/smartpls/%s", config.varlibdir, plpath);
|
snprintf(smartpls_file, 400, "%s/smartpls/%s", config.varlibdir, plpath);
|
||||||
if (access(smartpls_file, F_OK ) != -1)
|
if (access(smartpls_file, F_OK ) != -1)
|
||||||
@ -1796,7 +1799,7 @@ int mympd_put_playlists(char *buffer, unsigned int offset, char *filter) {
|
|||||||
mpd_playlist_get_last_modified(pl)
|
mpd_playlist_get_last_modified(pl)
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
entity_count --;
|
entity_count--;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
mpd_playlist_free(pl);
|
mpd_playlist_free(pl);
|
||||||
@ -1829,20 +1832,20 @@ int mympd_put_playlist_list(char *buffer, char *uri, unsigned int offset, char *
|
|||||||
|
|
||||||
while ((entity = mpd_recv_entity(mpd.conn)) != NULL) {
|
while ((entity = mpd_recv_entity(mpd.conn)) != NULL) {
|
||||||
const struct mpd_song *song;
|
const struct mpd_song *song;
|
||||||
entity_count ++;
|
entity_count++;
|
||||||
if (entity_count > offset && entity_count <= offset + config.max_elements_per_page) {
|
if (entity_count > offset && entity_count <= offset + config.max_elements_per_page) {
|
||||||
song = mpd_entity_get_song(entity);
|
song = mpd_entity_get_song(entity);
|
||||||
entityName = mympd_get_tag(song, MPD_TAG_TITLE);
|
entityName = mympd_get_tag(song, MPD_TAG_TITLE);
|
||||||
if (strncmp(filter, "-", 1) == 0 || strncasecmp(filter, entityName, 1) == 0 ||
|
if (strncmp(filter, "-", 1) == 0 || strncasecmp(filter, entityName, 1) == 0 ||
|
||||||
(strncmp(filter, "0", 1) == 0 && isalpha(*entityName) == 0 )
|
(strncmp(filter, "0", 1) == 0 && isalpha(*entityName) == 0 )
|
||||||
) {
|
) {
|
||||||
if (entities_returned ++)
|
if (entities_returned++)
|
||||||
len += json_printf(&out, ",");
|
len += json_printf(&out, ",");
|
||||||
len += json_printf(&out, "{type: song, ");
|
len += json_printf(&out, "{type: song, ");
|
||||||
PUT_SONG_TAGS();
|
PUT_SONG_TAGS();
|
||||||
len += json_printf(&out, "}");
|
len += json_printf(&out, "}");
|
||||||
} else {
|
} else {
|
||||||
entity_count --;
|
entity_count--;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
mpd_entity_free(entity);
|
mpd_entity_free(entity);
|
||||||
@ -1888,9 +1891,9 @@ int mympd_search(char *buffer, char *searchstr, char *filter, char *plist, unsig
|
|||||||
|
|
||||||
if (strcmp(plist, "") == 0) {
|
if (strcmp(plist, "") == 0) {
|
||||||
while ((song = mpd_recv_song(mpd.conn)) != NULL) {
|
while ((song = mpd_recv_song(mpd.conn)) != NULL) {
|
||||||
entity_count ++;
|
entity_count++;
|
||||||
if (entity_count > offset && entity_count <= offset + config.max_elements_per_page) {
|
if (entity_count > offset && entity_count <= offset + config.max_elements_per_page) {
|
||||||
if (entities_returned ++)
|
if (entities_returned++)
|
||||||
len += json_printf(&out, ", ");
|
len += json_printf(&out, ", ");
|
||||||
len += json_printf(&out, "{type: song, ");
|
len += json_printf(&out, "{type: song, ");
|
||||||
PUT_SONG_TAGS();
|
PUT_SONG_TAGS();
|
||||||
@ -1928,12 +1931,12 @@ int mympd_queue_crop(char *buffer) {
|
|||||||
len = json_printf(&out, "{type: error, data: %Q}", "A playlist longer than 1 song in length is required to crop.");
|
len = json_printf(&out, "{type: error, data: %Q}", "A playlist longer than 1 song in length is required to crop.");
|
||||||
}
|
}
|
||||||
else if (mpd_status_get_state(status) == MPD_STATE_PLAY || mpd_status_get_state(status) == MPD_STATE_PAUSE) {
|
else if (mpd_status_get_state(status) == MPD_STATE_PLAY || mpd_status_get_state(status) == MPD_STATE_PAUSE) {
|
||||||
playing_song_pos ++;
|
playing_song_pos++;
|
||||||
if (playing_song_pos < length)
|
if (playing_song_pos < length)
|
||||||
mpd_run_delete_range(mpd.conn, playing_song_pos, -1);
|
mpd_run_delete_range(mpd.conn, playing_song_pos, -1);
|
||||||
playing_song_pos --;
|
playing_song_pos--;
|
||||||
if (playing_song_pos > 0 )
|
if (playing_song_pos > 0 )
|
||||||
mpd_run_delete_range(mpd.conn, 0, playing_song_pos --);
|
mpd_run_delete_range(mpd.conn, 0, playing_song_pos--);
|
||||||
len = json_printf(&out, "{type: result, data: ok}");
|
len = json_printf(&out, "{type: result, data: ok}");
|
||||||
} else {
|
} else {
|
||||||
len = json_printf(&out, "{type: error, data: %Q}", "You need to be playing to crop the playlist");
|
len = json_printf(&out, "{type: error, data: %Q}", "You need to be playing to crop the playlist");
|
||||||
@ -1971,9 +1974,9 @@ int mympd_search_queue(char *buffer, char *mpdtagtype, unsigned int offset, char
|
|||||||
len = json_printf(&out, "{type: queuesearch, data: [");
|
len = json_printf(&out, "{type: queuesearch, data: [");
|
||||||
|
|
||||||
while ((song = mpd_recv_song(mpd.conn)) != NULL) {
|
while ((song = mpd_recv_song(mpd.conn)) != NULL) {
|
||||||
entity_count ++;
|
entity_count++;
|
||||||
if (entity_count > offset && entity_count <= offset + config.max_elements_per_page) {
|
if (entity_count > offset && entity_count <= offset + config.max_elements_per_page) {
|
||||||
if (entities_returned ++)
|
if (entities_returned++)
|
||||||
len += json_printf(&out, ", ");
|
len += json_printf(&out, ", ");
|
||||||
len += json_printf(&out, "{type: song, id: %d, pos: %d, ",
|
len += json_printf(&out, "{type: song, id: %d, pos: %d, ",
|
||||||
mpd_song_get_id(song),
|
mpd_song_get_id(song),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user