<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
  <!ENTITY kremotecontrol "<application
>KRemoteControl</application
>">
  
  <!ENTITY % French "INCLUDE"
> <!-- change language only here -->
  <!ENTITY % addindex "IGNORE">
]>

<book id="kremotecontrol" lang="&language;">
  <bookinfo>
    <title
>Configuration du contrôles à distance de KDE</title>

    <authorgroup>
      <author
><firstname
>Michael</firstname
> <surname
>Zanetti</surname
> <affiliation
> <address
><email
>michael_zanetti@gmx.net</email
></address>
        </affiliation>
      </author>
    &traducteurRobertJacolin; &traducteurPierreBuard; 
    </authorgroup>

    <date
>05/03/2010</date>
    <releaseinfo
>1.0</releaseinfo>

    <copyright>
      <year
>2010</year>
      <holder
>Michael Zanetti</holder>
    </copyright>

    <abstract>
      <para
>Configuration du &kremotecontrol; : l'infrastructure pour le fonctionnement des télécommandes dans KDE. </para>
    </abstract>
    
    <keywordset>
      <keyword
>KRemoteControl</keyword>
      <keyword
>kcm_remotecontrol</keyword>
      <keyword
>Télécommande</keyword>
    </keywordset>

  </bookinfo>

  <chapter id="introduction">
    <title
>Introduction</title>

    <para
>Ce module permet de configurer les touches de votre télécommande, auxquelles vous assignez des actions exécutées en appuyant sur un bouton. Les actions peuvent lancer des applications, les contrôler ou exécuter des commandes systèmes telles que l'arrêt de votre ordinateur. </para>

    <sect1 id="requirements">
      <title
>Conditions préalables</title>

      <para
>Pour utiliser &kremotecontrol;, vous devez avoir configuré un moteur de gestion de télécommandes. Actuellement, seul le moteur LIRC est disponible. Si LIRC est correctement paramétré, l'icône de &kremotecontrol; apparaîtra en rouge dans la boîte à miniatures <inlinemediaobject
> <imageobject
> <imagedata fileref="irkick.png" format="PNG"/> </imageobject
> </inlinemediaobject
>. Sinon, il sera gris et barré <inlinemediaobject
> <imageobject
> <imagedata fileref="irkickoff.png" format="PNG"/> </imageobject
> </inlinemediaobject
>. </para>

      <para
>Pour de plus amples informations sur LIRC, consultez leur site web à l'adresse http://www.lirc.org. </para>

    </sect1>
  </chapter>

  <chapter id="usage">
    <title
>Utilisation</title>

    <para
>Le module de configuration présente deux listes. Celle de gauche affiche les télécommandes disponibles et leurs modes. La liste de droite contient toutes les actions configurées pour le mode de la télécommande actuellement sélectionnée. <screenshot>
      <screeninfo
>Configuration de KRemoteControl</screeninfo>
        <mediaobject>
          <imageobject>
            <imagedata fileref="kcmremotecontrol.png" format="PNG"/>
          </imageobject>
          <textobject>
            <phrase
>Liste les télécommandes avec leurs modes et actions configurés</phrase>
          </textobject>
        </mediaobject>
      </screenshot>
    </para>

    <sect1 id="modes">
      <title
>Télécommandes et modes</title>

      <para
>Chaque télécommande peut avoir un certain nombre de modes. Utiliser de multiples modes permet à un même bouton de commander différentes actions en différentes situations ; tout comme le ferait une télécommande universelle TV / Vidéo / Satellite / DVD. Au lieu d'employer plusieurs télécommandes pour différentes applications, vous pouvez modifier le comportement d'une télécommande pour qu'elle s'adapte à une utilisation en créant différents modes et en passant d'un à l'autre lorsque nécessaire. Les actions définies directement sur la télécommande seront toujours accessibles, quel que soit le mode actuel de la télécommande. Les actions définies dans un mode ne sont exécutées que lorsque la télécommande fait usage de ce mode. Une télécommande ne gère qu'un mode à la fois. Elle peut n'avoir aucun mode ce qui signifie que les actions génériques seront exécutées en appuyant sur les touches. Vous pouvez également définir un mode par défaut qui sera automatiquement assigné au démarrage. </para>
      <para
>Vous pouvez ajouter des modes à une télécommande en sélectionnant cette dernière, puis le bouton <guibutton
>+</guibutton
> situé à côté de la liste. Lors de la création d'un mode, vous devrez le nommer. Il est également possible d'assigner un bouton qui activera le mode ainsi qu'une icône utilisée par les notifications. Pour supprimer des modes, sélectionnez-les et cliquez sur le bouton <guibutton
>-</guibutton
>. <screenshot>
        <screeninfo
>Ajouter un mode</screeninfo>
          <mediaobject>
            <imageobject>
              <imagedata fileref="AddMode.png" format="PNG"/>
            </imageobject>
            <textobject>
              <phrase
>Ajout d'un nouveau mode</phrase>
            </textobject>
          </mediaobject>
        </screenshot>
      </para>
      <para
>Par défaut, si plusieurs modes sont assignés au même bouton, celui-ci passera d'un mode à l'autre. Cela vous permettant de grouper les modes. Par exemple, vous pourriez utiliser un bouton <quote
>Musique</quote
> afin de passer des modes &amarok; à &juk;, alors que le bouton <quote
>Vidéo</quote
> alternera entre les modes pour &dragon; et KMplayer. Si vous préférez un bouton pour alterner entre tous les modes et un autre pour parcourir la liste en sens inverse, vous pourrez définir ce comportement dans les préférences de la télécommande en sélectionnant cette dernière et en cliquant sur le bouton d'édition. <screenshot>
        <screeninfo
>Modifier une télécommande</screeninfo>
          <mediaobject>
            <imageobject>
              <imagedata fileref="EditMasterMode.png" format="PNG"/>
            </imageobject>
            <textobject>
              <phrase
>Modifie une télécommande</phrase>
            </textobject>
          </mediaobject>
        </screenshot>
      </para>

    </sect1>

    <sect1 id="actions">
      <title
>Actions</title>

      <para
>Après avoir sélectionné une télécommande ou un mode, ajoutez-lui des actions à l'aide du bouton <guibutton
>+</guibutton
> situé à droite. Il y a deux façons de créer des actions : avec un modèle ou en parcourant manuellement le bus de la session D-Bus. <screenshot>
        <screeninfo
>Ajouter une action</screeninfo>
          <mediaobject>
            <imageobject>
              <imagedata fileref="AddAction.png" format="PNG"/>
            </imageobject>
            <textobject>
              <phrase
>Ajout d'une action</phrase>
            </textobject>
          </mediaobject>
        </screenshot>
      </para>
      <para
>La création d'actions à partir de modèles est aisée mais limitée. Vous trouverez des modèles pour les applications les plus courantes telles qu'&amarok; ou le lanceur d'applications de &kde; ainsi que les commandes systèmes pour éteindre votre ordinateur. Ces modèles sont regroupés par tâches similaires aux seins de profils. Par exemple, le profil dénommé <quote
>Gestion de l'alimentation</quote
> contient des modèles permettant d'éteindre ou de mettre en hibernation votre ordinateur. <screenshot>
        <screeninfo
>Ajout d'un profil à une action</screeninfo>
          <mediaobject>
            <imageobject>
              <imagedata fileref="AddProfileAction.png" format="PNG"/>
            </imageobject>
            <textobject>
              <phrase
>Ajout d'une action à l'aide d'un modèle</phrase>
            </textobject>
          </mediaobject>
        </screenshot>
      </para>
      <para
>Créer des actions en parcourant D-Bus liste toutes les applications en cours d'exécutions. Parcourez-les et découvrez leurs fonctions. Cela demande un minimum de connaissances sur la manière dont fonctionne D-Bus mais vous pourrez utiliser plus d'applications et de fonctions que proposées par la liste des modèles. <screenshot>
        <screeninfo
>Ajout d'une action D-Bus</screeninfo>
          <mediaobject>
            <imageobject>
              <imagedata fileref="AddDBusAction.png" format="PNG"/>
            </imageobject>
            <textobject>
              <phrase
>Ajout d'une action à l'aide de D-Bus</phrase>
            </textobject>
          </mediaobject>
        </screenshot>
      </para>
      <para
>Lors de l'ajout d'une action, vous pourrez régler d'autres options. La première définit si l'action est exécutée à plusieurs reprises en maintenant le bouton de la télécommande enfoncé. Ceci est utile pour augmenter ou diminuer le volume mais sera nuisible à des actions comme la mise en lecture / pause d'un lecteur multimédia. La seconde détermine si le programme cible devra être lancé en appuyant sur le bouton, si ce n'est pas déjà fait. Par exemple, il est inutile qu'une action fermant un programme l'ouvre dans la foulé. La troisième et dernière option définit l'instance d'une application devant réceptionner l'action lorsque plusieurs instances sont en cours d'exécution. Si vous sélectionnez une application ne pouvant être lancée à de multiples reprises, cette option sera désactivée. </para>
      <para>
        <screenshot>
        <screeninfo
