Sophie

Sophie

distrib > Mageia > 6 > armv5tl > by-pkgid > 9ee5ef51dbf4a00567f58cff4d0e160c > files > 96

qtmultimedia5-doc-5.9.4-1.mga6.noarch.rpm

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- qaudiodecodercontrol.cpp -->
  <title>QAudioDecoderControl Class | Qt Multimedia 5.9</title>
  <link rel="stylesheet" type="text/css" href="style/offline-simple.css" />
  <script type="text/javascript">
    document.getElementsByTagName("link").item(0).setAttribute("href", "style/offline.css");
    // loading style sheet breaks anchors that were jumped to before
    // so force jumping to anchor again
    setTimeout(function() {
        var anchor = location.hash;
        // need to jump to different anchor first (e.g. none)
        location.hash = "#";
        setTimeout(function() {
            location.hash = anchor;
        }, 0);
    }, 0);
  </script>
</head>
<body>
<div class="header" id="qtdocheader">
  <div class="main">
    <div class="main-rounded">
      <div class="navigationbar">
        <table><tr>
<td >Qt 5.9</td><td ><a href="qtmultimedia-index.html">Qt Multimedia</a></td><td ><a href="qtmultimedia-modules.html">C++ Classes</a></td><td >QAudioDecoderControl</td></tr></table><table class="buildversion"><tr>
<td id="buildversion" width="100%" align="right">Qt 5.9.4 Reference Documentation</td>
        </tr></table>
      </div>
    </div>
