• Non ci sono risultati.

Il MediaRenderer `e utilizzato per riprodurre i contenuti ricevuti dalla rete e include molteplici dispositivi, quali Tv, stereo, speakers ... La sua principale funzionalit`a `e quella di permettere al Control Point di controllare come un certo contenuto `e riprodotto. Inoltre, a seconda del protocollo utilizzato, il MediaRender `e in grado di permettere all’utente di controllare la riproduzione (metterla in pausa, andare avanti, indietro ...).

Il MediaRender `e formato da un Rendering Control Service, un Con- nectionManager Service e un opzionale AVTransport Service (a seconda del protocollo di trasmissione supportato).

Per supportare la riproduzione dei dispositivi capaci di gestire allo stesso tempo pi`u contenuti multimediali, i servizi Rendering Control e AVTran- sport contengono istanze multiple e logicamente indipendenti di questi servi- zi. Ogni istanza `e dedicata ad una particolare connessione in ingresso. Questo permette al Control Point di cotrollare ogni contenuto in modo indipendente dagli altri. Ognuna di queste istanze `e identificata da un InstanceID univoco

4.4.4.1 Rendering Control Service 77 ed ogni azione invocata dal Control Point contiene tale ID che identifica la corretta istanza.

4.4.1

Rendering Control Service

Questo servizio fornisce un insieme di comandi che permettono al Control Point di controllare come il Renderer riproduce i contenuti. Permette quindi di gestire caratteristiche come la luminosit`a, il contrasto, il volume ... An- ch’esso supporta istanze multiple e dinamiche che permettono al Renderer di ‘mixare’ uno o pi`u contenuti.

Le nuove istanze del servizio sono create utilizzando il comando

PrepareForConnection() del Connection Manager.

4.4.2

ConnectionManager Service

Questo servizio `e utilizzato per gestire le connessioni associate ad un device. All’interno del contesto di un MediaRenderer, il principale metodo di questo servizio `e il GetProtocolInfo(), che permette al Control Point di ottenere un’enumerazione dei protocolli di trasferimento disponibili e i formati di dato che sono supporttati dal MediaRenderer. Questa informazione `e utilizzata per determinare in maniera preventiva se un MediaRenderer `e capace di riprodurre uno specifico contenuto.

Come metodo opzionale, un MediaRenderer pu`o anche implementare il metodo PrepareForConnection() che viene invocato dal Control Point per dare al Renderer la possibilit`a di prepararsi ad un imminente trasferimento. Questo metodo, inoltre, assegna un ConnectionId che pu`o essere usato da terzi per ottenere informazioni circa la connessione che il MediaRenderer sta utilizzando. A seconda del protocollo e del formato dei dati utilizzato, questo metodo pu`o restituire anche un univoco AVTransport InstanceID che il Control Point pu`o utilizzareper controllare il flusso dei contenuti (stopparli, metterli in pausa ...).

Infine, il metodo PrepareForConnection() restituisce un Rendering Con- trol InstanceID che pu`o essere utilizzato dal Control Point per controllare le caratteristiche della riproduzione dei contenuti, come descritto sopra.

78 UPnP AV ha a disposizione, se implementato, il metodo ConnectionComplete() che permette il rilascio della connessione.

4.4.3

AVTransport Service

Questo servizio, opzionale e implementato a seconda del protocollo e del formato dei dati supportato, `e utilizzato dal Control Point per controllare il flusso dei contenuti. Questo permette di utilizzare funzioni di stop, pausa, avanti veloce, indietro veloce ...

Per supportare la riproduzione di pi`u contenuti multimediali in uno stesso momento, `e possibile disporre di istanza multiple di questo servizio. Come descritto sopra, tali istanze sono individuate univocamente da un ID e sono allocate attraverso la chiamata del metodo PrepareForConnection().

Capitolo 5

DomoNet: un’estensione

multimediale

In questo capitolo vengono descritte le funzionalit`a aggiunte al sistema tramite l’implementazione di un’estensione multimediale che rende possibile la condivisione di contenuti multimediali tra dispositivi di diversi standard.

5.1

Introduzione

Dopo aver reso possibile l’interoperabilit`a tra diversi standard domotici, integrando tre delle pi`u diffuse tecnologie domotiche tra quelle europee, il traguardo successivo del framework DomoNet era quello di gestire nativa- mente anche la condivisione di contenuti multimediali come audio e video tra dispositivi di standard diversi. L’obbiettivo era quindi quello di estendere l’architettura di DomoNet, fino a questo momento in grado di gestire solo l’interoperabilit`a di servizi di comandi o stati, per permettere la gestione di immagini e stream audio/video.

Per integrare in DomoNet anche funzioni multimediali tra le diverse tec- nologie domotiche, si era pensato inizialmente di includere direttamente nei domoMessage di DomoNet informazioni di tipo multimediale. Questo avreb- be permesso di rimanere perfettamente in linea con il progetto iniziale, quello di utilizzare solo ed esclusivamente il linguaggio DomoML per la comunica- zione intra e inter DomoNet. Una soluzione di questo tipo avrebbe per`o pre- giudicato l’efficenza di DomoNet dal lato sever, in quanto a causa della sua

80 DomoNet: un’estensione multimediale stessa architettura il server si troverebbe inutilmente coinvolto nell’instrada- mento di tutti i flussi audio e/o video che sono generati o richiesti dalle varie sottoreti.

Per ovviare a questo inconveniente, non sottovalutabile, `e stata sviluppata una soluzione intermedia. La richiesta dei contenuti multimediali viene fatta mediante un domoMessage, mantenendo in questo modo la logica attuale. Tale richiesta, tuttavia, non `e altro che una sincronizzazione tra techManager diversi che permette poi l’avvio di thread indipendenti che gestiscono il flusso dei dati multimediali vero e proprio.

L’architettura cos`ı fatta `e per certi versi simile a quella vista nel capitolo 4 relativamente all’UPnP Audio Video. Se nell’UPnP AV `e il ControlPoint AV a preparare e sincronizzare il MediaRenderer e il MediaServer per instaurare lo stream, in DomoNet questo viene gestito automaticamente dagli stessi techManager.

L’estensione multimediale `e stata cos`ı realizzata utilizzando da una parte il techManager BTicino, e dall’altra il techManager, tra quelli gi`a integrati, con lo standard pi`u votato alla gestione e visualizzazione di contenuti au- dio/video: UPnP. Lo standard UPnP e in particolare lo standard UPnP AV, descritto nel capitolo 4, `e stato realizzato proprio per consentire la gestione dei contenuti multimediali tra device UPnP.

Figura 5.1: Architettura dei techManager BTicino e UPnP per flussi multimediali

5.5.2 Il techManager BTicino 81

Documenti correlati