Cyberwizzard.nl

Welcome to my world

Amarok2 TrackInfo object in QtScript

I just started playing with QtScript in Amarok 2.0.1.1 and so far the documentation has been a big let down. A lot of things are documented for C++ but the conversion into JavaScript is a lot trickier then it looked.

This is ofcourse because the whole QtScript engine is all new and this will become better over time. In this posting I will show what the TrackInfo object holds, which is returned by Amarok.Engine.currentTrack();

destroyed(QObject*): function () { [native] }
destroyed(): function () { [native] }
deleteLater(): function () { [native] }
objectName: 
title: Hotaka (radio edit)
sampleRate: 44100
bitrate: 192
score: 49.5
rating: 0
inCollection: true
type: mp3
length: 215
fileSize: 5195160
trackNumber: 1
discNumber: 0
playCount: 1
playable: true
album: Hotaka
artist: Juno Reactor
composer: 
genre: Electronic
year: 2002
comment: DHA's Music Archive
path: /mnt/music/Mp3/Albums2/Juno Reactor/Juno Reactor - Hotaka/01 Hotaka (radio edit).mp3
isValid: true
isEditable: true
lyrics: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">

<head>

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    <title>Juno Reactor Hotaka (radio edit) lyrics</title>

</head>

<body><h3><a href='http://lyricwiki.org/Juno_Reactor:Hotaka_%28radio_edit%29'>Hotaka (radio edit)</a> by <a href='http://lyricwiki.org/Juno_Reactor'>Juno Reactor</a></h3>
<pre>
Not found</pre><hr/>Additional Info:
<ul>
<li><strong>url: </strong><a href='http://lyricwiki.org/index.php?title=Juno_Reactor:Hotaka&amp;action=edit' title='url'>http://lyricwiki.org/index.php?title=Juno_Reactor:Hotaka&amp;action=edit</a>
</li>
</ul>
</body>
</html>
So the next time you need some information about the currently playing track you know exactly which fields are available.

On a side note: the isValid boolean tells you if the track info you are parsing is in fact a running track. If Amarok is not playing all fields will be empty or zero. Check isValid before you start processing an empty data object...