libpsynth 0.2.1
Namespaces | Classes | Enumerations | Functions | Variables
psynth::io Namespace Reference

Namespaces

namespace  detail

Classes

struct  alsa_is_supported
class  alsa_output
class  alsa_raw_output
class  async_base
class  buffered_input_adapter
class  buffered_async_input_adapter
class  buffered_async_input
class  buffered_input
class  buffered_output_adapter
class  buffered_output
class  buffered_async_output_adapter
class  buffered_async_output
class  caching_file_input_adapter
struct  file_is_supported
class  file_output_base
class  file_input_base
class  dummy_file_input
class  file_input
class  file_output
class  input
class  dummy_input
 Dummy input class. More...
class  async_input
class  dummy_async_input
 Dummy input class. More...
struct  jack_is_supported
class  jack_output
class  jack_raw_output
struct  oss_is_supported
class  oss_output
class  oss_raw_output
class  output
 Output device base abstract class. More...
class  dummy_output
 Dummy output class. More...
class  async_output
 An output device with asynchronous operation base class. More...
class  dummy_async_output
 Dummy output class. More...
class  thread_async

Enumerations

enum  async_state { idle, running }
enum  file_fmt {
  wav = 0, aiff, au, ogg,
  flac, num_formats
}
 Supported file formats. More...
enum  seek_dir { beg = 0, cur, end }
 Seek position. More...

Functions

 PSYNTH_DEFINE_ERROR (alsa_error)
 PSYNTH_DEFINE_ERROR_WHAT (alsa_open_error,"Can not open device.")
 PSYNTH_DEFINE_ERROR_WHAT (alsa_start_error,"Can not start device.")
 PSYNTH_DEFINE_ERROR_WHAT (alsa_param_error,"Invalid parameter.")
 PSYNTH_DECLARE_ERROR (error, alsa_error)
 PSYNTH_DECLARE_ERROR (alsa_error, alsa_open_error)
 PSYNTH_DECLARE_ERROR (alsa_error, alsa_start_error)
 PSYNTH_DECLARE_ERROR (alsa_error, alsa_param_error)
 PSYNTH_DEFINE_ERROR (async_error)
 PSYNTH_DEFINE_ERROR_WHAT (async_not_running_error,"Asynchronous I/O device is not running.")
 PSYNTH_DEFINE_ERROR_WHAT (async_not_idle_error,"Asynchronous I/O device is not idle.")
 PSYNTH_DECLARE_ERROR (error, async_error)
 PSYNTH_DECLARE_ERROR (async_error, async_not_running_error)
 PSYNTH_DECLARE_ERROR (async_error, async_not_idle_error)
template<class Range , class InputPtr >
std::enable_if
< !detail::is_async_ptr
< InputPtr >::value,
buffered_input_adapter< Range,
InputPtr > >::type 
make_buffered_input (InputPtr in)
template<class Range , class OutputPtr >
std::enable_if
< !detail::is_async_ptr
< OutputPtr >::value,
buffered_output_adapter< Range,
OutputPtr > >::type 
make_buffered_output (OutputPtr out)
 PSYNTH_DEFINE_ERROR (error)
 PSYNTH_DECLARE_ERROR (base::error_base, error)
 PSYNTH_DEFINE_ERROR (file_error)
 PSYNTH_DEFINE_ERROR_WHAT (file_open_error,"Error while opening file.")
 PSYNTH_DEFINE_ERROR_WHAT (file_param_error,"Invalid filefile parameter.")
 PSYNTH_DEFINE_ERROR_WHAT (file_seek_error,"Error while seeking file.")
 PSYNTH_DECLARE_ERROR (error, file_error)
 PSYNTH_DECLARE_ERROR (file_error, file_open_error)
 PSYNTH_DECLARE_ERROR (file_error, file_param_error)
 PSYNTH_DECLARE_ERROR (file_error, file_seek_error)
 PSYNTH_DECLARE_SHARED_TEMPLATE (input, class)
 PSYNTH_DECLARE_SHARED_TEMPLATE (async_input, class)
 PSYNTH_DECLARE_SHARED_TEMPLATE (dummy_input, class)
 PSYNTH_DECLARE_SHARED_TEMPLATE (dummy_async_input, class)
 PSYNTH_DECLARE_SHARED_TEMPLATE (buffered_input, class, class)
 PSYNTH_DECLARE_SHARED_TEMPLATE (buffered_input_adapter, class, class)
 PSYNTH_DEFINE_ERROR (jack_error)
 PSYNTH_DEFINE_ERROR_WHAT (jack_open_error,"Could not connect to Jack.")
 PSYNTH_DEFINE_ERROR_WHAT (jack_param_error,"Invalid jack param.")
 PSYNTH_DECLARE_ERROR (error, jack_error)
 PSYNTH_DECLARE_ERROR (jack_error, jack_open_error)
 PSYNTH_DECLARE_ERROR (jack_error, jack_param_error)
 PSYNTH_DEFINE_ERROR (oss_error)
 PSYNTH_DEFINE_ERROR_WHAT (oss_open_error,"Error while opening OSS device.")
 PSYNTH_DEFINE_ERROR_WHAT (oss_param_error,"Invalid parameter for OSS device.")
 PSYNTH_DECLARE_ERROR (error, oss_error)
 PSYNTH_DECLARE_ERROR (oss_error, oss_open_error)
 PSYNTH_DECLARE_ERROR (oss_error, oss_param_error)
