69 lines
1.2 KiB
PHP
69 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace NoccyLabs\PulseAudio\Sink;
|
|
|
|
use NoccyLabs\PulseAudio\Helper\Pacmd;
|
|
use ArrayAccess;
|
|
use IteratorAggregate;
|
|
use ArrayIterator;
|
|
use Countable;
|
|
|
|
class SinkList implements ArrayAccess, IteratorAggregate, Countable
|
|
{
|
|
protected $sinks = [];
|
|
|
|
public function __construct()
|
|
{
|
|
$sinks = Pacmd::query("list-sinks");
|
|
foreach ($sinks as $index=>$sink) {
|
|
$this->sinks[] = new Sink($index, $sink);
|
|
}
|
|
}
|
|
|
|
public function createSink($name)
|
|
{
|
|
|
|
}
|
|
|
|
public function createRecorder($name)
|
|
{
|
|
|
|
}
|
|
|
|
public function destroySink($id)
|
|
{
|
|
|
|
}
|
|
|
|
public function getIterator()
|
|
{
|
|
return new ArrayIterator($this->sinks);
|
|
}
|
|
|
|
public function offsetGet($key)
|
|
{
|
|
if (!array_key_exist($key, $this->sinks)) {
|
|
throw new InvalidArgumentException("No such sink: {$key}");
|
|
}
|
|
return $this->sinks[$key];
|
|
}
|
|
|
|
public function offsetSet($key, $value)
|
|
{}
|
|
|
|
public function offsetUnset($key)
|
|
{}
|
|
|
|
public function offsetExists($key)
|
|
{
|
|
return array_key_exists($key, $this->sinks);
|
|
}
|
|
|
|
public function count()
|
|
{
|
|
return count($this->sinks);
|
|
}
|
|
|
|
}
|
|
|