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

#include <StreamWriter.h>

Detailed Description

The StreamWriter class. This class is the interface between StreamDataSender and StreamServer. It watches the client socket and spreads data to its client.

Public Types

enum  Type : quint8 {
  Undefined,
  Standard,
  Invalid,
  Streaming
}
 

Signals

void sig_new_connection (const QString &ip)
 
void sig_disconnected (StreamWriter *sw)
 

Public Member Functions

 StreamWriter (QTcpSocket *socket, const QString &ip, const MetaData &md)
 StreamWriter. More...
 
QString get_ip () const
 get client ip address More...
 
int get_sd () const
 get raw socket descriptor More...
 
Type get_type () const
 get connection type More...
 
void change_track (const MetaData &md)
 send new icy data to clients, and send new metadata to remote controls. More...
 
bool send_playlist ()
 Send a m3u playlist (see StreamDataSender) More...
 
bool send_favicon ()
 Send the http favicon (see StreamDataSender) More...
 
bool send_metadata ()
 Send track information (see StreamDataSender) More...
 
bool send_bg ()
 Send website background (see StreamDataSender) More...
 
bool send_html5 ()
 send a html5 website (see StreamDataSender) More...
 
bool send_header (bool reject)
 send a appropriate header based on the type of request (see StreamDataSender) More...
 
StreamHttpParser::HttpAnswer parse_message ()
 
void disconnect ()
 disconnect a client socket
 
void dismiss ()
 stop sending sound over the client socket
 
void new_audio_data (const uchar *data, quint64 size) override
 new audio data has arrived and has to be forwarded to the socket More...
 

Protected Attributes

Settings_settings =nullptr
 

Constructor & Destructor Documentation

StreamWriter::StreamWriter ( QTcpSocket *  socket,
const QString &  ip,
const MetaData md 
)

StreamWriter.

Parameters
socket
ip
md

Member Function Documentation

void StreamWriter::change_track ( const MetaData md)

send new icy data to clients, and send new metadata to remote controls.

Parameters
mdTrack structure
QString StreamWriter::get_ip ( ) const

get client ip address

Returns
int StreamWriter::get_sd ( ) const

get raw socket descriptor

Returns
Type StreamWriter::get_type ( ) const

get connection type

Returns
void StreamWriter::new_audio_data ( const uchar *  data,
quint64  size 
)
overridevirtual

new audio data has arrived and has to be forwarded to the socket

Parameters
data
size

Implements RawSoundReceiverInterface.

bool StreamWriter::send_bg ( )

Send website background (see StreamDataSender)

Returns
bool StreamWriter::send_favicon ( )

Send the http favicon (see StreamDataSender)

Returns
bool StreamWriter::send_header ( bool  reject)

send a appropriate header based on the type of request (see StreamDataSender)

Parameters
rejectif true, a reject header is sent.
Returns
bool StreamWriter::send_html5 ( )

send a html5 website (see StreamDataSender)

Returns
bool StreamWriter::send_metadata ( )

Send track information (see StreamDataSender)

Returns
bool StreamWriter::send_playlist ( )

Send a m3u playlist (see StreamDataSender)

Returns
Inheritance diagram for StreamWriter:
RawSoundReceiverInterface SayonaraClass