template<typename RawOutput , typename Range >
std::size_t put_on_raw (RawOutput &out, const Range &data)
 Utility function to implement output devices in term of a raw output device.
 PSYNTH_DECLARE_SHARED_TEMPLATE (output, class)
 PSYNTH_DECLARE_SHARED_TEMPLATE (async_output, class)
 PSYNTH_DECLARE_SHARED_TEMPLATE (dummy_output, class)
 PSYNTH_DECLARE_SHARED_TEMPLATE (dummy_async_output, class)
 PSYNTH_DECLARE_SHARED_TEMPLATE (buffered_output, class, class)
 PSYNTH_DECLARE_SHARED_TEMPLATE (buffered_async_output, class, class)
 PSYNTH_DECLARE_SHARED_TEMPLATE (buffered_output_adapter, class, class)
 PSYNTH_DECLARE_SHARED_TEMPLATE (buffered_async_output_adapter, class, class)

Variables

const std::size_t default_input_buffer_size = 1024
const std::size_t default_output_buffer_size = 1024

Enumeration Type Documentation

Enumerator:
idle 
running 

Supported file formats.

Todo:

Fill with the rest of sndfile formats.

Implement MP3 support. That would require some refactoring.

Enumerator:
wav 
aiff 
au 
ogg 
flac 
num_formats 

Seek position.

Enumerator:
beg 
cur 
end 

Function Documentation