<div class="content">
<div class="line">
<div class="content mainContent">
<div class="sidebar">
<div class="toc">
<h3><a name="toc">Contents</a></h3>
<ul>
<li class="level1"><a href="#public-functions">Public Functions</a></li>
<li class="level1"><a href="#signals">Signals</a></li>
<li class="level1"><a href="#protected-functions">Protected Functions</a></li>
<li class="level1"><a href="#macros">Macros</a></li>
<li class="level1"><a href="#details">Detailed Description</a></li>
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
<h1 class="title">QAudioDecoderControl Class</h1>
<!-- $$$QAudioDecoderControl-brief -->
<p>The <a href="qaudiodecodercontrol.html">QAudioDecoderControl</a> class provides access to the audio decoding functionality of a <a href="qmediaservice.html">QMediaService</a>. <a href="#details">More...</a></p>
<!-- @@@QAudioDecoderControl -->
<div class="table"><table class="alignedsummary">
<tr><td class="memItemLeft rightAlign topAlign"> Header:</td><td class="memItemRight bottomAlign">   <span class="preprocessor">#include &lt;QAudioDecoderControl&gt;</span>
</td></tr><tr><td class="memItemLeft rightAlign topAlign"> qmake:</td><td class="memItemRight bottomAlign"> QT += multimedia</td></tr><tr><td class="memItemLeft rightAlign topAlign"> Inherits:</td><td class="memItemRight bottomAlign"> <a href="qmediacontrol.html">QMediaControl</a></td></tr></table></div><p><b>This class is under development and is subject to change.</b></p>
<ul>
<li><a href="qaudiodecodercontrol-members.html">List of all members, including inherited members</a></li>
</ul>
<a name="public-functions"></a>
<h2 id="public-functions">Public Functions</h2>
<div class="table"><table class="alignedsummary">
<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="qaudiodecodercontrol.html#dtor.QAudioDecoderControl">~QAudioDecoderControl</a></b>()</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> virtual QAudioFormat </td><td class="memItemRight bottomAlign"><b><a href="qaudiodecodercontrol.html#audioFormat">audioFormat</a></b>() const = 0</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> virtual bool </td><td class="memItemRight bottomAlign"><b><a href="qaudiodecodercontrol.html#bufferAvailable">bufferAvailable</a></b>() const = 0</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> virtual qint64 </td><td class="memItemRight bottomAlign"><b><a href="qaudiodecodercontrol.html#duration">duration</a></b>() const = 0</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> virtual qint64 </td><td class="memItemRight bottomAlign"><b><a href="qaudiodecodercontrol.html#position">position</a></b>() const = 0</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> virtual QAudioBuffer </td><td class="memItemRight bottomAlign"><b><a href="qaudiodecodercontrol.html#read">read</a></b>() = 0</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> virtual void </td><td class="memItemRight bottomAlign"><b><a href="qaudiodecodercontrol.html#setAudioFormat">setAudioFormat</a></b>(const QAudioFormat &amp;<i>format</i>) = 0</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> virtual void </td><td class="memItemRight bottomAlign"><b><a href="qaudiodecodercontrol.html#setSourceDevice">setSourceDevice</a></b>(QIODevice *<i>device</i>) = 0</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> virtual void </td><td class="memItemRight bottomAlign"><b><a href="qaudiodecodercontrol.html#setSourceFilename">setSourceFilename</a></b>(const QString &amp;<i>fileName</i>) = 0</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> virtual QIODevice *</td><td class="memItemRight bottomAlign"><b><a href="qaudiodecodercontrol.html#sourceDevice">sourceDevice</a></b>() const = 0</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> virtual QString </td><td class="memItemRight bottomAlign"><b><a href="qaudiodecodercontrol.html#sourceFilename">sourceFilename</a></b>() const = 0</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> virtual void </td><td class="memItemRight bottomAlign"><b><a href="qaudiodecodercontrol.html#start">start</a></b>() = 0</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> virtual QAudioDecoder::State </td><td class="memItemRight bottomAlign"><b><a href="qaudiodecodercontrol.html#state">state</a></b>() const = 0</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> virtual void </td><td class="memItemRight bottomAlign"><b><a href="qaudiodecodercontrol.html#stop">stop</a></b>() = 0</td></tr>
</table></div>
<a name="signals"></a>
<h2 id="signals">Signals</h2>
<div class="table"><table class="alignedsummary">
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qaudiodecodercontrol.html#bufferAvailableChanged">bufferAvailableChanged</a></b>(bool <i>available</i>)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qaudiodecodercontrol.html#bufferReady">bufferReady</a></b>()</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qaudiodecodercontrol.html#durationChanged">durationChanged</a></b>(qint64 <i>duration</i>)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qaudiodecodercontrol.html#error">error</a></b>(int <i>error</i>, const QString &amp;<i>errorString</i>)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qaudiodecodercontrol.html#finished">finished</a></b>()</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qaudiodecodercontrol.html#formatChanged">formatChanged</a></b>(const QAudioFormat &amp;<i>format</i>)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qaudiodecodercontrol.html#positionChanged">positionChanged</a></b>(qint64 <i>position</i>)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qaudiodecodercontrol.html#sourceChanged">sourceChanged</a></b>()</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="qaudiodecodercontrol.html#stateChanged">stateChanged</a></b>(QAudioDecoder::State <i>state</i>)</td></tr>
</table></div>
<a name="protected-functions"></a>
<h2 id="protected-functions">Protected Functions</h2>
<div class="table"><table class="alignedsummary">
<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="qaudiodecodercontrol.html#QAudioDecoderControl">QAudioDecoderControl</a></b>(QObject *<i>parent</i> = Q_NULLPTR)</td></tr>
</table></div>
<a name="macros"></a>
<h2 id="macros">Macros</h2>
<div class="table"><table class="alignedsummary">
<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="qaudiodecodercontrol.html#QAudioDecoderControl_iid">QAudioDecoderControl_iid</a></b></td></tr>
</table></div>
<a name="details"></a>
<!-- $$$QAudioDecoderControl-description -->
<div class="descr">
<h2 id="details">Detailed Description</h2>
<p>The <a href="qaudiodecodercontrol.html">QAudioDecoderControl</a> class provides access to the audio decoding functionality of a <a href="qmediaservice.html">QMediaService</a>.</p>
<p>The functionality provided by this control is exposed to application code through the <a href="qaudiodecoder.html">QAudioDecoder</a> class.</p>
<p>The interface name of <a href="qaudiodecodercontrol.html">QAudioDecoderControl</a> is <code>org.qt-project.qt.audiodecodercontrol/5.0</code> as defined in <a href="qaudiodecodercontrol.html#QAudioDecoderControl_iid">QAudioDecoderControl_iid</a>.</p>
</div>
<p><b>See also </b><a href="qmediaservice.html#requestControl-1">QMediaService::requestControl</a>() and <a href="qaudiodecoder.html">QAudioDecoder</a>.</p>
<!-- @@@QAudioDecoderControl -->
<div class="func">
<h2>Member Function Documentation</h2>
<!-- $$$QAudioDecoderControl[overload1]$$$QAudioDecoderControlQObject* -->
<h3 class="fn" id="QAudioDecoderControl"><a name="QAudioDecoderControl"></a><code>[protected] </code>QAudioDecoderControl::<span class="name">QAudioDecoderControl</span>(<span class="type">QObject</span> *<i>parent</i> = Q_NULLPTR)</h3>
<p>Constructs a new audio decoder control with the given <i>parent</i>.</p>
<!-- @@@QAudioDecoderControl -->
<!-- $$$~QAudioDecoderControl[overload1]$$$~QAudioDecoderControl -->
<h3 class="fn" id="dtor.QAudioDecoderControl"><a name="dtor.QAudioDecoderControl"></a>QAudioDecoderControl::<span class="name">~QAudioDecoderControl</span>()</h3>
<p>Destroys an audio decoder control.</p>
<!-- @@@~QAudioDecoderControl -->
<!-- $$$audioFormat[overload1]$$$audioFormat -->
<h3 class="fn" id="audioFormat"><a name="audioFormat"></a><code>[pure virtual] </code><span class="type"><a href="qaudioformat.html">QAudioFormat</a></span> QAudioDecoderControl::<span class="name">audioFormat</span>() const</h3>
<p>Returns the current audio format of the decoded stream.</p>
<p>Any buffers returned should have this format.</p>
<p><b>See also </b><a href="qaudiodecodercontrol.html#setAudioFormat">setAudioFormat</a>() and <a href="qaudiodecodercontrol.html#formatChanged">formatChanged</a>().</p>
<!-- @@@audioFormat -->
<!-- $$$bufferAvailable[overload1]$$$bufferAvailable -->
<h3 class="fn" id="bufferAvailable"><a name="bufferAvailable"></a><code>[pure virtual] </code><span class="type">bool</span> QAudioDecoderControl::<span class="name">bufferAvailable</span>() const</h3>
<p>Returns true if a buffer is available to be read, and false otherwise.</p>
<!-- @@@bufferAvailable -->
<!-- $$$bufferAvailableChanged[overload1]$$$bufferAvailableChangedbool -->
<h3 class="fn" id="bufferAvailableChanged"><a name="bufferAvailableChanged"></a><code>[signal] </code><span class="type">void</span> QAudioDecoderControl::<span class="name">bufferAvailableChanged</span>(<span class="type">bool</span> <i>available</i>)</h3>
<p>Signals that the <a href="qaudiodecodercontrol.html#bufferAvailable">bufferAvailable</a> property has changed to <i>available</i>.</p>
<!-- @@@bufferAvailableChanged -->
<!-- $$$bufferReady[overload1]$$$bufferReady -->
<h3 class="fn" id="bufferReady"><a name="bufferReady"></a><code>[signal] </code><span class="type">void</span> QAudioDecoderControl::<span class="name">bufferReady</span>()</h3>
<p>Signals that a new buffer is ready for reading.</p>
<!-- @@@bufferReady -->
<!-- $$$duration[overload1]$$$duration -->
<h3 class="fn" id="duration"><a name="duration"></a><code>[pure virtual] </code><span class="type">qint64</span> QAudioDecoderControl::<span class="name">duration</span>() const</h3>
<p>Returns total duration (in milliseconds) of the audio stream or -1 if not available.</p>
<!-- @@@duration -->
<!-- $$$durationChanged[overload1]$$$durationChangedqint64 -->
<h3 class="fn" id="durationChanged"><a name="durationChanged"></a><code>[signal] </code><span class="type">void</span> QAudioDecoderControl::<span class="name">durationChanged</span>(<span class="type">qint64</span> <i>duration</i>)</h3>
<p>Signals that the estimated <i>duration</i> of the decoded data has changed.</p>
<p><b>See also </b><a href="qaudiodecodercontrol.html#positionChanged">positionChanged</a>().</p>
<!-- @@@durationChanged -->
<!-- $$$error[overload1]$$$errorintconstQString& -->
<h3 class="fn" id="error"><a name="error"></a><code>[signal] </code><span class="type">void</span> QAudioDecoderControl::<span class="name">error</span>(<span class="type">int</span> <i>error</i>, const <span class="type">QString</span> &amp;<i>errorString</i>)</h3>
<p>Signals that an <i>error</i> has occurred. The <i>errorString</i> provides a more detailed explanation.</p>
<!-- @@@error -->
<!-- $$$finished[overload1]$$$finished -->
<h3 class="fn" id="finished"><a name="finished"></a><code>[signal] </code><span class="type">void</span> QAudioDecoderControl::<span class="name">finished</span>()</h3>
<p>Signals that the decoding has finished successfully. If decoding fails, error signal is emitted instead.</p>
<p><b>See also </b><a href="qaudiodecodercontrol.html#start">start</a>(), <a href="qaudiodecodercontrol.html#stop">stop</a>(), and <a href="qaudiodecodercontrol.html#error">error</a>().</p>
<!-- @@@finished -->
<!-- $$$formatChanged[overload1]$$$formatChangedconstQAudioFormat& -->
<h3 class="fn" id="formatChanged"><a name="formatChanged"></a><code>[signal] </code><span class="type">void</span> QAudioDecoderControl::<span class="name">formatChanged</span>(const <span class="type"><a href="qaudioformat.html">QAudioFormat</a></span> &amp;<i>format</i>)</h3>
<p>Signals that the current audio format of the decoder has changed to <i>format</i>.</p>
<p><b>See also </b><a href="qaudiodecodercontrol.html#audioFormat">audioFormat</a>() and <a href="qaudiodecodercontrol.html#setAudioFormat">setAudioFormat</a>().</p>
<!-- @@@formatChanged -->
<!-- $$$position[overload1]$$$position -->
<h3 class="fn" id="position"><a name="position"></a><code>[pure virtual] </code><span class="type">qint64</span> QAudioDecoderControl::<span class="name">position</span>() const</h3>
<p>Returns position (in milliseconds) of the last buffer read from the decoder or -1 if no buffers have been read.</p>
<!-- @@@position -->
<!-- $$$positionChanged[overload1]$$$positionChangedqint64 -->
<h3 class="fn" id="positionChanged"><a name="positionChanged"></a><code>[signal] </code><span class="type">void</span> QAudioDecoderControl::<span class="name">positionChanged</span>(<span class="type">qint64</span> <i>position</i>)</h3>
<p>Signals that the current <i>position</i> of the decoder has changed.</p>
<p><b>See also </b><a href="qaudiodecodercontrol.html#durationChanged">durationChanged</a>().</p>
<!-- @@@positionChanged -->
<!-- $$$read[overload1]$$$read -->
<h3 class="fn" id="read"><a name="read"></a><code>[pure virtual] </code><span class="type"><a href="qaudiobuffer.html">QAudioBuffer</a></span> QAudioDecoderControl::<span class="name">read</span>()</h3>
<p>Attempts to read a buffer from the decoder, without blocking. Returns invalid buffer if there are no decoded buffers available, or on error.</p>
<!-- @@@read -->
<!-- $$$setAudioFormat[overload1]$$$setAudioFormatconstQAudioFormat& -->
<h3 class="fn" id="setAudioFormat"><a name="setAudioFormat"></a><code>[pure virtual] </code><span class="type">void</span> QAudioDecoderControl::<span class="name">setAudioFormat</span>(const <span class="type"><a href="qaudioformat.html">QAudioFormat</a></span> &amp;<i>format</i>)</h3>
<p>Set the desired audio format for decoded samples to <i>format</i>.</p>
<p>If the decoder does not support this format, <a href="qaudiodecodercontrol.html#error">error</a>() will be set to <code>FormatError</code>.</p>
<p>If you do not specify a format, the format of the decoded audio itself will be used. Otherwise, some format conversion will be applied.</p>
<p>If you wish to reset the decoded format to that of the original audio file, you can specify an invalid <i>format</i>.</p>
<p><b>See also </b><a href="qaudiodecodercontrol.html#audioFormat">audioFormat</a>().</p>
<!-- @@@setAudioFormat -->
<!-- $$$setSourceDevice[overload1]$$$setSourceDeviceQIODevice* -->
<h3 class="fn" id="setSourceDevice"><a name="setSourceDevice"></a><code>[pure virtual] </code><span class="type">void</span> QAudioDecoderControl::<span class="name">setSourceDevice</span>(<span class="type">QIODevice</span> *<i>device</i>)</h3>
<p>Sets the current source to <i>device</i>. Changing the source will stop any current decoding and discard any buffers.</p>
<p>Sources are exclusive, so only one can be set.</p>
<p><b>See also </b><a href="qaudiodecodercontrol.html#sourceDevice">sourceDevice</a>().</p>
<!-- @@@setSourceDevice -->
<!-- $$$setSourceFilename[overload1]$$$setSourceFilenameconstQString& -->
<h3 class="fn" id="setSourceFilename"><a name="setSourceFilename"></a><code>[pure virtual] </code><span class="type">void</span> QAudioDecoderControl::<span class="name">setSourceFilename</span>(const <span class="type">QString</span> &amp;<i>fileName</i>)</h3>
<p>Sets the current source to <i>fileName</i>. Changing the source will stop any current decoding and discard any buffers.</p>
<p>Sources are exclusive, so only one can be set.</p>
<p><b>See also </b><a href="qaudiodecodercontrol.html#sourceFilename">sourceFilename</a>().</p>
<!-- @@@setSourceFilename -->
<!-- $$$sourceChanged[overload1]$$$sourceChanged -->
<h3 class="fn" id="sourceChanged"><a name="sourceChanged"></a><code>[signal] </code><span class="type">void</span> QAudioDecoderControl::<span class="name">sourceChanged</span>()</h3>
<p>Signals that the current source of the decoder has changed.</p>
<p><b>See also </b><a href="qaudiodecodercontrol.html#sourceFilename">sourceFilename</a>() and <a href="qaudiodecodercontrol.html#sourceDevice">sourceDevice</a>().</p>
<!-- @@@sourceChanged -->
<!-- $$$sourceDevice[overload1]$$$sourceDevice -->
<h3 class="fn" id="sourceDevice"><a name="sourceDevice"></a><code>[pure virtual] </code><span class="type">QIODevice</span> *QAudioDecoderControl::<span class="name">sourceDevice</span>() const</h3>
<p>Returns the current media source QIODevice, or 0 if none (or a file).</p>
<p><b>See also </b><a href="qaudiodecodercontrol.html#setSourceDevice">setSourceDevice</a>().</p>
<!-- @@@sourceDevice -->
<!-- $$$sourceFilename[overload1]$$$sourceFilename -->
<h3 class="fn" id="sourceFilename"><a name="sourceFilename"></a><code>[pure virtual] </code><span class="type">QString</span> QAudioDecoderControl::<span class="name">sourceFilename</span>() const</h3>
<p>Returns the current media source filename, or a null QString if none (or a device)</p>
<p><b>See also </b><a href="qaudiodecodercontrol.html#setSourceFilename">setSourceFilename</a>().</p>
<!-- @@@sourceFilename -->
<!-- $$$start[overload1]$$$start -->
<h3 class="fn" id="start"><a name="start"></a><code>[pure virtual] </code><span class="type">void</span> QAudioDecoderControl::<span class="name">start</span>()</h3>
<p>Starts decoding the current media.</p>
<p>If successful the player control will immediately enter the <a href="qaudiodecoder.html#State-enum">decoding</a> state.</p>
<p><b>See also </b><a href="qaudiodecodercontrol.html#state">state</a>() and <a href="qaudiodecodercontrol.html#read">read</a>().</p>
<!-- @@@start -->
<!-- $$$state[overload1]$$$state -->
<h3 class="fn" id="state"><a name="state"></a><code>[pure virtual] </code><span class="type"><a href="qaudiodecoder.html#State-enum">QAudioDecoder::State</a></span> QAudioDecoderControl::<span class="name">state</span>() const</h3>
<p>Returns the state of a player control.</p>
<!-- @@@state -->
<!-- $$$stateChanged[overload1]$$$stateChangedQAudioDecoder::State -->
<h3 class="fn" id="stateChanged"><a name="stateChanged"></a><code>[signal] </code><span class="type">void</span> QAudioDecoderControl::<span class="name">stateChanged</span>(<span class="type"><a href="qaudiodecoder.html#State-enum">QAudioDecoder::State</a></span> <i>state</i>)</h3>
<p>Signals that the <i>state</i> of a player control has changed.</p>
<p><b>See also </b><a href="qaudiodecodercontrol.html#state">state</a>().</p>
<!-- @@@stateChanged -->
<!-- $$$stop[overload1]$$$stop -->
<h3 class="fn" id="stop"><a name="stop"></a><code>[pure virtual] </code><span class="type">void</span> QAudioDecoderControl::<span class="name">stop</span>()</h3>
<p>Stops playback of the current media and discards any buffers.</p>
<p>If successful the player control will immediately enter the <a href="qaudiodecoder.html#State-enum">stopped</a> state.</p>
<!-- @@@stop -->
</div>
<div class="macros">
<h2>Macro Documentation</h2>
<!-- $$$QAudioDecoderControl_iid[overload1]$$$QAudioDecoderControl_iid -->
<h3 class="fn" id="QAudioDecoderControl_iid"><a name="QAudioDecoderControl_iid"></a><span class="name">QAudioDecoderControl_iid</span></h3>
<p><code>org.qt-project.qt.audiodecodercontrol/5.0</code></p>
<p>Defines the interface name of the <a href="qaudiodecodercontrol.html">QAudioDecoderControl</a> class.</p>
<!-- @@@QAudioDecoderControl_iid -->
</div>
        </div>
       </div>
   </div>
   </div>
</div>
<div class="footer">
   <p>
   <acronym title="Copyright">&copy;</acronym> 2017 The Qt Company Ltd.
   Documentation contributions included herein are the copyrights of
   their respective owners.<br>    The documentation provided herein is licensed under the terms of the    <a href="http://www.gnu.org/licenses/fdl.html">GNU Free Documentation    License version 1.3</a> as published by the Free Software Foundation.<br>    Qt and respective logos are trademarks of The Qt Company Ltd.     in Finland and/or other countries worldwide. All other trademarks are property
   of their respective owners. </p>
</div>
</body>
</html>