<?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 % Dutch "INCLUDE"
> <!-- change language only here -->
  <!ENTITY % addindex "IGNORE">
]>

<book id="kremotecontrol" lang="&language;">
  <bookinfo>
    <title
>KDE afstandsbediening-instellingen</title>

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

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

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

    <abstract>
      <para
>&kremotecontrol; instellingen: De infrastructuur voor &kde;'s afstandsbediening-functionaliteit. </para>
    </abstract>
    
    <keywordset>
      <keyword
>KRemoteControl</keyword>
      <keyword
>kcm_remotecontrol</keyword>
      <keyword
>Afstandsbediening</keyword>
    </keywordset>

  </bookinfo>

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

    <para
>Deze module stelt u in staat uw afstandsbedieningen in te stellen. U kunt acties die uitgevoerd worden door het indrukken van een knop toekennen. Acties kunnen programma's starten, deze besturen of systeemcommando's uitvoeren, zoals het afsluiten van uw systeem. </para>

    <sect1 id="requirements">
      <title
>Benodigdheden</title>

      <para
>Om &kremotecontrol; te kunnen gebruiken moet u een compatibele backend voor afstandsbedieningen op uw computer hebben ingesteld. Op dit moment is er alleen een backend voor LIRC beschikbaar. Als LIRC juist is ingesteld, dan licht het pictogram &kremotecontrol; rood op in het systeemvak <inlinemediaobject
> <imageobject
> <imagedata fileref="irkick.png" format="PNG"/> </imageobject
> </inlinemediaobject
>. Zo niet, dan is het grijs met een kruis <inlinemediaobject
> <imageobject
> <imagedata fileref="irkickoff.png" format="PNG"/> </imageobject
> </inlinemediaobject
>. </para>

      <para
>Voor meer informatie over LIRC kunt u de website raadplegen. Deze is te vinden op http://www.lirc.org. </para>

    </sect1>
  </chapter>

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

    <para
>De module voor instellingen bestaat uit twee lijsten. De linker lijst toont de verschillende afstandsbedieningen en hun modi. De rechter lijst toont de alle ingestelde acties voor de geselecteerde afstandsbediening en modus. <screenshot>
      <screeninfo
>KRemoteControl instellingen</screeninfo>
        <mediaobject>
          <imageobject>
            <imagedata fileref="kcmremotecontrol.png" format="PNG"/>
          </imageobject>
          <textobject>
            <phrase
>Lijst met afstandsbedieningen en ingestelde modi en acties</phrase>
          </textobject>
        </mediaobject>
      </screenshot>
    </para>

    <sect1 id="modes">
      <title
>Afstandsbedieningen en modi</title>

      <para
>Elke afstandsbediening kan een aantal verschillende modi hebben. Meerdere modi maken het mogelijk om via dezelfde knop een andere actie te laten uitvoeren in verschillende situaties. Denk aan een meervoudige afstandsbediening voor tv/video/sateliet/dvd. In plaats van het gebruik van meerdere aparte afstandsbediening voor verschillende applicaties, kunt u het gedrag van één afstandsbediening aanpassen aan een applicatie door verschillende modi aan te maken. Directe acties op een afstandsbediening zijn per definitie onafhankelijk van de modus en dus altijd beschikbaar. Acties in een modus worden alleen uitgevoerd als de afstandsbediening in die modus staat. Een afstandsbediening kan op een bepaald moment slechts in één modus staan. Het kan ook in geen modus staan zodat alleen de altijd beschikbare acties uitgevoerd kunnen worden bij het drukken op een knop. U kunt ook een standaard modus definiëren, die automatisch wordt toegekend bij opstarten. </para>
      <para
>U kunt modi toevoegen aan een afstandsbediening door de afstandsbediening te kiezen en de <guibutton
>+</guibutton
>-knop naast de lijst te gebruiken. Bij het aanmaken van een modus dient u een naam ervoor op te geven. Optioneel kunt u een knop toewijzen die gebruikt moet worden om de modus te activeren en een pictogram die wordt gebruikt om deze modus aan te geven. U kunt modi verwijderen door ze te selecteren en de knop <guibutton
>-</guibutton
> te gebruiken. <screenshot>
        <screeninfo
