## rb-header

rb-header — playback area widgetry

## Synopsis

                        RBHeader;
                        RBHeaderClass;
    RBHeader *          rb_header_new                       (RBShellPlayer *shell_player,
                                                             RhythmDB *db);
    void                rb_header_set_playing_entry         (RBHeader *header,
                                                             RhythmDBEntry *entry,
                                                             gboolean seekable);
    void                rb_header_sync                      (RBHeader *header);
    void                rb_header_sync_time                 (RBHeader *header);
    char *              rb_header_get_elapsed_string        (RBHeader *header);

## Object Hierarchy

      GObject
       +----GInitiallyUnowned
             +----GtkObject
                   +----GtkWidget
                         +----GtkContainer
                               +----GtkBox
                                     +----GtkHBox
                                           +----RBHeader

## Implemented Interfaces

RBHeader implements AtkImplementorIface, GtkBuildable and GtkOrientable.

## Properties

      "db"                       RhythmDB*             : Read / Write
      "entry"                    RhythmDBEntry*        : Read / Write
      "seekable"                 gboolean              : Read / Write
      "shell-player"             RBShellPlayer*        : Read / Write / Construct Only
      "slider-dragging"          gboolean              : Read

## Description

The RBHeader widget displays information about the current playing track (title, album, artist), the elapsed or remaining playback time, and a position slider indicating the playback position. It translates slider move and drag events into seek requests for the player backend.

For shoutcast-style streams, the title/artist/album display is supplemented by metadata extracted from the stream. See RBStreamingSource for more information on how the metadata is reported.

## Details

### RBHeader

    typedef struct _RBHeader RBHeader;

### RBHeaderClass

    typedef struct {
    	GtkHBoxClass parent;
    } RBHeaderClass;

### rb_header_new ()

    RBHeader *          rb_header_new                       (RBShellPlayer *shell_player,
                                                             RhythmDB *db);

`shell_player` : | the RBShellPlayer instance
`db` : | the RhythmDB instance
Returns : | the header widget

### rb_header_set_playing_entry ()

    void                rb_header_set_playing_entry         (RBHeader *header,
                                                             RhythmDBEntry *entry,
                                                             gboolean seekable);

Sets a new playing entry to be displayed in the header.

`header` : | the RBHeader
`entry` : | the new playing RhythmDBEntry
`seekable` : | whether the new playing entry is seekable

### rb_header_sync ()

    void                rb_header_sync                      (RBHeader *header);

Updates the header widget to be consistent with the current playing entry including all streaming metadata.

`header` : | the RBHeader

### rb_header_sync_time ()

    void                rb_header_sync_time                 (RBHeader *header);

Updates the time display components of the header. If the position slider is being dragged, the display is not updated. If the duration of the playing entry is known, the position slider is updated along with the elapsed/remaining time display. Otherwise, the slider is made insensitive.

`header` : | the RBHeader

### rb_header_get_elapsed_string ()

    char *              rb_header_get_elapsed_string        (RBHeader *header);

`header` : |
Returns : |

## Property Details

### The `"db"` property

      "db"                       RhythmDB*             : Read / Write

RhythmDB instance

### The `"entry"` property

      "entry"                    RhythmDBEntry*        : Read / Write

The RhythmDBEntry to display

### The `"seekable"` property

      "seekable"                 gboolean              : Read / Write

If TRUE, the header should allow seeking by dragging the playback position slider

Default value: TRUE

### The `"shell-player"` property

      "shell-player"             RBShellPlayer*        : Read / Write / Construct Only

The RBShellPlayer instance

### The `"slider-dragging"` property

      "slider-dragging"          gboolean              : Read

Whether the song position slider is currently being dragged.

Default value: FALSE