## rb-shell rb-shell — |

## Synopsis

    enum        RBShellError;
    #define     RB_SHELL_ERROR
    GQuark      rb_shell_error_quark            (void);
    typedef     RBShellPrivate;
    RBShell*    rb_shell_new                    (int argc,
                                                 char **argv,
                                                 gboolean no_registration,
                                                 gboolean no_update,
                                                 gboolean dry_run,
                                                 char *rhythmdb);
    gboolean    rb_shell_present                (RBShell *shell,
                                                 guint32 timestamp,
                                                 GError **error);
    gint        rb_shell_guess_type_for_uri     (RBShell *shell,
                                                 const char *uri);
    gboolean    rb_shell_add_uri                (RBShell *shell,
                                                 gint entry_type,
                                                 const char *uri,
                                                 const char *title,
                                                 const char *genre,
                                                 GError **error);
    gboolean    rb_shell_load_uri               (RBShell *shell,
                                                 const char *uri,
                                                 gboolean play,
                                                 GError **error);
    GObject*    rb_shell_get_player             (RBShell *shell);
    const char* rb_shell_get_player_path        (RBShell *shell);
    void        rb_shell_toggle_visibility      (RBShell *shell);
    gboolean    rb_shell_get_song_properties    (RBShell *shell,
                                                 const char *uri,
                                                 GHashTable **properties,
                                                 GError **error);
    gboolean    rb_shell_set_song_property      (RBShell *shell,
                                                 const char *uri,
                                                 const char *propname,
                                                 const GValue *value,
                                                 GError **error);
    void        rb_shell_hidden_notify          (RBShell *shell,
                                                 guint timeout,
                                                 const char *primary,
                                                 GtkWidget *icon,
                                                 const char *secondary);
    void        rb_shell_construct              (RBShell *shell);
    void        rb_shell_register_entry_type_for_source
                                                (RBShell *shell,
                                                 RBSource *source,
                                                 RhythmDBEntryType type);
    void        rb_shell_append_source          (RBShell *shell,
                                                 RBSource *source,
                                                 RBSource *parent);

## Description

## Details

### enum RBShellError

    typedef enum
    {
    	RB_SHELL_ERROR_NO_SUCH_URI,
    	RB_SHELL_ERROR_NO_SUCH_PROPERTY,
    	RB_SHELL_ERROR_IMMUTABLE_PROPERTY,
    	RB_SHELL_ERROR_INVALID_PROPERTY_TYPE
    } RBShellError;

### RB_SHELL_ERROR

    #define RB_SHELL_ERROR rb_shell_error_quark ()

### rb_shell_error_quark ()

    GQuark      rb_shell_error_quark            (void);

Returns : |

### RBShellPrivate

    typedef struct RBShellPrivate RBShellPrivate;

### rb_shell_new ()

    RBShell*    rb_shell_new                    (int argc,
                                                 char **argv,
                                                 gboolean no_registration,
                                                 gboolean no_update,
                                                 gboolean dry_run,
                                                 char *rhythmdb);

`argc` : |
`argv` : |
`no_registration` : |
`no_update` : |
`dry_run` : |
`rhythmdb` : |
Returns : |

### rb_shell_present ()

    gboolean    rb_shell_present                (RBShell *shell,
                                                 guint32 timestamp,
                                                 GError **error);

`shell` : |
`timestamp` : |
`error` : |
Returns : |

### rb_shell_guess_type_for_uri ()

    gint        rb_shell_guess_type_for_uri     (RBShell *shell,
                                                 const char *uri);

`shell` : |
`uri` : |
Returns : |

### rb_shell_add_uri ()

    gboolean    rb_shell_add_uri                (RBShell *shell,
                                                 gint entry_type,
                                                 const char *uri,
                                                 const char *title,
                                                 const char *genre,
                                                 GError **error);

`shell` : |
`entry_type` : |
`uri` : |
`title` : |
`genre` : |
`error` : |
Returns : |

### rb_shell_load_uri ()

    gboolean    rb_shell_load_uri               (RBShell *shell,
                                                 const char *uri,
                                                 gboolean play,
                                                 GError **error);

`shell` : |
`uri` : |
`play` : |
`error` : |
Returns : |

### rb_shell_get_player ()

    GObject*    rb_shell_get_player             (RBShell *shell);

`shell` : |
Returns : |

### rb_shell_get_player_path ()

    const char* rb_shell_get_player_path        (RBShell *shell);

`shell` : |
Returns : |

### rb_shell_toggle_visibility ()

    void        rb_shell_toggle_visibility      (RBShell *shell);

`shell` : |

### rb_shell_get_song_properties ()

    gboolean    rb_shell_get_song_properties    (RBShell *shell,
                                                 const char *uri,
                                                 GHashTable **properties,
                                                 GError **error);

`shell` : |
`uri` : |
`properties` : |
`error` : |
Returns : |

### rb_shell_set_song_property ()

    gboolean    rb_shell_set_song_property      (RBShell *shell,
                                                 const char *uri,
                                                 const char *propname,
                                                 const GValue *value,
                                                 GError **error);

`shell` : |
`uri` : |
`propname` : |
`value` : |
`error` : |
Returns : |

### rb_shell_hidden_notify ()

    void        rb_shell_hidden_notify          (RBShell *shell,
                                                 guint timeout,
                                                 const char *primary,
                                                 GtkWidget *icon,
                                                 const char *secondary);

`shell` : |
`timeout` : |
`primary` : |
`icon` : |
`secondary` : |

### rb_shell_construct ()

    void        rb_shell_construct              (RBShell *shell);

`shell` : |

### rb_shell_register_entry_type_for_source ()

    void        rb_shell_register_entry_type_for_source
                                                (RBShell *shell,
                                                 RBSource *source,
                                                 RhythmDBEntryType type);

`shell` : |
`source` : |
`type` : |

### rb_shell_append_source ()

    void        rb_shell_append_source          (RBShell *shell,
                                                 RBSource *source,
                                                 RBSource *parent);

`shell` : |
`source` : |
`parent` : |