>Modus toevoegen</screeninfo>
          <mediaobject>
            <imageobject>
              <imagedata fileref="AddMode.png" format="PNG"/>
            </imageobject>
            <textobject>
              <phrase
>Een nieuwe modus toevoegen</phrase>
            </textobject>
          </mediaobject>
        </screenshot>
      </para>
      <para
>Standaard, als er meerdere modi zijn toegekend aan dezelfde knop, wordt de knop gebruikt om door deze modi te lopen. Op deze manier kunt u uw modi groeperen. U kunt een knop met de naam <quote
>Muziek</quote
> toekennen aan modi voor &amarok; en &juk; terwijl een knop met de naam <quote
>Video</quote
> door de modi voor &dragon; of KMplayer kan lopen. Als u liever een knop wilt  hebben voor het doorlopen van alle modi en een tweede om om in de omgekeerde richting door de modi te lopen, dan kunt u dit gedrag instellen in de voorkeuren van een afstandsbediening door een afstandsbediening te selecteren en op de knop voor bewerken te drukken. <screenshot>
        <screeninfo
>AfstandsbedieningBewerken</screeninfo>
          <mediaobject>
            <imageobject>
              <imagedata fileref="EditMasterMode.png" format="PNG"/>
            </imageobject>
            <textobject>
              <phrase
>Een afstandsbediening bewerken</phrase>
            </textobject>
          </mediaobject>
        </screenshot>
      </para>

    </sect1>

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

      <para
>Na het selecteren van een afstandsbediening of een modus kunt u er acties aan toevoegen met gebruik van de knop <guibutton
>+</guibutton
> rechts. Er zijn twee verschillende manieren hoe acties aan te maken. Door een sjabloon te gebruiken of door handmatig langs de D-Bus-sessiebus te lopen. <screenshot>
        <screeninfo
>ActieToevoegen</screeninfo>
          <mediaobject>
            <imageobject>
              <imagedata fileref="AddAction.png" format="PNG"/>
            </imageobject>
            <textobject>
              <phrase
>Een actie toevoegen</phrase>
            </textobject>
          </mediaobject>
        </screenshot>
      </para>
      <para
>Acties aanmaken met sjablonen is gemakkelijker maar beperkt. U kunt sjablonen voor de meeste gewone toepassingen, zoals &amarok; of de &kde;-programmastarter en systeemcommando's voor het afsluiten van uw systeem vinden. Deze sjablonen zijn verzameld in profielen die ze groeperen in gelijksoortige taken. Er is bijvoorbeeld een profiel genaamd <quote
>Energiebeheer</quote
> die sjablonen bevat voor afsluiten of onderbreken van uw computer. <screenshot>
        <screeninfo
>SjabloonActieToevoegen</screeninfo>
          <mediaobject>
            <imageobject>
              <imagedata fileref="AddProfileAction.png" format="PNG"/>
            </imageobject>
            <textobject>
              <phrase
>Een actie met gebruik van een sjabloon toevoegen</phrase>
            </textobject>
          </mediaobject>
        </screenshot>
      </para>
      <para
>Acties aanmaken door langs de D-Bus-lijsten van alle nu actieve toepassingen te lopen. U kunt ze langslopen en langs hun functies. Dit vereist een basiskennis van hoe D-Bus werkt, maar u kunt meer toepassingen en functies gebruiken dan die in de lijst met sjablonen. <screenshot>
        <screeninfo
>DBusActieToevoegen</screeninfo>
          <mediaobject>
            <imageobject>
              <imagedata fileref="AddDBusAction.png" format="PNG"/>
            </imageobject>
            <textobject>
              <phrase
>Een actie met gebruik van de D-Bus toevoegen</phrase>
            </textobject>
          </mediaobject>
        </screenshot>
      </para>
      <para
>Bij het toevoegen van een actie kunt u enkele opties aanpassen. De eerste hiervan definieert of de acties herhaaldelijk moeten worden uitgevoerd bij het ingedrukt houden van de knop op de afstandsbediening. Dit is nuttig bij actions zoals het verkleinen of vergroten van het volume kan ongewenst zijn voor acties zoals omschakelen van afspelen/pauzeren op een mediaspeler. De tweede definieert of de doeltoepassing gestart moet worden als deze nog niet actief is wanneer de knop wordt ingedrukt. Het zou bijvoorbeeld zinloos zijn voor acties die een toepassing sluit om deze te starten. De derde en laatste optie voor acties is om te definiëren welk exemplaar van een toepassing de actie zou moeten ontvangen als er meer dan één exemplaar actief is. Als u een toepassing hebt geselecteerd waarvan alleen één exemplaar actief kan zijn, dan is deze optie uitgeschakeld. </para>
      <para>
        <screenshot>
        <screeninfo
