/* Echo Media Player
* Copyright (C) 2008 Shane O'Connell
*
* [ The original file includes a copyright header in this location describing
* the file as being released under the terms of the GNU General Public
* License. It has been removed in order to display the file as part of the
* archive. ]
*/
#include "TrackInfoPane.h"
#include "../PlaybackManager.h"
TrackInfoPane::TrackInfoPane()
{
//set_size_request(10, 50);
m_label.set_markup("<span weight='bold'>Not playing</span>\nStopped");
Gtk::Alignment* label_align = Gtk::manage(new Gtk::Alignment(0, 0, 0, 0));
label_align->set_padding(1, 1, 10, 5);
label_align->add(m_label);
pack_start(*label_align, Gtk::PACK_EXPAND_WIDGET);
PlaybackManager::signal_track_started().connect(
sigc::mem_fun(*this, &TrackInfoPane::on_track_started));
PlaybackManager::signal_track_stopped().connect(
sigc::mem_fun(*this, &TrackInfoPane::on_track_stopped));
}
void TrackInfoPane::on_track_started(PlaySourceRef playlist, int index, bool was_paused)
{
// TODO make this info somehow selectable like it is in rhythmbox so that it can be copy/pasted?
// TODO if album or artist unknown don't print 'by' or 'from' etc
Glib::ustring markup_data;
markup_data.append("<span weight='bold'>"
+ Glib::Markup::escape_text(playlist->get_track(index)->get_title()) + "</span>\n");
markup_data.append("<span weight='light' size='smaller'>by </span>");
markup_data.append("<span>"
+ Glib::Markup::escape_text(playlist->get_track(index)->get_artist()) + "</span> ");
markup_data.append("<span weight='light' size='smaller'>from </span>");
markup_data.append("<span>"
+ Glib::Markup::escape_text(playlist->get_track(index)->get_album()) + "</span>");
m_label.set_markup(markup_data);
}
void TrackInfoPane::on_track_stopped(PlaySourceRef playlist, int index, bool is_paused)
{
if (!is_paused)
m_label.set_markup("<span weight='bold'>Not playing</span>\nStopped");
}