php-pulseaudio/src/Sink/SinkList.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);
}
}