>ActieOptiesToevoegen</screeninfo>
          <mediaobject>
            <imageobject>
              <imagedata fileref="AddActionOptions.png" format="PNG"/>
            </imageobject>
            <textobject>
              <phrase
>Opties voor acties</phrase>
            </textobject>
          </mediaobject>
        </screenshot>
      </para>
      <para
>Acties kunnen ook automatisch worden toegekend met de assistentknop. Dit betekent dat &kremotecontrol; kan proberen om knoppen voor u overeen te laten komen met functies. De dialoog Autobevolken toont alle beschikbare sjabloonverzamelingen met een vlag. Ahankelijk van de kleur van de vlag wordt uw afstandsbediening volledig, gedeeltelijk of niet ondersteund door dat profiel. Groen betekent alle sjablonen in de verzameling komen met uw afstandsbediening overeen, geel betekent enkele komen overeen en rood betekent geen van de sjablonen komt overeen met de knoppen van uw afstandsbediening. Dit betekent niet dat u deze sjablonen niet kan gebruiken. U moet de gewenste knoppen eenvoudig een voor een zelf instellen. <screenshot>
        <screeninfo
>AutoBevolken</screeninfo>
          <mediaobject>
            <imageobject>
              <imagedata fileref="AutoPopulate.png" format="PNG"/>
            </imageobject>
            <textobject>
              <phrase
>Automatisch acties genereren met gebruik van sjablonen</phrase>
            </textobject>
          </mediaobject>
        </screenshot>
      </para>
      <para
><emphasis role="strong"
>Opmerking:</emphasis
> Als uw afstandsbediening niet compatibel is met enig profiel dan zou het kunnen dat u lirc niet hebt geconfigureerd met gebruik van naamruimten. </para>
    </sect1>
  </chapter>
  <chapter id="advancedInformation">
    <title
>Geavanceerde informatie</title>
    <para
>Dit hoofdstuk laat enige informatie zien die interessant zou kunnen zijn voor meer geavanceerde gebruikers of ontwikkelaars. U leert hoe uw eigen profielen aan te maken. </para>

    <sect1 id="profileCreation">
      <title
>Een profiel aanmaken</title>

      <sect2>
        <title
>Inleiding</title>
        <para
>Bijna alle programma's die &DBus; kunnen gebruiken, kunnen gebruikt worden met &kremotecontrol; zonder verdere acties. U zou echter, om een gebruikersvriendelijke configuratie te leveren en om de het programma te laten verschijnen in de auto-invul-dialoog, er een profiel voor kunnen aanmaken. </para>
        <para
>Een profiel vertelt aan &kremotecontrol; (en de gebruiker!) wat de verschillende &DBus;-aanroepen doen. In essentie is dit een soort van documentatie voor &DBus;-aanroepen. U hoeft niet alle &DBus;-aanroepen mee te nemen - alleen diegenen waarvan u het gevoel hebt dat de eindgebruiker er het meeste profijt van heeft (gebruikelijk is aanroepen voor <quote
>aanpassingen van het interface</quote
> meer dan aanroepen voor het <quote
>verzamelen van informatie</quote
>). </para>
      </sect2>

      <sect2>
        <title
>Profiel HowTo</title>
        <procedure>

          <step>
            <title
>&DBus;</title>
            <para
>Verzeker u ervan dat de toepassing waarvoor u het profiel wilt aanmaken, zijn functies levert over &DBus;-sessiebus; U kunt dit controleren door te proberen de acties voor die toepassing toe te voegen, met de handmatige methode in &kremotecontrol;. De <quote
>qdbusviewer</quote
> toepassing, die met uw Qt4-installatie wordt meegeleverd is ook een erg goed hulpmiddel om de &DBus;-eigenschappen van toepassingen op te sporen. </para>
          </step>

          <step>
            <title
>Stap-voor-stap</title>
            <para
