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

#include <PlaybackPipeline.h>

Detailed Description

The PlaybackPipeline class.

Public Types

enum  FadeMode : unsigned char {
  NoFading =0,
  FadeIn,
  FadeOut
}
 

Signals

void sig_duration_changed ()
 
void sig_finished ()
 
void sig_about_to_finish (int64_t)
 
void sig_pos_changed_ms (int64_t)
 
void sig_data (uchar *, uint64_t)
 

Public Member Functions

 Playback (Engine::Base *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
 set current volume of pipeline More...
 
double get_current_volume () const override
 get current volume of pipeline More...
 
GstElement * get_source () const override
 
GstElement * get_pipeline () const override
 
void force_about_to_finish ()
 
virtual GstState get_state ()
 
virtual void refresh_position ()
 
virtual void finished ()
 
virtual void check_about_to_finish ()
 
virtual int64_t get_time_to_go () const
 
virtual void set_data (uchar *data, uint64_t size)
 
void update_duration_ms (int64_t duration_ms, GstElement *src)
 
virtual int64_t get_duration_ms () const final
 
virtual int64_t get_source_position_ms () const final
 
virtual int64_t get_pipeline_position_ms () const final
 
bool has_element (GstElement *e) const
 
uint64_t get_fading_time_ms () const
 get fading time in ms More...
 
void fade_in ()
 start to fade in
 
void fade_out ()
 start to fade out
 
bool is_fading_out () const
 
bool is_fading_int () const
 
void fader_timed_out ()
 function is called periodically. This function should not be used from outside TODO
 
void add_element (GstElement *element, GstElement *first_element, GstElement *second_element)
 Add an element between two elements. More...
 
void remove_element (GstElement *element, GstElement *first_element, GstElement *second_element)
 remove an element between two elements More...
 

Public Slots

void play () override
 
void stop () override
 
void set_eq_band (int band_name, int val)
 
void set_streamrecorder_path (const QString &session_path)
 
int64_t seek_rel (double percent, int64_t ref_ns)
 
int64_t seek_abs (int64_t ns)
 
virtual void pause ()
 

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 s_vol_changed ()
 
void s_show_level_changed ()
 
void s_show_spectrum_changed ()
 
void s_mute_changed ()
 
void s_speed_active_changed ()
 
void s_speed_changed ()
 
void s_sink_changed ()
 

Protected Attributes

bool _about_to_finish
 
QString _name
 
GstBus * _bus =nullptr
 
GstElement * _pipeline =nullptr
 
gchar * _uri =nullptr
 
int64_t _duration_ms
 
int64_t _position_source_ms
 
int64_t _position_pipeline_ms
 
Settings_settings =nullptr
 

Member Function Documentation

§ add_element()

void Pipeline::Changeable::add_element ( GstElement *  element,
GstElement *  first_element,
GstElement *  second_element 
)
inherited

Add an element between two elements.

Parameters
elementelement to add
first_elementelement, after which new element is inserted
second_elementelement, before which new element is inserted (may be null)

§ get_current_volume()

double Pipeline::Playback::get_current_volume ( ) const
overridevirtual

get current volume of pipeline

Returns
value between 0 and 1.0

Implements Pipeline::CrossFader.

§ get_fading_time_ms()

uint64_t Pipeline::CrossFader::get_fading_time_ms ( ) const
inherited

get fading time in ms

Returns
fading time in ms

§ remove_element()

void Pipeline::Changeable::remove_element ( GstElement *  element,
GstElement *  first_element,
GstElement *  second_element 
)
inherited

remove an element between two elements

Parameters
elementelement to remove
first_elementelement, after which new element is removed
second_elementelement, before which new element is removed (may be null)

§ set_current_volume()

void Pipeline::Playback::set_current_volume ( double  vol)
overridevirtual

set current volume of pipeline

Parameters
volvalue between 0 and 1.0

Implements Pipeline::CrossFader.

Inheritance diagram for Pipeline::Playback:
Pipeline::Base Pipeline::CrossFader Pipeline::Changeable SayonaraClass