## RBSource RBSource |

## Synopsis

    enum                RBSourceEOFType;
                        RBSourcePrivate;
    gboolean            (*RBSourceFeatureFunc)              (RBSource *source);
    void                rb_source_notify_filter_changed     (RBSource *source);
    void                rb_source_notify_status_changed     (RBSource *status);
    void                rb_source_update_play_statistics    (RBSource *source,
                                                             RhythmDB *db,
                                                             RhythmDBEntry *entry);
    void                rb_source_get_status                (RBSource *source,
                                                             char **text,
                                                             char **progress_text,
                                                             float *progress);
    char*               rb_source_get_browser_key           (RBSource *source);
    RBEntryView*        rb_source_get_entry_view            (RBSource *source);
    gboolean            rb_source_can_rename                (RBSource *source);
    gboolean            rb_source_can_search                (RBSource *source);
    void                rb_source_search                    (RBSource *source,
                                                             const char *text);
    void                rb_source_reset_filters             (RBSource *source);
    GtkWidget*          rb_source_get_config_widget         (RBSource *source,
                                                             RBShellPreferences *prefs);
    gboolean            rb_source_can_cut                   (RBSource *source);
    gboolean            rb_source_can_delete                (RBSource *source);
    gboolean            rb_source_can_copy                  (RBSource *source);
    GList*              rb_source_cut                       (RBSource *source);
    GList*              rb_source_copy                      (RBSource *source);
    void                rb_source_paste                     (RBSource *source,
                                                             GList *entries);
    void                rb_source_delete                    (RBSource *source);
    void                rb_source_song_properties           (RBSource *source);
    gboolean            rb_source_try_playlist              (RBSource *source);
    gboolean            rb_source_can_pause                 (RBSource *source);
    RBSourceEOFType     rb_source_handle_eos                (RBSource *source);
    gboolean            rb_source_receive_drag              (RBSource *source,
                                                             GtkSelectionData *data);
    gboolean            rb_source_show_popup                (RBSource *source);
    void                rb_source_delete_thyself            (RBSource *source);
    void                rb_source_activate                  (RBSource *source);
    void                rb_source_deactivate                (RBSource *source);

## Description

## Details

### enum RBSourceEOFType

    typedef enum {
    	RB_SOURCE_EOF_ERROR,
    	RB_SOURCE_EOF_STOP,
    	RB_SOURCE_EOF_RETRY,
    	RB_SOURCE_EOF_NEXT,
    } RBSourceEOFType;

### RBSourcePrivate

    typedef struct _RBSourcePrivate RBSourcePrivate;

### RBSourceFeatureFunc ()

    gboolean            (*RBSourceFeatureFunc)              (RBSource *source);

`source` : |
Returns : |

### rb_source_notify_filter_changed ()

    void                rb_source_notify_filter_changed     (RBSource *source);

`source` : |

### rb_source_notify_status_changed ()

    void                rb_source_notify_status_changed     (RBSource *status);

`status` : |

### rb_source_update_play_statistics ()

    void                rb_source_update_play_statistics    (RBSource *source,
                                                             RhythmDB *db,
                                                             RhythmDBEntry *entry);

`source` : |
`db` : |
`entry` : |

### rb_source_get_status ()

    void                rb_source_get_status                (RBSource *source,
                                                             char **text,
                                                             char **progress_text,
                                                             float *progress);

`source` : |
`text` : | holds the returned status text (allocated)
`progress_text` : | holds the returned text for the progress bar (allocated)
`progress` : | holds the progress value

### rb_source_get_browser_key ()

    char*               rb_source_get_browser_key           (RBSource *source);

`source` : |
Returns : |

### rb_source_get_entry_view ()

    RBEntryView*        rb_source_get_entry_view            (RBSource *source);

`source` : |
Returns : |

### rb_source_can_rename ()

    gboolean            rb_source_can_rename                (RBSource *source);

`source` : |
Returns : |

### rb_source_can_search ()

    gboolean            rb_source_can_search                (RBSource *source);

`source` : |
Returns : |

### rb_source_search ()

    void                rb_source_search                    (RBSource *source,
                                                             const char *text);

`source` : |
`text` : |

### rb_source_reset_filters ()

    void                rb_source_reset_filters             (RBSource *source);

`source` : |

### rb_source_get_config_widget ()

    GtkWidget*          rb_source_get_config_widget         (RBSource *source,
                                                             RBShellPreferences *prefs);

`source` : |
`prefs` : |
Returns : |

### rb_source_can_cut ()

    gboolean            rb_source_can_cut                   (RBSource *source);

`source` : |
Returns : |

### rb_source_can_delete ()

    gboolean            rb_source_can_delete                (RBSource *source);

`source` : |
Returns : |

### rb_source_can_copy ()

    gboolean            rb_source_can_copy                  (RBSource *source);

`source` : |
Returns : |

### rb_source_cut ()

    GList*              rb_source_cut                       (RBSource *source);

`source` : |
Returns : |

### rb_source_copy ()

    GList*              rb_source_copy                      (RBSource *source);

`source` : |
Returns : |

### rb_source_paste ()

    void                rb_source_paste                     (RBSource *source,
                                                             GList *entries);

`source` : |
`entries` : |

### rb_source_delete ()

    void                rb_source_delete                    (RBSource *source);

`source` : |

### rb_source_song_properties ()

    void                rb_source_song_properties           (RBSource *source);

`source` : |

### rb_source_try_playlist ()

    gboolean            rb_source_try_playlist              (RBSource *source);

`source` : |
Returns : |

### rb_source_can_pause ()

    gboolean            rb_source_can_pause                 (RBSource *source);

`source` : |
Returns : |

### rb_source_handle_eos ()

    RBSourceEOFType     rb_source_handle_eos                (RBSource *source);

`source` : |
Returns : |

### rb_source_receive_drag ()

    gboolean            rb_source_receive_drag              (RBSource *source,
                                                             GtkSelectionData *data);

`source` : |
`data` : |
Returns : |

### rb_source_show_popup ()

    gboolean            rb_source_show_popup                (RBSource *source);

`source` : |
Returns : |

### rb_source_delete_thyself ()

    void                rb_source_delete_thyself            (RBSource *source);

`source` : |

### rb_source_activate ()

    void                rb_source_activate                  (RBSource *source);

`source` : |

### rb_source_deactivate ()

    void                rb_source_deactivate                (RBSource *source);

`source` : |