static void track_head(bs1770gain_print_t *p, bs1770gain_track_t *t)
{
  p->t=t;

  if (NULL==t)
    fprintf(p->f,"  [ALBUM]:");
  else {
    fprintf(p->f,"  [%d/%d] \"%s\"",t->n,p->a->n,pbu_basename(t->ipath));
    fprintf(p->f,": ");
    fflush(p->f);
  }
}
static void track_head(bs1770gain_print_t *p, bs1770gain_track_t *t)
{
  p->t=t;

  if (NULL==t)
    fprintf(p->f,"    <summary total=\"%d\">\n",p->a->n);
  else {
    fprintf(p->f,"    <track total=\"%d\" number=\"%d\" file=\"%s\">\n",
        p->a->n,t->n,pbu_basename(t->ipath));
  }

  fflush(p->f);
}
static void track_head(bs1770gain_print_t *p, bs1770gain_track_t *t)
{
#if defined (W_WIN32) // [
  wchar_t *wbasename;

  if (NULL==t)
    wbasename=NULL;
  else if (NULL==(wbasename=pbu_s2w(pbu_basename(t->ipath)))) {
    DMESSAGE("converting UTF-8 to UTF-16");
    goto wbasename;
  }
#endif // ]

  p->t=t;

  if (NULL==t) {
#if defined (W_WIN32) // [
    fwprintf(p->f,L"  [ALBUM]:");
#else // ] [
    fprintf(p->f,"  [ALBUM]:");
#endif // ]
  }
  else {
#if defined (W_WIN32) // [
    fwprintf(p->f,L"  [%d/%d] \"%s\"",t->n,p->a->n,wbasename);
    fwprintf(p->f,L": ");
#else // ] [
    fprintf(p->f,"  [%d/%d] \"%s\"",t->n,p->a->n,pbu_basename(t->ipath));
    fprintf(p->f,": ");
#endif // ]
    fflush(p->f);
  }

#if defined (W_WIN32) // [
  free(wbasename);
wbasename:
  return;
#endif // ]
}