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

<book id="kremotecontrol" lang="&language;">
  <bookinfo>
    <title
>Inställning av KDE:s infraröda fjärrkontroll</title>

    <authorgroup>
      <author
><firstname
>Michael</firstname
> <surname
>Zanetti</surname
> <affiliation
> <address
><email
>michael_zanetti@gmx.net</email
></address>
        </affiliation>
      </author>
    <othercredit role="translator"
> <firstname
>Stefan</firstname
> <surname
>Asserhäll</surname
> <affiliation
><address
><email
>stefan.asserhall@comhem.se</email
></address
></affiliation
> <contrib
>Översättare</contrib
></othercredit
> 
    </authorgroup>

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

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

    <abstract>
      <para
>&kremotecontrol;-inställning: Infrastrukturen för &kde;:s infraröda fjärrkontrollfunktion. </para>
    </abstract>
    
    <keywordset>
      <keyword
>Kremotecontrol</keyword>
      <keyword
>kcm_remotecontrol</keyword>
      <keyword
>Fjärrkontroll</keyword>
    </keywordset>

  </bookinfo>

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

    <para
>Den här modulen låter dig ställa in dina fjärrkontroller. Du kan tilldela åtgärder som utförs vid knapptryckningar. Åtgärder kan starta program, styra dem eller utföra systemkommandon, som att stänga av datorn. </para>

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

      <para
>Du måste ha ställt in ett kompatibelt gränssnitt för fjärrkontroller på datorn för att använda &kremotecontrol;. För närvarande finns bara ett gränssnitt för LIRC tillgängligt. Om LIRC är riktigt inställt, lyser ikonen för &kremotecontrol; i systembrickan röd <inlinemediaobject
> <imageobject
> <imagedata fileref="irkick.png" format="PNG"/> </imageobject
> </inlinemediaobject
>. Om inte, blir den grå och överkorsad <inlinemediaobject
> <imageobject
> <imagedata fileref="irkickoff.png" format="PNG"/> </imageobject
> </inlinemediaobject
>. </para>

      <para
>För mer information om LIRC, besök deras hemsida på http://www.lirc.org. </para>

    </sect1>
  </chapter>

  <chapter id="usage">
    <title
>Användning</title>

    <para
>Inställningsmodulen består av två listor. Listan till vänster visar tillgängliga fjärrkontroller och deras lägen. Listan till höger visar alla inställda åtgärder för fjärrkontrollen och läget som för närvarande är markerade. <screenshot>
      <screeninfo
>Inställning av &kremotecontrol;</screeninfo>
        <mediaobject>
          <imageobject>
            <imagedata fileref="kcmremotecontrol.png" format="PNG"/>
          </imageobject>
          <textobject>
            <phrase
>Lista över fjärrkontroller samt inställda lägen och åtgärder</phrase>
          </textobject>
        </mediaobject>
      </screenshot>
    </para>

    <sect1 id="modes">
      <title
>Fjärrkontroller och lägen</title>

      <para
>Varje fjärrkontroll kan ha ett antal olika lägen. Genom att ha flera lägen, kan samma knapp utföra olika åtgärder vid olika tillfällen. Tänk på det som en fjärrkontroll med flera användningar för tv, video, satellit och dvd. Istället för att använda olika fjärrkontroller för olika program, kan du ändra beteende hos en fjärrkontroll för att anpassa den till ett program genom att skapa olika lägen och byta mellan dem efter behov. Åtgärder som definieras direkt för fjärrkontrollen är alltid tillgängliga, oberoende av vilket läge fjärrkontrollen för närvarande har. Åtgärder definierade i ett läge utförs bara om fjärrkontrollen för närvarande är inställd i det läget. Varje fjärrkontroll kan bara vara i ett läge åt gången. Den kan också inte vara i något läge alls, vilket betyder att bara åtgärder som alltid är tillgängliga utförs när knappar trycks ner. Man kan också definiera ett standardläge, vilket är det läge som automatiskt tilldelas vid start. </para>
      <para