>Nadat u de van toepassing zijnde &DBus;-functies hebt gevonden is het nodig deze te beschrijven in een document <filename
>appname.profile.xml</filename
>. Hier is een snelgids over hoe zulke bestanden aan te maken: </para>

            <substeps>
              <step>
                <para
>Maak eerst een nieuw bestand aan met de onderstaande inhoud. De tag <quote
>name</quote
> definieert een korte beschrijvende naam van het profiel. Voeg een beschrijving toe van het profiel in de tag <quote
>description</quote
>. Voeg ook uw naam toe aan de tag <quote
>author</quote
> en een versienummer in de tag <quote
>version</quote
>. Het versienummer is belangrijk bij opwaarderen van uw profiel. &kremotecontrol; zal diegene gebruiken met het hoogste nummer als er meerdere versies van uw profiel in het systeem worden gevonden. </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;Mijn profiel&lt;/name&gt;
    &lt;version&gt;0.1&lt;/version&gt;
    &lt;author&gt;Ik&lt;/author&gt;
    &lt;description&gt;Beschrijvende informatie over wat het profiel doet&lt;/description&gt;
    &lt;action&gt;
        &lt;--  Deze tag zal worden uitgelegd in de volgende stap--&gt;
    &lt;action&gt;

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

              <step>
                <para
>Nadat u het skelet van het profile hebt aangemaakt is het tijd voor wat actiesjablonen. </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;Mijn profiel&lt;/name&gt;
    &lt;version&gt;0.1&lt;/version&gt;
    &lt;author&gt;Ik&lt;/author&gt;
    &lt;description&gt;Beschrijvende informatie over wat het profiel doet&lt;/description&gt;
    &lt;action id="eenUniekeId" repeat="true|false" button="eenKnop"&gt;
      &lt;name&gt;Mijn actie&lt;/name&gt;
      &lt;description&gt;Wat deze actie doet&lt;/description&gt;
      &lt;prototype&gt;
        &lt;--  Deze tag zal worden uitgelegd in de volgende stap--&gt;
      &lt;/prototype&gt;
      &lt;ifmulti&gt;ifMultiOption&lt;/ifmulti&gt;
    &lt;/action&gt;

&lt;/profile&gt;
                </programlisting>
               <para
>Definieer eerst een unieke identifier. Deze zal door &kremotecontrol; worden gebruikt om bestaande acties overeen te laten komen met het sjabloon, bijvoorbeeld voor het lezen van de beschrijving. Deze id moet uniek zijn over het gehele profiel. Het attribuut <quote
>button</quote
> wordt gebruikt voor de autobevolkingsfunctie. Kijk naar het schemabestand <quote
>profile.xsd</quote
> voor een complete lijst van beschikbare knoppennamen. Het attribuut <quote
>repeat</quote
> vertelt of de actie meerdere keren moet worden uitgevoerd als de knop op de afstandsbediening ingedrukt blijft. Als de toepassing gestart moet worden als de knop wordt ingedrukt en nog niet actief is zet dan <quote
>autostart</quote
> op <quote
>true</quote
>. De attributen <quote
>button</quote
>, <quote
>repeat</quote
> en <quote
>autostart</quote
> zijn optioneel. Als <quote
>repeat</quote
> en <quote
>autostart</quote
> niet zijn gedefinieerd, dan krijgen zij de standaard waarde <quote
>false</quote
>. </para>
                 
               <para
>Voeg een korte naam toe aan de tag <quote
>name</quote
> en een beschrijving met gebruik van de tag <quote
>description</quote
>. De eigenschap <quote
>ifmulti</quote
> specificeert wat &kremotecontrol; moet doen als er meerdere exemplaren actief zijn wanneer een knop wordt ingedrukt. U kunt de volgende waarden voor deze eigenschap: <quote
>sendtotop</quote
> (zend de aanroep aan het exemplaar bovenaan de vensterstapel), <quote
>sendtobottom</quote
> (zend aanroep aan het exemplaar onderop de vensterstapel), <quote
>sendtoall</quote
> (zend naar alle exemplaren), <quote
>dontsend</quote
> (zend geen actie naar enig exemplaar) en <quote
>unique</quote
> (Deze toepassing staat geen meerdere exemplaren toe). Als deze tag niet is gedefinieerd, dan neemt &kremotecontrol; aan dat de toepassingen niet meerdere keren actief kan zijn, waarmee deze tag terugvalt op de standaard <quote
>unique</quote
>. </para>
              </step>

              <step>
                <para
