Evan Carroll > PulseAudio-0.06 > PulseAudio

Download:
PulseAudio-0.06.tar.gz

Dependencies

Annotate this POD

Website

CPAN RT

Open  0
View/Report Bugs
Module Version: 0.06   Source   Latest Release: PulseAudio-0.07

NAME ^

PulseAudio - An object oriented interface to pacmd.

DESCRIPTION ^

This is a suite of tools that should make scripting PulseAudio simplier. Please see further docs in PulseAudio::Backend::Utilities, PulseAudio::Sink, PulseAudio::Source.

SYNOPSIS ^

This module provides an object oriented interface into the Pulse configuration pacmd.

        use PulseAudio;
        $pa = PulseAudio->new;
        
        $pa = PulseAudio->new( pulse_server => '192.168.1.102' );
        
        ## Return the first sink where {properties}{device.bus_path} eq pci-0000:00:1b.0
        $sink = $pa->get_sink_by( ['properties', 'device.bus_path'] => 'pci-0000:00:1b.0' )

        ## But alas, sources have monitors and generic sound interfaces at the same bus_path!
        $sink = $pa->get_sink_by(
                ['properties', 'device.bus_path'] => 'pci-0000:00:1b.0'
                , ['properties', 'device.class']  => 'sound'
        )
        
        $sink = $pa->get_sink_by_index(5);
        
        $sink->set_sink_volume('50%');
        
        # Execute VLC with the B<PULSE_SINK> environmental variable set the sink's index.
        $sink->exec( '/usr/bin/vlc' );
        
        ## Perhaps make a Skype conference call using a specific hardware conf?
        $pa->exec(
                sink     => $sink
                , source => $source
                , prog   => '/usr/bin/skype'
                , args   => ['--callto','btrlistener021']
        );
        
        # Set the sinks's volume
        $sink->set_sink_volume( 0x10000 ); # Sets volume to max;
        $sink->set_sink_volume( 'MAX' ); # Sets volume to max;

METHODS ^

The get_by methods take alist of array refs a value and return the first object that matches. The array-ref corresponds to the depth and location of the value to check against. For more selectivity, add more than key value pairs; see the SYNOPSIS for an example. Interally, smart-match is used -- feel free to send regex $values.

get_card_by( $arrayRef, $value [, $arrayRef, $value]* )
get_sink_by( $arrayRef, $value [, $arrayRef, $value]* )
get_source_by( $arrayRef, $value [, $arrayRef, $value]* )
get_source_output_by( $arrayRef, $value [, $arrayRef, $value]* )
get_sink_input_by( $arrayRef, $value [, $arrayRef, $value]* )
get_sample_by( $arrayRef, $value [, $arrayRef, $value]* )
get_client_by( $arrayRef, $value [, $arrayRef, $value]* )
get_module_by( $arrayRef, $value [, $arrayRef, $value]* )

Retreive the default.

get_default_sink()
get_default_source()

Return the specific requested object by unique id 'index' (or name in the case of PulseAudio::Samples).

get_card_by_index( $idx )
get_sink_by_index( $idx )
get_source_by_index( $idx )
get_source_output_by_index( $idx )
get_sink_input_by_index( $idx )
get_sample_by_name( $name )
get_client_by_index( $idx )
get_module_by_index( $idx )

SEE ALSO ^

DO READ: Commands (doc/Commands.pod)

PulseAudio::Backend::Utilities
PulseAudio::Sink
PulseAudio::Source
PulseAudio::SinkInput
PulseAudio::SourceOutput
PulseAudio::Module
PulseAudio::Sample
PulseAudio::Client
PulseAudio::Card

SUPPORT ^

You can find documentation for this module with the perldoc command.

    perldoc PulseAudio

You can also look for information at:

LICENSE AND COPYRIGHT ^

Copyright 2012 Evan Carroll.

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.

syntax highlighting: