Ir para o conteúdo

 Voltar a Linguagem NCL
Tela cheia

Como acessar uma propiediedade em media dentro de switch

2 de Julho de 2012, 10:55 , por Desconhecido - | 1 Pessoa seguindo este artigo.
Visualizado 46 vezes

Colocando como exemplo o seguinte switch :

<switch id="sControl">

        <bindRule rule="rlRule1t1" constituent="mMedia1t1"/>
        <defaultComponent component="defaultMedia"/>
   
        <media id="mMedia1t1" descriptor="dScreen" src="images/number1.png">

        <property name="top" />

       </media>
        <media id="defaultMedia" descriptor="dScreen" src="images/number2.png"/>
   
        <switchPort id="pRule1t1">
            <mapping component="mMedia1t1" />
        </switchPort>
        <switchPort id="pDefault">
            <mapping component="defaultMedia" />
        </switchPort>

</switch> 

 

Como eu faço para referirme a variavel top a travez de um bind num link tipo :

     <link xconnector="conn#onBeginSet" id="lnkRule1t1">
        <bind role="onBegin" component="sControl" interface="pRule1t1" />
        <bind role="get0" component="pRule1t1" interface="top"/>
        <bind role="set" component="settings" interface="mMedia1t1Top">
            <bindParam name="var" value="$get0"/>
        </bind>
    </link>

Ess seria um exemplo que como eu tentaria fazer-o logicamente, mas desse jeito não funciona. 

Tem alguma sguerencia de como eu faço?

Obrigado!


Autor: Facundo Larrosa


