Add UPnPAV API

This commit is contained in:
alphayax 2016-05-24 22:37:05 +02:00
parent 804eeab549
commit 5411b21a74
6 changed files with 84 additions and 2 deletions

View File

@ -48,6 +48,8 @@ Jusqu'a présent, les fonctionalités suivantes ont été implémentées :
- Dmz
- Port Forwarding
- Incoming Port
- UPnP
- AV
## Utilisation

View File

@ -31,7 +31,7 @@
- UPnP IGD
- ~~LCD~~
- Network Share
- UPnP AV
- ~~UPnP AV~~
- Switch
- Wi-Fi
- ~~System~~

View File

@ -8,7 +8,7 @@ $App = new \alphayax\freebox\utils\Application( 'com.alphayax.freebox.config', '
$App->authorize();
$App->openSession();
// DMZ
// LCD Configuration
$LCDService = new \alphayax\freebox\api\v3\services\config\LCD( $App);
$a = $LCDService->getConfiguration();
var_dump( $a);

14
exemple/config/UPnP.php Normal file
View File

@ -0,0 +1,14 @@
<?php
/// Require Composer AutoLoader
require_once '../../vendor/autoload.php';
/// Define our application
$App = new \alphayax\freebox\utils\Application( 'com.alphayax.freebox.config', 'PHP API Example (Config)', '1.0.0');
$App->authorize();
$App->openSession();
// UPnP AV
$UPnPAvService = new \alphayax\freebox\api\v3\services\config\UPnP\AV( $App);
$UPnPAvConfig = $UPnPAvService->getConfiguration();
print_r( $UPnPAvConfig);

View File

@ -0,0 +1,28 @@
<?php
namespace alphayax\freebox\api\v3\models\UPnP;
use alphayax\freebox\api\v3\Model;
/**
* Class UpnpAvConfig
* @package alphayax\freebox\api\v3\models\UPnP
*/
class UpnpAvConfig extends Model {
/** @var bool : is the UPnP AV service enabled */
protected $enabled;
/**
* @return boolean
*/
public function isEnabled() {
return $this->enabled;
}
/**
* @param boolean $enabled
*/
public function setEnabled( $enabled) {
$this->enabled = $enabled;
}
}

View File

@ -0,0 +1,38 @@
<?php
namespace alphayax\freebox\api\v3\services\config\UPnP;
use alphayax\freebox\api\v3\models\UPnP\UpnpAvConfig;
use alphayax\freebox\api\v3\Service;
/**
* Class AV
* @package alphayax\freebox\api\v3\services\config\UPnP
*/
class AV extends Service {
const API_UPNP_AV_CONFIG = '/api/v3/upnpav/config/';
/**
* Get the current UPnP AV configuration
* @return UpnpAvConfig
*/
public function getConfiguration(){
$rest = $this->getAuthService( self::API_UPNP_AV_CONFIG);
$rest->GET();
return new UpnpAvConfig( $rest->getCurlResponse()['result']);
}
/**
* Update the UPnP AV configuration
* @param UpnpAvConfig $new_UpnpAvConfig
* @return UpnpAvConfig
* @throws \Exception
*/
public function setConfiguration( UpnpAvConfig $new_UpnpAvConfig){
$rest = $this->getAuthService( self::API_UPNP_AV_CONFIG);
$rest->PUT( $new_UpnpAvConfig->toArray());
return new UpnpAvConfig( $rest->getCurlResponse()['result']);
}
}