>Du kan lägga till lägen för en fjärrkontroll genom att markera fjärrkontrollen och använda knappen <guibutton
>+</guibutton
> intill listan. När ett läge skapas måste du ange ett namn på det. Du kan valfritt tilldela en knapp som används för att aktivera läget, och en ikon som används vid underrättelser om läget. Du kan ta bort lägen genom att markera dem och använda knappen <guibutton
>-</guibutton
>. <screenshot>
        <screeninfo
>Lägg till läge</screeninfo>
          <mediaobject>
            <imageobject>
              <imagedata fileref="AddMode.png" format="PNG"/>
            </imageobject>
            <textobject>
              <phrase
>Lägga till ett nytt läge</phrase>
            </textobject>
          </mediaobject>
        </screenshot>
      </para>
      <para
>Om det finns flera lägen med samma knapp tilldelad, används knappen normalt för att gå igenom dessa lägen cykliskt. På så sätt kan du gruppera lägen. Du skulle till exempel kunna tilldela en knapp som kallas <quote
>Musik</quote
> att gå igenom lägen för &amarok; och &juk;, medan en knapp som kallas <quote
>Video</quote
> skulle kunna gå igenom lägen för &dragon; eller Kmplayer. Om du istället vill ha en knapp för att gå igenom alla lägen och en annan för att gå igenom lägen i omvänd ordning, kan du ställa in beteendet i fjärrkontrollinställningarna genom att markera en fjärrkontroll och trycka på redigeringsknappen. <screenshot>
        <screeninfo
>Redigera fjärrkontroll</screeninfo>
          <mediaobject>
            <imageobject>
              <imagedata fileref="EditMasterMode.png" format="PNG"/>
            </imageobject>
            <textobject>
              <phrase
>Redigera en fjärrkontroll</phrase>
            </textobject>
          </mediaobject>
        </screenshot>
      </para>

    </sect1>

    <sect1 id="actions">
      <title
>Åtgärder</title>

      <para
>Efter att ha markerat en fjärrkontroll eller ett läge kan du lägga till åtgärder genom att använda knappen <guibutton
>+</guibutton
> till höger. Det finns två olika sätt som åtgärder kan skapas på. Genom att använda en mall, eller genom att bläddra manuellt via D-Bus sessionsbuss. <screenshot>
        <screeninfo
>Lägg till åtgärd</screeninfo>
          <mediaobject>
            <imageobject>
              <imagedata fileref="AddAction.png" format="PNG"/>
            </imageobject>
            <textobject>
              <phrase
>Lägga till en åtgärd</phrase>
            </textobject>
          </mediaobject>
        </screenshot>
      </para>
      <para
>Det är enklare men begränsat att skapa åtgärder genom att använda mallar. Du hittar mallar för de vanligaste programmen som &amarok; eller &kde;:s programstart och systemkommandon för att stänga av datorn. Dessa mallar är samlade i profiler som grupperar dem i liknande uppgifter. Det finns till exempel en profil som kallas <quote
>Strömsparhantering</quote
> som innehåller mallar för att stänga av eller placera datorn i viloläge. <screenshot>
        <screeninfo
>Lägg till profilåtgärd</screeninfo>
          <mediaobject>
            <imageobject>
              <imagedata fileref="AddProfileAction.png" format="PNG"/>
            </imageobject>
            <textobject>
              <phrase
>Lägga till en åtgärd genom att använda en mall</phrase>
            </textobject>
          </mediaobject>
        </screenshot>
      </para>
      <para
>Skapar åtgärder genom att bläddra i D-Bus där alla program som för närvarande kör listas. Du kan bläddra igenom dem och deras funktioner. Det kräver en grundläggande förståelse för hur D-Bus fungerar, men du kan använda fler program och funktioner än de i listan med mallar. <screenshot>
        <screeninfo
>Lägg till D-Bus åtgärd</screeninfo>
          <mediaobject>
            <imageobject>
              <imagedata fileref="AddDBusAction.png" format="PNG"/>
            </imageobject>
            <textobject>
              <phrase
>Lägga till en åtgärd med D-Bus</phrase>
            </textobject>
          </mediaobject>
        </screenshot>
      </para>
      <para