33 comentários

  • 5df5d8eeb3770422cc9c42a466faee62?only path=false&size=50&d=404Roberto Azevedo(usuário não autenticado)
    2 de Julho de 2012, 12:58

     

    Oi Facundo,

     como o pRule1t1 é uma interface do sControl, a partir de um link fora do switch você não tem acesso direto (isso é pelo component) ao pRule1t1, como está no teu link:

      <link xconnector="conn#onBeginSet" id="lnkRule1t1">
         <bind role="onBegin" component="sControl" interface="pRule1t1" />
         <bind role="get0" component="pRule1t1" interface="top"/> 
          <bind role="set" component="settings" interface="mMedia1t1Top"> 
            <bindParam name="var" value="$get0"/> 
          </bind>
       </link>

    Para acessar uma propriedade interna de um nó que esteja dentro de um contexto ou de um switch, entretanto você pode mapear essa propriedade direto para uma porta. No caso, do contexto:

      <port id="p1" component="media1" interface="top"/>

    E no caso do switch (i.e. teu caso): 

     <switchPort id="pRule1t1_top">
        <mapping component="mMedia1t1" interface='top"/> 
      </switchPort> 

    Dessa forma você pode mudar teu link para: 
     <link xconnector="conn#onBeginSet" id="lnkRule1t1">
         <bind role="onBegin" component="sControl" interface="pRule1t1" />
         <bind role="get0" component="sControl" interface="pRule1t1_top"/> 
          <bind role="set" component="settings" interface="mMedia1t1Top"> 
            <bindParam name="var" value="$get0"/> 
          </bind>
       </link> 

    • 658e8d89d9a0571dd9dbd05853db5d03?only path=false&size=50&d=404Facundo Larrosa(usuário não autenticado)
      6 de Julho de 2012, 9:44

       

      Valeu! Deveria funcionar do mesmo jeito para atribuir un valor para a variavel? Exemplo:

        <link xconnector="conn#onBeginSet" id="lnkRule1t1">
           <bind role="onBegin" component="sControl" interface="pRule1t1" />
            <bind role="set" component="sControl" interface="pRule1t1_top"> 
              <bindParam name="var" value="200"/> 
            </bind>
         </link> 

       

      Obrigado!

      • 5df5d8eeb3770422cc9c42a466faee62?only path=false&size=50&d=404Roberto Azevedo(usuário não autenticado)
        6 de Julho de 2012, 23:25

         

        Oi Facundo,

        funciona da mesma forma sim. Também podemos atribuir o valor pela porta (desde que a porta mapeie para uma propriedade).

        Baseado nos teus códigos anteriores eu fiz um pequeno exemplo (testado na implementação de referência v.0.12.4) que pode ser útil: 

        <?xml version="1.0" encoding="ISO-8859-1"?>
        <!-- Generated by NCL Eclipse -->
        <ncl id="set_switch_interface" xmlns="http://www.ncl.org.br/NCL3.0/EDTVProfile">
        <head>
        <ruleBase>
        <rule id="rlRule1t1" var="test" comparator="eq" value="a"/>
        </ruleBase>
        <regionBase>
        <region id="rgFullScreen"/>
        </regionBase>
        <descriptorBase>
        <descriptor id="dScreen" region="rgFullScreen"/>
        </descriptorBase>
        <connectorBase>
        <causalConnector id="onBeginSet_delay">
        <connectorParam name="value"/>
        <connectorParam name="delay"/>
        <simpleCondition role="onBegin" />
        <simpleAction role="set" value="$value" delay="$delay"/>
        </causalConnector>
        </connectorBase>
        </head>
        <body>
        <port id="pSettings" component="settings"/>
        <port id="test" component="sControl"/>

        <media id="settings" type="application/x-ginga-settings">
        <property name="test" value="a"/>
        </media>

        <switch id="sControl">
        <bindRule rule="rlRule1t1" constituent="mMedia1t1"/>
        <defaultComponent component="defaultMedia"/>
        <media id="mMedia1t1" descriptor="dScreen" src="1.png">
        <property name="top" value="0"/>
        <property name="height" value="200"/>
        <property name="width" value="100"/>
        <property name="explicitDur" value="10s"/>
        </media>
        <media id="defaultMedia" descriptor="dScreen" src="2.png"/>
        <switchPort id="pRule1t1">
        <mapping component="mMedia1t1"/>
        </switchPort>
        <switchPort id="pDefault">
        <mapping component="defaultMedia"/>
        </switchPort>
        <switchPort id="pRule1t1_width">
        <mapping component="mMedia1t1" interface="top"/>
        </switchPort>
        </switch>

        <link xconnector="onBeginSet_delay">
        <bind role="onBegin" component="sControl"/>
        <bind role="set" component="sControl" interface="pRule1t1_width">
        <bindParam name="value" value="200"/>
        <bindParam name="delay" value="2s"/>
        </bind>
        </link>s
        </body>
        </ncl>

Concurso ITU-T de Aplicações para IPTV 2012

13 de Agosto de 2012, 19:38, por Desconhecido

Gostaríamos de lembrar aos possíveis interessados que o prazo de registro para participação no Concurso ITU-T de Aplicações para IPTV 2012 (IPTV Application Challenge) se encerra nesta semana, dia 15 de agosto de 2012. Já o prazo para a submissão de aplicações se encerra no dia 07 de setembro de 2012.



NCL Eclipse 1.6 disponível

10 de Janeiro de 2012, 21:19, por Desconhecido

Caros membros da Comunidade Ginga,



Concursos de Aplicações Ginga-NCL

22 de Setembro de 2011, 3:22, por Desconhecido

    Gostaríamos de relembra-los de que há dois concursos de aplicações Ginga-NCL com inscrições ainda abertas. O convite é aberto a toda a comunidade de desenvolvedores de aplicações para o Middleware Ginga-NCL, em nível internacional. São os seguintes concursos:



Novas versões: Ginga e Ginga-NCL Virtual Set-top Box (v.0.12.3)

1 de Agosto de 2011, 20:58, por Desconhecido



Algumas Boas Notícias da Comunidade Ginga

28 de Julho de 2011, 21:31, por Desconhecido

Autor: Roberto Azevedo