<?php

namespace App\Media\QuickTime\Atoms;

use Illuminate\Support\Collection;
use Leenooks\Traits\ObjectIssetFix;

use App\Media\QuickTime\Atom;
use App\Media\QuickTime\Atoms\moov\trak\tkhd;

abstract class SubAtom extends Atom
{
	use ObjectIssetFix;

	protected const atom_record = [
		'version'=>['c',1],
		'flags'=>['a3',3],
		'count'=>['N',4],
	];

	public function __get(string $key): mixed
	{
		switch ($key) {
			// Height is in the moov/trak/tkhd atom
			case 'height':
			// Width is in the moov/trak/tkhd atom
			case 'width':
				$atom = $this->find_atoms(tkhd::class,1);

				return $atom->{$key};

			default:
				throw new \Exception('Unknown key: '.$key);
		}
	}
}