### Class

# RB Shell

#### Description [src]

    class RB.Shell : GObject.Object
    {
      RBShellPrivate* priv
    }

RBShell is the main application class in Rhythmbox. It creates and holds references to the other main objects (`RBShellPlayer`, `RhythmDB`, `RBDisplayPageTree`), constructs the main window UI, and provides the basic DBus interface.

#### Ancestors

- GObject

#### Instance methods

###### rb_shell_activate_source

No description available.

###### rb_shell_activate_source_by_uri

Searches for a source matching `source_uri` and if found, selects it, and depending on the value of `play`, may start playing from it. Device-based sources will match the device node or mount point URI. Other types of sources may have their own URI scheme or format. This is part of the DBus interface.

###### rb_shell_add_uri

Adds the specified URI to the Rhythmbox database. Whether the title and genre specified are actually used is up to the source that handles the URI.

###### rb_shell_add_widget

Adds a widget to the main Rhythmbox window. See #gtk_box_pack_start for details on how the expand and fill parameters work.

###### rb_shell_append_display_page

Adds a new display page to the shell.

###### rb_shell_do_notify

Displays a notification of the current playing track.

###### rb_shell_get_song_properties

Gathers and returns all metadata (including extra metadata such as album art URIs and lyrics) for the specified URI.

###### rb_shell_get_source_by_entry_type

Looks up and returns the source that owns entries of the specified type.

###### rb_shell_guess_source_for_uri

Attempts to locate the source that should handle the specified URI. This iterates through all sources, calling #rb_source_want_uri, returning the source that returns the highest value.

###### rb_shell_hide_and_not_quit

Tell the application to hide instead of quitting if a song is currently playing.

###### rb_shell_load_uri

Loads a URI representing a single song, a directory, a playlist, or an internet radio station, and optionally starts playing it.

###### rb_shell_notify_custom

No description available.

###### rb_shell_present

Attempts to display the main window to the user. See #gtk_window_present for details.

###### rb_shell_quit

Begins the process of shutting down Rhythmbox. This function will return. The error parameter and return value only exist because this function is part of the DBus interface.

###### rb_shell_register_entry_type_for_source

Registers a source as the owner of entries of the specified type. The main effect of this is that calling #rb_shell_get_source_by_entry_type with the same entry type will return the source. A source should only be registered as the owner of a single entry type.

###### rb_shell_remove_widget

Removes a widget added with #rb_shell_add_widget from the main window.

###### rb_shell_set_song_property

Attempts to set a property of a database entry identified by its URI. If the URI identifies a file and the property is one associated with a file metadata tag, the new value will be written to the file.

###### rb_shell_toggle_visibility

Toggles the visibility of the main Rhythmbox window.

##### Methods inherited from GObject (43)

Please see GObject for a full list of methods.

#### Properties

###### RB.Shell:accel-group

A `GtkAccelGroup` instance to use for additional accelerator keys.

###### RB.Shell:application

No description available.

###### RB.Shell:autostarted

Whether Rhythmbox was automatically started by the session manager.

###### RB.Shell:clipboard

The `RBShellClipboard` instance.

###### RB.Shell:db

The `RhythmDB` instance.

###### RB.Shell:disable-plugins

If `TRUE`, disable plugins.

###### RB.Shell:display-page-model

The model underlying the display page tree.

###### RB.Shell:display-page-tree

The `RBDisplayPageTree` instance.

###### RB.Shell:dry-run

If TRUE, don’t write back file metadata changes.

###### RB.Shell:library-source

The library source.

###### RB.Shell:no-registration

If `TRUE`, disable single-instance features.

###### RB.Shell:no-update

If `TRUE`, don’t update the database.

###### RB.Shell:playlist-manager

The `RBPlaylistManager` instance.

###### RB.Shell:playlists-file

The path to the playlist file.

###### RB.Shell:prefs

The `RBShellPreferences` instance.

###### RB.Shell:queue-source

The play queue source.

###### RB.Shell:removable-media-manager

The `RBRemovableMediaManager` instance.

###### RB.Shell:rhythmdb-file

The path to the rhythmdb file.

###### RB.Shell:selected-page

The currently selected display page.

###### RB.Shell:shell-player

The `RBShellPlayer` instance.

###### RB.Shell:task-list

The `RBTaskList` instance.

###### RB.Shell:track-transfer-queue

The `RBTrackTransferQueue` instance.

###### RB.Shell:visibility

Whether the main window is currently visible.

###### RB.Shell:window

The main Rhythmbox window.

#### Signals

###### RB.Shell::create-song-info

Emitted when creating a new `RBSongInfo` window. Signal handlers can add pages to the song info window notebook to display additional information.

###### RB.Shell::notify-custom

Emitted when a custom notification should be displayed to the user.

###### RB.Shell::notify-playing-entry

Emitted when a notification should be displayed showing the current playing entry.

###### RB.Shell::visibility-changed

Emitted after the visibility of the main Rhythmbox window has changed.

###### RB.Shell::visibility-changing

Emitted before the visibility of the main window changes. The return value overrides the visibility setting. If multiple signal handlers are attached, the last one wins.

##### Signals inherited from GObject (1)

###### GObject::notify

The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.

#### Class structure

    struct RBShellClass {
      GtkApplicationClass parent_class;
      gboolean (* visibility_changing) (
        RBShell* shell,
        gboolean initial,
        gboolean visible
      );
      void (* visibility_changed) (
        RBShell* shell,
        gboolean visible
      );
      void (* create_song_info) (
        RBShell* shell,
        RBSongInfo* song_info,
        gboolean multi
      );
      void (* removable_media_scan_finished) (
        RBShell* shell
      );
      void (* database_load_complete) (
        RBShell* shell
      );

    }

No description available.

###### Class members

`parent_class: GtkApplicationClass`

  No description available.

`visibility_changing: gboolean (* visibility_changing) ( RBShell* shell, gboolean initial, gboolean visible )`

  No description available.

`visibility_changed: void (* visibility_changed) ( RBShell* shell, gboolean visible )`

  No description available.

`create_song_info: void (* create_song_info) ( RBShell* shell, RBSongInfo* song_info, gboolean multi )`

  No description available.

`removable_media_scan_finished: void (* removable_media_scan_finished) ( RBShell* shell )`

  No description available.

`database_load_complete: void (* database_load_complete) ( RBShell* shell )`

  No description available.

#### Virtual methods

###### RB.ShellClass.create_song_info

No description available.

###### RB.ShellClass.database_load_complete

No description available.

###### RB.ShellClass.removable_media_scan_finished

No description available.

###### RB.ShellClass.visibility_changed

No description available.

###### RB.ShellClass.visibility_changing

No description available.