>Options d'ajout d'une action</screeninfo>
          <mediaobject>
            <imageobject>
              <imagedata fileref="AddActionOptions.png" format="PNG"/>
            </imageobject>
            <textobject>
              <phrase
>Options d'actions</phrase>
            </textobject>
          </mediaobject>
        </screenshot>
      </para>
      <para
>Les actions peuvent également être automatiquement assignées à l'aide du bouton « assistant ». Cela signifie que &kremotecontrol; tentera de lier les boutons à des fonctions. La boîte de dialogue « Auto-peupler » affiche toutes les collections de modèles disponibles. En fonction de la couleur du drapeau, votre télécommande sera pleinement, partiellement ou pas du tout prise en charge par le profil. Vert signifie que tous les modèles trouveront un bouton sur votre télécommande, jaune que quelques actions correspondent et rouge qu'aucun modèle ne pourra être assigné aux boutons de votre télécommande. Cette indication ne vous empêche pas d'utiliser ces modèles. Il vous faudra néanmoins les configurer à la main, en désignant le bouton souhaité. <screenshot>
        <screeninfo
>Auto-peupler</screeninfo>
          <mediaobject>
            <imageobject>
              <imagedata fileref="AutoPopulate.png" format="PNG"/>
            </imageobject>
            <textobject>
              <phrase
>Génère automatiquement les actions à l'aide de modèles</phrase>
            </textobject>
          </mediaobject>
        </screenshot>
      </para>
      <para
><emphasis role="strong"
>Remarque :</emphasis
> si votre télécommande n'est pas compatible avec les profils, il se pourrait que vous n'ayez pas configuré LIRC à l'aide d'un espace de noms. </para>
    </sect1>
  </chapter>
  <chapter id="advancedInformation">
    <title
>Informations avancées</title>
    <para
>Ce chapitre présente des informations susceptibles d'intéresser les développeurs et utilisateurs confirmés. Vous apprendrez à créer vos propres profils. </para>

    <sect1 id="profileCreation">
      <title
>Créer un profil</title>

      <sect2>
        <title
>Introduction</title>
        <para
>Pratiquement toutes les applications gérant &DBus; peuvent être contrôlées par &kremotecontrol; sans effort. Cependant, afin de fournir une configuration agréable et permettre à l'application d'apparaître dans la boîte de dialogue d'auto-peuplement, vous souhaiterez sûrement créer un profil adapté. </para>
        <para
>Un profil renseigne &kremotecontrol; (et l'utilisateur !) sur le fonctionnement des divers appels &DBus;. Essentiellement, cela revient à documenter les appels &DBus;. Il n'est pas nécessaire d'inclure tous les appels &DBus;, seulement ceux que vous jugez utiles aux utilisateurs (donc plutôt les appels <quote
>influant sur l'interface</quote
> que ceux <quote
>rassemblant des informations</quote
>). </para>
      </sect2>

      <sect2>
        <title
>Comment créer un profil</title>
        <procedure>

          <step>
            <title
>&DBus;</title>
            <para
>Assurez-vous que l'application pour laquelle vous créez un profil prend en charge le bus de session &DBus;. Vous pouvez le vérifier en essayant d'ajouter des actions pour cette application grâce à la méthode manuelle proposée par &kremotecontrol;. <quote
>qdbusviewer</quote
>, un programme livré avec votre installation de Qt4 est également un bon outil pour s'informer sur les capacités &DBus; des applications. </para>
          </step>

          <step>
            <title
>Pas à pas</title>
            <para
>Une fois les fonctions &DBus; appropriées identifiées, vous devrez les décrire dans un document <filename
>nomapp.profile.xml</filename
>. Voici un bref guide expliquant comment créer ces fichiers :  </para>

            <substeps>
              <step>
                <para
>Commencez par créer un fichier en y insérant le contenu ci-dessus. La balise <quote
>name</quote
> définit un nom court décrivant le profil. Ajoutez une description du profil dans la balise <quote
>description</quote
>. Inscrivez votre nom dans la balise <quote
>author</quote
> et un numéro de version dans la balise <quote
>version</quote
>. Le numéro de version est primordial pour pouvoir mettre à jour votre profil. &kremotecontrol; emploiera celui ayant le nombre le plus élevé si de multiples versions de votre profil existent sur le système. </para>
                <programlisting
>&lt;xml version="1.0" encoding="UTF-8"?>
&lt;profile xmlns="urn:org-kde-kremotecontrol"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="urn:org-kde-kremotecontrol file:profile.xsd"&gt;

    &lt;name&gt;Mon profil&lt;/name&gt;
    &lt;version&gt;0.1&lt;/version&gt;
    &lt;author&gt;Moi&lt;/author&gt;
    &lt;description&gt;Des informations décrivant la fonction du profil&lt;/description&gt;
    &lt;action&gt;
        &lt;--  Cette balise sera expliquée lors de la prochaine étape--&gt;
    &lt;action&gt;

&lt;/profile&gt;
                </programlisting>
              </step>

              <step>
                <para
>Le squelette de votre profil créé, passons à l'ajout de quelques modèles d'actions. </para>

                <programlisting
>&lt;xml version="1.0" encoding="UTF-8"?>
&lt;profile xmlns="urn:org-kde-kremotecontrol"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="urn:org-kde-kremotecontrol file:profile.xsd"&gt;

    &lt;name&gt;Mon profil&lt;/name&gt;
    &lt;version&gt;0.1&lt;/version&gt;
    &lt;author&gt;Moi&lt;/author&gt;
    &lt;description&gt;Des informations décrivant la fonction du profil&lt;/description&gt;

    &lt;action id="unIdUnique"  repeat="true|false" button="unBouton"&gt;
      &lt;name&gt;Mon action&lt;/name&gt;
      &lt;description&gt;Une description de l'action&lt;/description&gt;
      &lt;prototype&gt;
        &lt;--  Cette balise sera expliquée lors de la prochaine étape--&gt;
      &lt;prototype&gt;
      &lt;ifmulti&gt;siOptionMulti&lt;/ifmulti&gt;
    &lt;/action&gt;
    
&lt;/profile&gt;
                </programlisting>
               <para
>Commencez par définir un identifiant unique. Il sera utilisé par &kremotecontrol; pour relier les actions existantes à celles du modèle, pour afficher la description par exemple. Cet id doit être unique au sein du profil. L'attribut <quote
>button</quote
> (bouton) est utilisé par la fonction d'auto-peuplement. Voir le fichier schéma <quote
>profile.xsd</quote
> contenant la liste complète des noms de boutons utilisables. L'attribut <quote
>repeat</quote
> (répéter) exprime la possibilité d'exécuter une action à plusieurs reprises si le bouton de la télécommande est maintenu enfoncé. Si l'application doit être lancée alors qu'elle ne l'est pas encore, mettez <quote
>autostart</quote
> à <quote
>true</quote
> (vrai) pour le faire lors d'une pression sur un bouton. Les attributs <quote
>button</quote
>, <quote
>repeat</quote
> et <quote
>autostart</quote
> sont optionnels. Si <quote
>repeat</quote
> et <quote
>autostart</quote
> ne sont pas définis, leur valeur par défaut sera <quote
>false</quote
> (faux). </para>
                 
               <para