>När en åtgärd läggs till, kan du finjustera några ytterligare alternativ. Det första av dem definierar om åtgärderna utförs upprepade gånger när knappen på fjärrkontrollen hålls nere. Det är användbart beteende för åtgärder som att öka eller minska volymen, men kan vara oönskat för åtgärder som att byta mellan spela och paus på en mediaspelare. Den andra definierar om målprogrammet ska startas om det inte kör ännu när knappen trycks ner. Det är till exempel inte vettigt om åtgärder som ska stänga ett program skulle starta det. Det tredje och sista alternativet för åtgärder är att definiera vilken instans av ett program som ska ta emot åtgärden om det finns mer än en instans som kör. Om du har valt ett program som inte kan köras flera gånger, är alternativet inaktiverat. </para>
      <para>
        <screenshot>
        <screeninfo
>Lägg till åtgärdsalternativ</screeninfo>
          <mediaobject>
            <imageobject>
              <imagedata fileref="AddActionOptions.png" format="PNG"/>
            </imageobject>
            <textobject>
              <phrase
>Alternativ för åtgärder</phrase>
            </textobject>
          </mediaobject>
        </screenshot>
      </para>
      <para
>Åtgärder kan också fyllas i automatiskt med guideknappen. Det betyder att &kremotecontrol; kan försöka matcha knappar med funktioner åt dig. Dialogrutan för att fylla i automatiskt visar alla tillgängliga mallsamlingar med en flagga. Beroende på flaggans färg stöds fjärrkontrollen helt, delvis eller inte alls av profilen. Grönt betyder att alla ingående mallar kan matchas med fjärrkontrollen, gult betyder att vissa av de ingående mallarna matchar och rött betyder att inga av mallarna kan matchas med knappar på fjärrkontrollen. Det betyder inte att dessa mallar inte kan användas. Du måste bara anpassa dem en efter en, och ställa in önskad knapp själv. <screenshot>
        <screeninfo
>Fyll i automatiskt</screeninfo>
          <mediaobject>
            <imageobject>
              <imagedata fileref="AutoPopulate.png" format="PNG"/>
            </imageobject>
            <textobject>
              <phrase
>Generera automatiskt åtgärder med användning av mallar</phrase>
            </textobject>
          </mediaobject>
        </screenshot>
      </para>
      <para
><emphasis role="strong"
>Observera:</emphasis
> Om fjärrkontrollen inte är kompatibel med någon profil, kanske du inte har ställt in LIRC med namnrymder. </para>
    </sect1>
  </chapter>
  <chapter id="advancedInformation">
    <title
>Avancerad information</title>
    <para
>Det här kapitlet beskriver viss information som kan vara intressant för mer avancerade användare eller utvecklare. Du får lära dig hur du kan skapa egna profiler. </para>

    <sect1 id="profileCreation">
      <title
>Skapa en profil</title>

      <sect2>
        <title
>Inledning</title>
        <para
>Nästan alla program som hanterar &DBus; kan användas med &kremotecontrol; utan några ytterligare åtgärder. För att tillhandahålla en användarvänlig inställning och låta programmet visas i dialogrutan för att fylla i automatiskt, kan du dock vilja skapa en profil för det. </para>
        <para
>En profil talar om för &kremotecontrol; (och användaren), vad de olika &DBus; anropen gör. Det är väsentligen en sorts dokumentation av &DBus; anropen. Du behöver inte inkludera alla &DBus; anrop, bara de du känner att slutanvändare kan dra störst nytta av (oftast anrop som <quote
>modifierar gränssnittet</quote
> istället för <quote
>informationsinsamlande</quote
> anrop). </para>
      </sect2>

      <sect2>
        <title
>Handledning för profiler</title>
        <procedure>

          <step>
            <title
>&DBus;</title>
            <para
>Försäkra dig om att programmet du vill skapa profilen för tillhandahåller funktioner via &DBus; sessionsbuss. I stort sett kan du kontrollera det genom att försöka lägga till åtgärder för programmet med den manuella metoden i &kremotecontrol;. Programmet <quote
>qdbusviewer</quote
>  som levereras med installationen av QT4 är också ett mycket bra verktyg för att ta reda på möjligheter med &DBus; i program. </para>
          </step>

          <step>
            <title
>Steg för steg</title>
            <para
>När du väl har hittat lämpliga &DBus; funktioner, måste du beskriva dem i dokumentet <filename
>pgmnamn.profile.xml</filename
>. Här är en snabbguide om hur man skapar sådana filer: </para>

            <substeps>
              <step>
                <para
>Skapa först en ny fil med innehållet nedan. Taggen <quote
>name</quote
> definierar ett kort beskrivande namn på profilen. Lägg till en beskrivning av profilen i taggen <quote
>description</quote
>. Lägg dessutom till ditt namn i taggen <quote
>author</quote
> och ett versionsnummer i taggen <quote
>version</quote
>. Versionsnumret är viktigt för att kunna uppgradera profilen. &kremotecontrol; använder den med det högsta numret om flera versioner av profilen hittas på datorn. </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;Min profil&lt;/name&gt;
    &lt;version&gt;0.1&lt;/version&gt;
    &lt;author&gt;Jag&lt;/author&gt;
    &lt;description&gt;Någon beskrivande information om vad profilen gör&lt;/description&gt;
    &lt;action&gt;
        &lt;--  Den här taggen förklaras i nästa steg --&gt;
    &lt;action&gt;

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

              <step>
                <para
>Efter du har skapat profilskelettet är det dags att lägga till några åtgärdsmallar. </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;Min profil&lt;/name&gt;
    &lt;version&gt;0.1&lt;/version&gt;
    &lt;author&gt;Jag&lt;/author&gt;
    &lt;description&gt;Någon beskrivande information om vad profilen gör&lt;/description&gt;

    &lt;action id="someUniquId"  repeat="true|false" button="someButton"&gt;
      &lt;name&gt;Min åtgärd&lt;/name&gt;
      &lt;description&gt;Vad åtgärden gör&lt;/description&gt;
      &lt;prototype&gt;
        &lt;-- --&gt;
      &lt;prototype&gt;
      &lt;ifmulti&gt;ifMultiOption&lt;/ifmulti&gt;
    &lt;/action&gt;
    
&lt;/profile&gt;
                </programlisting>
               <para
>Definiera först en unik identifierare. Den används av &kremotecontrol; för att matcha befintliga åtgärder med mallen, till exempel för att läsa beskrivningen. Identifieraren måste vara unik genom hela profilen. Egenskapen <quote
>button</quote
> används för funktionen att fylla i automatiskt. Titta på schemafilen <quote
>profile.xsd</quote
> för en fullständig lista med tillgängliga knappnamn. Egenskapen <quote
>repeat</quote
> talar om ifall åtgärden ska utföras flera gånger om knappen på fjärrkontrollen hålls nere. Om programmet ska startas om det inte kör vid inkommande knapptryckning, ställ in <quote
>autostart</quote
> till <quote
>true</quote
>. Egenskaperna <quote
>button</quote
>, <quote
>repeat</quote
> och <quote
>autostart</quote
> är valfria. Om <quote
>repeat</quote
> och <quote
>autostart</quote
> inte är definierade, får de standardvärdet <quote
>false</quote
>. </para>
                 
               <para
>Lägg till ett kort namn i taggen <quote
>name</quote
> och en beskrivning genom att använda taggen <quote
>description</quote
>. Egenskapen <quote
>ifmulti</quote
> specificerar vad &kremotecontrol; ska göra om det finns flera instanser som kör när knappen trycks ner. Du kan använda följande värden för egenskapen: <quote
>sendtotop</quote
> (skicka anropet till instansen överst bland fönstren), <quote
>sendtobottom</quote
> (skicka anropet till instansen underst bland fönstren), <quote
>sendtoall</quote
> (skicka till alla instanser), <quote
>dontsend</quote
> (skicka inte åtgärden till någon instans) och <quote
>unique</quote
> (programmet tillåter inte flera instanser). Om taggen inte är definierad antar &kremotecontrol; att programmet inte kan köras flera gånger, och ger taggen standardvärdet <quote
>unique</quote
>. </para>
              </step>

              <step>
                <para