>Definieer vervolgens de &DBus;-functie die uitgevoerd zou moeten worden in de <quote
>prototype</quote
>-tag: </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;Mijn profiel&lt;/name&gt;
    &lt;version&gt;0.1&lt;/version&gt;
    &lt;author&gt;Ik&lt;/author&gt;
    &lt;description&gt;Beschrijvende informatie over wat het profiel doet&lt;/description&gt;

    &lt;action id="EenUniekeId"  repeat="true|false" button="eenKnop"&gt;
      &lt;name&gt;Mijn actie&lt;/name&gt;
      &lt;description&gt;Wat deze actie doet&lt;/description&gt;

      &lt;prototype&gt;
        &lt;serviceName&gt;org.example.application&lt;/serviceName&gt;
        &lt;node&gt;Een/Node&lt;/node&gt;
        &lt;function&gt;functie&lt;/function&gt;
      &lt;/prototype&gt;

      &lt;ifmulti&gt;ifMultiOption&lt;/ifmulti&gt;
    &lt;/action&gt;

&lt;/profile&gt;
                </programlisting>
                <para
><quote
>servicename</quote
> bevat de &DBus; servicenaam voor de toepassing, &eg; <quote
>org.kde.plasma-desktop</quote
>. <quote
>node</quote
> bevat de respectievelijke &DBus;-node zoals <quote
>App</quote
>. Voeg de functienaam toe zonder waarde voor terugkeer en argumenten met de tag <quote
>function</quote
>. Bijvoorbeeld <quote
>toggleDashboard</quote
>. </para>
              </step>

              <step>
                <para
>Als de functie argumenten heeft, dan dient u elk van hen te beschrijven, via een beschrijving voor de gebruiker, een type en optioneel een standaard waarde. Een lijst met ondersteunde typen kan gevonden worden in het schemabestand <quote
>profile.xsd</quote
>. De tag <quote
>comment</quote
> kan een nette gebruikersvriendelijke beschrijving bevatten van waarvoor het argument wordt gebruikt. U zou ook een standaard waarde moeten aangeven voor elk argument tussen de tags <quote
>default</quote
>. Merk op dat sjablonen met een knop een standaard waarde voor alle argumenten moeten aangeven anders zal de autobevolkingsfunctie gebroken functies produceren. </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;Mijn profiel&lt;/name&gt;
    &lt;version&gt;0.1&lt;/version&gt;
    &lt;author&gt;Ik&lt;/author&gt;
    &lt;description&gt;Een beschrijving over wat het profiel doet&lt;/description&gt;

    &lt;action id="someUniquId"  repeat="true|false" button="someButton"&gt;
      &lt;name&gt;My Action&lt;/name&gt;
      &lt;description&gt;What this action does&lt;/description&gt;

      &lt;prototype&gt;
        &lt;serviceName&gt;org.example.application&lt;/serviceName&gt;
        &lt;node&gt;SomeNode&lt;/node&gt;
        &lt;function&gt;function&lt;/function&gt;

        &lt;arguments&gt;
          &lt;argument type="QString"&gt;
            &lt;comment&gt;Additional comment&lt;/comment&gt;
            &lt;default&gt;someValue&lt;/default&gt;
          &lt;/argument&gt;
        &lt;/arguments&gt;

      &lt;/prototype&gt;

      &lt;ifmulti&gt;ifMultiOption&lt;/ifmulti&gt;
    &lt;/action&gt;

&lt;/profile&gt;
                  </programlisting>
              </step>
            </substeps>
          </step>
        </procedure>
      </sect2>
      <sect2>
        <title
>Installatie</title>
          <para
>Om het profiel te testen en te gebruiken is het nodig het te kopiëren naar <filename
>$(kde_datadir)/profiles</filename
> en &kremotecontrol; te herstarten. </para>
          <para
>Als u het leuk zou vinden om het profiel bij te dragen aan &kde; SC, stuur het dan naar het kdeutils-team op <email
>kde-utils-devel@kde.org</email
>. </para>
        </sect2>
    </sect1>
  </chapter>
</book>