template<class Range , class InputPtr >
std::enable_if< detail::is_async_ptr< InputPtr >::value, buffered_async_input_adapter< Range, InputPtr > >::type psynth::io::make_buffered_input ( InputPtr  in)
template<class Range , class OutputPtr >
std::enable_if< detail::is_async_ptr< OutputPtr >::value, buffered_async_output_adapter< Range, OutputPtr > >::type psynth::io::make_buffered_output ( OutputPtr  out)
psynth::io::PSYNTH_DECLARE_ERROR ( alsa_error  ,
alsa_param_error   
)
psynth::io::PSYNTH_DECLARE_ERROR ( base::error_base  ,
error   
)
psynth::io::PSYNTH_DECLARE_ERROR ( error  ,
jack_error   
)
psynth::io::PSYNTH_DECLARE_ERROR ( jack_error  ,
jack_open_error   
)
psynth::io::PSYNTH_DECLARE_ERROR ( jack_error  ,
jack_param_error   
)
psynth::io::PSYNTH_DECLARE_ERROR ( error  ,
file_error   
)
psynth::io::PSYNTH_DECLARE_ERROR ( error  ,
oss_error   
)
psynth::io::PSYNTH_DECLARE_ERROR ( oss_error  ,
oss_open_error   
)
psynth::io::PSYNTH_DECLARE_ERROR ( oss_error  ,
oss_param_error   
)
psynth::io::PSYNTH_DECLARE_ERROR ( error  ,
alsa_error   
)
psynth::io::PSYNTH_DECLARE_ERROR ( error  ,
async_error   
)
psynth::io::PSYNTH_DECLARE_ERROR ( file_error  ,
file_open_error   
)
psynth::io::PSYNTH_DECLARE_ERROR ( file_error  ,
file_param_error   
)
psynth::io::PSYNTH_DECLARE_ERROR ( async_error  ,
async_not_running_error   
)
psynth::io::PSYNTH_DECLARE_ERROR ( file_error  ,
file_seek_error   
)
psynth::io::PSYNTH_DECLARE_ERROR ( alsa_error  ,
alsa_open_error   
)
psynth::io::PSYNTH_DECLARE_ERROR ( async_error  ,
async_not_idle_error   
)
psynth::io::PSYNTH_DECLARE_ERROR ( alsa_error  ,
alsa_start_error   
)
psynth::io::PSYNTH_DECLARE_SHARED_TEMPLATE ( dummy_async_output  ,
class   
)
psynth::io::PSYNTH_DECLARE_SHARED_TEMPLATE ( buffered_input_adapter  ,
class  ,
class   
)
psynth::io::PSYNTH_DECLARE_SHARED_TEMPLATE ( buffered_output  ,
class  ,
class   
)
psynth::io::PSYNTH_DECLARE_SHARED_TEMPLATE ( buffered_input  ,
class  ,
class   
)
psynth::io::PSYNTH_DECLARE_SHARED_TEMPLATE ( dummy_async_input  ,
class   
)
psynth::io::PSYNTH_DECLARE_SHARED_TEMPLATE ( buffered_output_adapter  ,
class  ,
class   
)
psynth::io::PSYNTH_DECLARE_SHARED_TEMPLATE ( buffered_async_output  ,
class  ,
class   
)
psynth::io::PSYNTH_DECLARE_SHARED_TEMPLATE ( async_output  ,
class   
)
psynth::io::PSYNTH_DECLARE_SHARED_TEMPLATE ( output  ,
class   
)
psynth::io::PSYNTH_DECLARE_SHARED_TEMPLATE ( dummy_output  ,
class   
)
psynth::io::PSYNTH_DECLARE_SHARED_TEMPLATE ( input  ,
class   
)
psynth::io::PSYNTH_DECLARE_SHARED_TEMPLATE ( async_input  ,
class   
)
psynth::io::PSYNTH_DECLARE_SHARED_TEMPLATE ( dummy_input  ,
class   
)
psynth::io::PSYNTH_DECLARE_SHARED_TEMPLATE ( buffered_async_output_adapter  ,
class  ,
class   
)
psynth::io::PSYNTH_DEFINE_ERROR ( async_error  )
psynth::io::PSYNTH_DEFINE_ERROR ( alsa_error  )
psynth::io::PSYNTH_DEFINE_ERROR ( jack_error  )
psynth::io::PSYNTH_DEFINE_ERROR ( error  )
psynth::io::PSYNTH_DEFINE_ERROR ( file_error  )
psynth::io::PSYNTH_DEFINE_ERROR ( oss_error  )
psynth::io::PSYNTH_DEFINE_ERROR_WHAT ( oss_param_error  ,
"Invalid parameter for OSS device."   
)
psynth::io::PSYNTH_DEFINE_ERROR_WHAT ( jack_param_error  ,
"Invalid jack param."   
)
psynth::io::PSYNTH_DEFINE_ERROR_WHAT ( async_not_running_error  ,
"Asynchronous I/O device is not running."   
)
psynth::io::PSYNTH_DEFINE_ERROR_WHAT ( alsa_open_error  ,
"Can not open device."   
)
psynth::io::PSYNTH_DEFINE_ERROR_WHAT ( file_open_error  ,
"Error while opening file."   
)
psynth::io::PSYNTH_DEFINE_ERROR_WHAT ( alsa_param_error  ,
"Invalid parameter."   
)
psynth::io::PSYNTH_DEFINE_ERROR_WHAT ( jack_open_error  ,
"Could not connect to Jack."   
)
psynth::io::PSYNTH_DEFINE_ERROR_WHAT ( file_param_error  ,
"Invalid filefile parameter."   
)
psynth::io::PSYNTH_DEFINE_ERROR_WHAT ( alsa_start_error  ,
"Can not start device."   
)
psynth::io::PSYNTH_DEFINE_ERROR_WHAT ( oss_open_error  ,
"Error while opening OSS device."   
)
psynth::io::PSYNTH_DEFINE_ERROR_WHAT ( file_seek_error  ,
"Error while seeking file."   
)
psynth::io::PSYNTH_DEFINE_ERROR_WHAT ( async_not_idle_error  ,
"Asynchronous I/O device is not idle."   
)
template<typename RawOutput , typename Range >
std::size_t psynth::io::put_on_raw ( RawOutput &  out,
const Range &  data 
)

Utility function to implement output devices in term of a raw output device.


Variable Documentation

const std::size_t psynth::io::default_input_buffer_size = 1024
const std::size_t psynth::io::default_output_buffer_size = 1024