>Definiera därefter &DBus;-funktionen som ska köras i <quote
>prototypens</quote
> tagg: </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;Min profil&lt;/name&gt;
    &lt;version&gt;0.1&lt;/version&gt;
    &lt;author&gt;Jag&lt;/author&gt;
    &lt;description&gt;Någon beskrivande information om vad profilen gör&lt;/description&gt;

    &lt;action id="someUniquId"  repeat="true|false" button="someButton"&gt;
      &lt;name&gt;Min åtgärd&lt;/name&gt;
      &lt;description&gt;Vad åtgärden gör&lt;/description&gt;

      &lt;prototype&gt;
        &lt;serviceName&gt;org.example.application&lt;/serviceName&gt;
        &lt;node&gt;Någon/nod&lt;/node&gt;
        &lt;function&gt;funktion&lt;/function&gt;
      &lt;/prototype&gt;

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

&lt;/profile&gt;
                </programlisting>
                <para
><quote
>servicename</quote
> innehåller &DBus; tjänstnamn för programmet, t.ex. <quote
>org.kde.plasma-desktop</quote
>. <quote
>node</quote
> innehåller respektive &DBus; nod, såsom <quote
>App</quote
>. Lägg till funktionsnamnet utan returvärde och argument med taggen <quote
>function</quote
>. Till exempel <quote
>toggleDashboard</quote
>. </para>
              </step>

              <step>
                <para
>Om funktionen har argument, måste du beskriva vart och ett av dem, tillhandahålla en beskrivning för användare, en typ och valfritt ett standardvärde. En lista med typer som stöds finns i schemafilen <quote
>profile.xsd</quote
>. Taggen <quote
>comment</quote
> ska innehålla en trevlig användarvänlig beskrivning av vad argumentet används för. Du ska också definiera ett standardvärde för varje argument mellan taggarna <quote
>default</quote
>. Observera att mallar som innehåller en knapp måste tillhandahålla standardvärden för alla argument, annars producerar funktionen för att fylla i automatiskt felaktiga funktioner. </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;Min profil&lt;/name&gt;
    &lt;version&gt;0.1&lt;/version&gt;
    &lt;author&gt;Jag&lt;/author&gt;
    &lt;description&gt;Någon beskrivande information om vad profilen gör&lt;/description&gt;

    &lt;action id="someUniquId"  repeat="true|false" button="someButton"&gt;
      &lt;name&gt;Min åtgärd&lt;/name&gt;
      &lt;description&gt;Vad den här åtgärden gör&lt;/description&gt;

      &lt;prototype&gt;
        &lt;servicenamn&gt;org.example.application&lt;/servicenamn&gt;
        &lt;node&gt;Någon nod&lt;/node&gt;
        &lt;function&gt;funktion&lt;/function&gt;

        &lt;argument&gt;
          &lt;argumenttyp="QString"&gt;
            &lt;comment&gt;Ytterligare kommentar&lt;/comment&gt;
            &lt;default&gt;något värde&lt;/default&gt;
          &lt;/argument&gt;
        &lt;/arguments&gt;

      &lt;/prototype&gt;

      &lt;ifmulti&gt;om flera-alternativ&lt;/ifmulti&gt;
    &lt;/action&gt;

&lt;/profile&gt;
                  </programlisting>
              </step>
            </substeps>
          </step>
        </procedure>
      </sect2>
      <sect2>
        <title
>Installation</title>
          <para
>För att prova och använda profilen måste du kopiera den till <filename
>$(kde_datadir)/profiles</filename
> och starta om &kremotecontrol;. </para>
          <para
>Om du skulle vilja bidra profilen till &kde;:s programvarusamling, skicka den gärna till &kde;:s verktygsgrupp på <email
>kde-utils-devel@kde.org</email
>. </para>
        </sect2>
    </sect1>
  </chapter>
</book>
