php-pulseaudio/src/Sink/SinkInputList.php

68 lines
1.3 KiB
PHP

<?php
namespace NoccyLabs\PulseAudio\Sink;
use NoccyLabs\PulseAudio\PulseAudio;
use NoccyLabs\PulseAudio\Helper\Pacmd;
use ArrayAccess;
use ArrayIterator;
use IteratorAggregate;
use Countable;
class SinkInputList implements ArrayAccess, IteratorAggregate, Countable
{
protected $inputs = [];
protected $pulse;
public function __construct(PulseAudio $pulse)
{
$this->pulse = $pulse;
$inputs = Pacmd::query("list-sink-inputs");
foreach ($inputs as $index=>$input) {
$this->inputs[] = new SinkInput($pulse, $index, $input);
}
}
public function createSink($name)
{
}
public function destroySink($id)
{}
public function getIterator()
{
return new ArrayIterator($this->inputs);
}
public function offsetGet($key)
{
foreach ($this->inputs as $input) {
if (($input->getIndex() == $key) || ($input->getName()==$key)) {
return $input;
}
}
return null;
}
public function offsetSet($key, $value)
{}
public function offsetUnset($key)
{}
public function offsetExists($key)
{
return array_key_exists($key, $this->inputs);
}
public function count()
{
return count($this->inputs);
}
}