#include "show.h"
#include "slash.h"
#include "lba2msf.h"

/**
 * Copyright (C) 2001-2006 Tino Reichardt
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License Version 2, as
 * published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */

#define x 22

void show_time(void)
{
	unsigned char m, s, f;
	stralloc sa;

	stralloc_init(&sa);
	show_sa(&c_status);

	/* track */
	show_gotoxy(show_maxx-x, 4);
	lba2msf(cd->rel, &m, &s, &f);
	if (!stralloc_cat_ms(&sa, m, s)) die_nomem();
	if (!stralloc_cats(&sa, " + ")) die_nomem();
	lba2msf(cd->t[cd->current].len - cd->rel, &m, &s, &f);
	if (!stralloc_cat_ms(&sa, m, s)) die_nomem();
	if (!stralloc_cats(&sa, " = ")) die_nomem();
	lba2msf(cd->t[cd->current].len, &m, &s, &f);
	if (!stralloc_cat_ms(&sa, m, s)) die_nomem();
	show_sa(&sa);
	if (!stralloc_copys(&sa, "")) die_nomem();

	/* playlist */
	show_gotoxy(show_maxx-x, 5);
	lba2msf(cd->p_abs, &m, &s, &f);
	if (!stralloc_cat_ms(&sa, m, s)) die_nomem();
	if (!stralloc_cats(&sa, " + ")) die_nomem();
	lba2msf(cd->t[0].lba - cd->p_abs, &m, &s, &f);
	if (!stralloc_cat_ms(&sa, m, s)) die_nomem();
	if (!stralloc_cats(&sa, " = ")) die_nomem();
	lba2msf(cd->t[0].lba, &m, &s, &f);
	if (!stralloc_cat_ms(&sa, m, s)) die_nomem();
	show_sa(&sa);
	if (!stralloc_copys(&sa, "")) die_nomem();

	/* full cdrom */
	show_gotoxy(show_maxx-x, 6);
	lba2msf(cd->abs, &m, &s, &f);
	if (!stralloc_cat_ms(&sa, m, s)) die_nomem();
	if (!stralloc_cats(&sa, " + ")) die_nomem();
	lba2msf(cd->t[0].lba - cd->abs, &m, &s, &f);
	if (!stralloc_cat_ms(&sa, m, s)) die_nomem();
	if (!stralloc_cats(&sa, " = ")) die_nomem();
	lba2msf(cd->t[0].lba, &m, &s, &f);
	if (!stralloc_cat_ms(&sa, m, s)) die_nomem();
	show_sa(&sa);
	stralloc_free(&sa);

	return;
}

