Sayonara Player
Public Types | Signals | Public Member Functions | Public Slots | Protected Member Functions | Protected Slots | Protected Attributes | List of all members
PlaybackPipeline Class Reference

Public Types

enum  FadeMode : quint8 {
  NoFading =0,
  FadeIn,
  FadeOut
}
 

Signals

void sig_duration_changed ()
 
void sig_finished ()
 
void sig_about_to_finish (qint64)
 
void sig_pos_changed_ms (qint64)
 
void sig_data (uchar *, quint64)
 

Public Member Functions

 PlaybackPipeline (Engine *engine, QObject *parent=nullptr)
 
bool init (GstState state=GST_STATE_NULL) override
 
bool set_uri (gchar *uri) override
 
void set_n_sound_receiver (int num_sound_receiver)
 
void set_current_volume (double volume) override
 
double get_current_volume () const override
 
GstElement * get_source () const override
 
GstElement * get_pipeline () const override
 
virtual GstBus * get_bus ()
 
virtual GstState get_state ()
 
virtual void refresh_position ()
 
virtual void refresh_duration ()
 
virtual void finished ()
 
virtual void check_about_to_finish ()
 
virtual qint64 get_time_to_go () const
 
virtual void set_data (uchar *data, quint64 size)
 
virtual gchar * get_uri ()
 
virtual qint64 get_duration_ms () final
 
virtual qint64 get_position_ms () final
 
bool has_element (GstElement *e) const
 
quint64 get_fading_time () const
 
void fade_in ()
 
void fade_out ()
 
void fader_timed_out ()
 
void add_element (GstElement *element, GstElement *first_element, GstElement *second_element)
 
void remove_element (GstElement *element, GstElement *first_element, GstElement *second_element)
 

Public Slots

void play () override
 
void pause () override
 
void stop () override
 
void set_eq_band (const QString &band_name, double val)
 
void set_speed (float speed, double pitch, bool preserve_pitch)
 
void set_streamrecorder_path (const QString &session_path)
 
void change_pitch (int a_frequency)
 
gint64 seek_rel (double percent, gint64 ref_ns)
 
gint64 seek_abs (gint64 ns)
 

Protected Member Functions

bool tee_connect (GstElement *tee, GstPadTemplate *tee_src_pad_template, GstElement *queue, const QString &queue_name)
 
bool create_element (GstElement **elem, const gchar *elem_name, const gchar *name="")
 
void abort_fader ()
 

Protected Slots

void _sl_vol_changed ()
 
void _sl_show_level_changed ()
 
void _sl_show_spectrum_changed ()
 
void _sl_mute_changed ()
 
void _sl_speed_active_changed ()
 
void _sl_speed_changed ()
 

Protected Attributes

QString _name
 
GstBus * _bus =nullptr
 
GstElement * _pipeline =nullptr
 
gchar * _uri =nullptr
 
qint64 _duration_ms
 
qint64 _position_ms
 
Settings_settings =nullptr
 
Inheritance diagram for PlaybackPipeline:
AbstractPipeline CrossFader ChangeablePipeline SayonaraClass