>Ajoutez un nom court à la balise <quote
>nom</quote
> et une description à l'aide de la balise <quote
>description</quote
>. La propriété <quote
>ifmulti</quote
> précise à &kremotecontrol; la marche à suivre en cas d'instances multiples en cours d'exécution lorsqu'on appuie sur un bouton. Elle accepte les valeurs suivantes : <quote
>sendtotop</quote
> (envoie l'appel à l'instance au sommet de la pile de fenêtres), <quote
>sendtobottom</quote
> (envoie l'appel à la dernière instance dans la pile de fenêtres), <quote
>sendtoall</quote
> (transmet à toutes les instances), <quote
>dontsend</quote
> (n'envoie rien à personne) et <quote
>unique</quote
> (cette application n'autorise pas les instances multiples). Si cette balise n'est pas définie, &kremotecontrol; supposera que les applications ne peuvent pas se lancer à plusieurs reprises et utilisera alors la valeur <quote
>unique</quote
>. </para>
              </step>

              <step>
                <para
>Définissez ensuite la fonction &DBus; à exécuter à l'aide de la balise <quote
>prototype</quote
> : </para>
                <programlisting
>&lt;xml version="1.0" encoding="UTF-8"?>
&lt;profile xmlns="urn:org-kde-kremotecontrol"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="urn:org-kde-kremotecontrol file:profile.xsd"&gt;

    &lt;name&gt;Mon profil&lt;/name&gt;
    &lt;version&gt;0.1&lt;/version&gt;
    &lt;author&gt;Moi&lt;/author&gt;
    &lt;description&gt;Des informations décrivant la fonction du profil&lt;/description&gt;

    &lt;action id="unIdUnique"  repeat="true|false" button="unBouton"&gt;
      &lt;name&gt;Mon action&lt;/name&gt;
      &lt;description&gt;Une description de l'action&lt;/description&gt;

      &lt;prototype&gt;
        &lt;serviceName&gt;org.exemple.application&lt;/serviceName&gt;
        &lt;node&gt;Un/Nœud&lt;/node&gt;
        &lt;function&gt;fonction&lt;/function&gt;
      &lt;/prototype&gt;

      &lt;ifmulti&gt;siOptionMulti&lt;/ifmulti&gt;
    &lt;/action&gt;

&lt;/profile&gt;
                </programlisting>
                <para
><quote
>servicename</quote
> contient le nom du service &DBus; de l'application, &pex; <quote
>org.kde.plasma-desktop</quote
>. <quote
>node</quote
> indique le nœud &DBus; correspondant, tel que <quote
>App</quote
>. Ajoutez à la balise <quote
>function</quote
> le nom de la fonction sans la valeur renvoyée ou les arguments. Par exemple, <quote
>toggleDashboard</quote
>. </para>
              </step>

              <step>
                <para
>Si la fonction accepte des paramètres, vous devrez décrire chacun d'eux à l'utilisateur, sans oublier un type et une valeur par défaut optionnelle. Une liste des types pris en charge est disponible dans le fichier de schéma <quote
>profile.xsd</quote
>. La balise <quote
>comment</quote
> proposera une description accessible expliquant l'utilisation du paramètre. Vous devrez aussi déclarer une valeur par défaut pour chaque paramètre en utilisant la balise <quote
>default</quote
>. Notez que les modèle incluant un bouton devront fournir une valeur par défaut pour tous les arguments, sinon la fonction d'auto-peuplement ne pourra créer des fonctions valables. </para>
      
                  <programlisting
>&lt;xml version="1.0" encoding="UTF-8"?>
&lt;profile xmlns="urn:org-kde-kremotecontrol"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="urn:org-kde-kremotecontrol file:profile.xsd"&gt;

    &lt;name&gt;Mon profil&lt;/name&gt;
    &lt;version&gt;0.1&lt;/version&gt;
    &lt;author&gt;Moi&lt;/author&gt;
    &lt;description&gt;Des informations décrivant la fonction du profil&lt;/description&gt;

    &lt;action id="unIdUnique"  repeat="true|false" button="unBouton"&gt;
      &lt;name&gt;Mon action&lt;/name&gt;
      &lt;description&gt;Une description de l'action&lt;/description&gt;

      &lt;prototype&gt;
        &lt;serviceName&gt;org.exemple.application&lt;/serviceName&gt;
        &lt;node&gt;Un/Nœud&lt;/node&gt;
        &lt;function&gt;fonction&lt;/function&gt;

        &lt;arguments&gt;
          &lt;argument type="QString"&gt;
            &lt;comment&gt;Commentaire additionnel&lt;/comment&gt;
            &lt;default&gt;uneValeur&lt;/default&gt;
          &lt;/argument&gt;
        &lt;/arguments&gt;

      &lt;/prototype&gt;

      &lt;ifmulti&gt;siOptionMulti&lt;/ifmulti&gt;
    &lt;/action&gt;

&lt;/profile&gt;
                  </programlisting>
              </step>
            </substeps>
          </step>
        </procedure>
      </sect2>
      <sect2>
        <title
>Installation</title>
          <para
>Pour tester votre profil, vous devrez le copier dans <filename
>$(kde_datadir)/profiles</filename
> et relancer &kremotecontrol;. </para>
          <para
>Si vous souhaitez intégrer le profil à &kde; SC, veuillez l'envoyer à l'équipe de kdeutils par <email
>kde-utils-devel@kde.org</email
>. </para>
        </sect2>
    </sect1>
  </chapter>
</book>
