Completed
Push — master ( abe4a2...2abbc3 )
by Sam
05:40
created

Input::getFriendlyName()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 4
rs 10
cc 1
eloc 2
nc 1
nop 0
1
<?php
2
3
namespace Jalle19\StatusManager\Database;
4
5
use Jalle19\StatusManager\Database\Base\Input as BaseInput;
6
use Jalle19\tvheadend\model\InputStatus;
7
8
/**
9
 * @package   Jalle19\StatusManager\Database
10
 * @copyright Copyright &copy; Sam Stenvall 2015-
11
 * @license   https://www.gnu.org/licenses/gpl.html The GNU General Public License v2.0
12
 */
13
class Input extends BaseInput
14
{
15
16
	/**
17
	 * @param InputStatus $inputStatus
18
	 *
19
	 * @return $this|Input
20
	 */
21
	public function setFromInputStatus(InputStatus $inputStatus)
22
	{
23
		$this->setPrimaryKey($inputStatus->uuid);
24
25
		return $this->setInput($inputStatus->input)
26
		            ->setWeight($inputStatus->weight)
27
		            ->setNetwork(self::parseNetwork($inputStatus))
28
		            ->setMux(self::parseMux($inputStatus));
29
	}
30
31
32
	/**
33
	 * @return string
34
	 */
35
	public function getFriendlyName()
36
	{
37
		return $this->getNetwork() . '/' . $this->getMux();
38
	}
39
40
41
	/**
42
	 * @param InputStatus $inputStatus
43
	 *
44
	 * @return string
45
	 */
46
	private static function parseMux(InputStatus $inputStatus)
47
	{
48
		$parts = self::getStreamParts($inputStatus);
49
50
		return $parts[0];
51
	}
52
53
54
	/**
55
	 * @param InputStatus $inputStatus
56
	 *
57
	 * @return string
58
	 */
59
	private static function parseNetwork(InputStatus $inputStatus)
60
	{
61
		$parts = self::getStreamParts($inputStatus);
62
63
		return $parts[1];
64
	}
65
66
67
	/**
68
	 * @param InputStatus $inputStatus
69
	 *
70
	 * @return array
71
	 */
72
	private static function getStreamParts(InputStatus $inputStatus)
73
	{
74
		return explode(' in ', $inputStatus->stream);
75
	}
76
77
}
78