mirror of https://github.com/mpv-player/mpv
command: don't print unneeded new lines for track-list
Useful for terminal output.
This commit is contained in:
parent
153d4927ab
commit
8aad03bf6d
|
@ -2115,7 +2115,6 @@ static char *append_track_info(char *res, struct track *track)
|
||||||
res = talloc_asprintf_append(res, "(%s) ", track->lang);
|
res = talloc_asprintf_append(res, "(%s) ", track->lang);
|
||||||
if (track->is_external)
|
if (track->is_external)
|
||||||
res = talloc_asprintf_append(res, "(external) ");
|
res = talloc_asprintf_append(res, "(external) ");
|
||||||
res = talloc_asprintf_append(res, "\n");
|
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
@ -2125,25 +2124,35 @@ static int property_list_tracks(void *ctx, struct m_property *prop,
|
||||||
{
|
{
|
||||||
MPContext *mpctx = ctx;
|
MPContext *mpctx = ctx;
|
||||||
if (action == M_PROPERTY_PRINT) {
|
if (action == M_PROPERTY_PRINT) {
|
||||||
char *res = NULL;
|
char *res = talloc_strdup(NULL, "");
|
||||||
|
|
||||||
for (int type = 0; type < STREAM_TYPE_COUNT; type++) {
|
for (int type = 0; type < STREAM_TYPE_COUNT; type++) {
|
||||||
|
bool found = false;
|
||||||
|
|
||||||
for (int n = 0; n < mpctx->num_tracks; n++) {
|
for (int n = 0; n < mpctx->num_tracks; n++) {
|
||||||
struct track *track = mpctx->tracks[n];
|
struct track *track = mpctx->tracks[n];
|
||||||
if (track->type == type) {
|
if (track->type == type) {
|
||||||
res = talloc_asprintf_append(res, "%s: ", track_type_name(track));
|
res = talloc_asprintf_append(res, "%s: ", track_type_name(track));
|
||||||
res = append_track_info(res, track);
|
res = append_track_info(res, track);
|
||||||
|
res = talloc_asprintf_append(res, "\n");
|
||||||
|
found = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
res = talloc_asprintf_append(res, "\n");
|
if (found && type < STREAM_TYPE_COUNT - 1) {
|
||||||
|
res = talloc_asprintf_append(res, "\n");
|
||||||
|
found = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
struct demuxer *demuxer = mpctx->demuxer;
|
struct demuxer *demuxer = mpctx->demuxer;
|
||||||
if (demuxer && demuxer->num_editions > 1)
|
if (demuxer && demuxer->num_editions > 1) {
|
||||||
res = talloc_asprintf_append(res, "\nEdition: %d of %d\n",
|
res = talloc_asprintf_append(res, "\nEdition: %d of %d",
|
||||||
demuxer->edition + 1,
|
demuxer->edition + 1,
|
||||||
demuxer->num_editions);
|
demuxer->num_editions);
|
||||||
|
} else {
|
||||||
|
res[strlen(res) - 1] = '\0';
|
||||||
|
}
|
||||||
|
|
||||||
*(char **)arg = res;
|
*(char **)arg = res;
|
||||||
return M_PROPERTY_OK;
|
return M_PROPERTY_OK;
|
||||||
|
@ -2169,12 +2178,14 @@ static int property_list_tracks(void *ctx, struct m_property *prop,
|
||||||
*(struct m_option *)ka->arg = (struct m_option){.type = CONF_TYPE_STRING};
|
*(struct m_option *)ka->arg = (struct m_option){.type = CONF_TYPE_STRING};
|
||||||
return M_PROPERTY_OK;
|
return M_PROPERTY_OK;
|
||||||
case M_PROPERTY_PRINT:
|
case M_PROPERTY_PRINT:
|
||||||
res = talloc_asprintf(NULL, "Available %s tracks:\n",
|
res = talloc_asprintf(NULL, "Available %s tracks:",
|
||||||
type == STREAM_SUB ? "subtitle" : stream_type_name(type));
|
type == STREAM_SUB ? "subtitle" : stream_type_name(type));
|
||||||
|
|
||||||
for (int n = 0; n < mpctx->num_tracks; n++) {
|
for (int n = 0; n < mpctx->num_tracks; n++) {
|
||||||
if (mpctx->tracks[n]->type == type)
|
if (mpctx->tracks[n]->type == type) {
|
||||||
|
res = talloc_strdup_append(res, "\n");
|
||||||
res = append_track_info(res, mpctx->tracks[n]);
|
res = append_track_info(res, mpctx->tracks[n]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
*(char **)ka->arg = res;
|
*(char **)ka->arg = res;
|
||||||
|
|
Loading…
Reference in New Issue