/usr/share/gtk-doc/html/libgpod/libgpod-The-Itdb-iTunesDB-structure.html is in libgpod-doc 0.8.3-4ubuntu3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 | <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>iPod database reading/writing</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="libgpod Reference Manual">
<link rel="up" href="itunesdb.html" title="Part I. iPod database">
<link rel="prev" href="itunesdb.html" title="Part I. iPod database">
<link rel="next" href="libgpod-File-handling-functions.html" title="File handling functions">
<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
<tr valign="middle">
<td><a accesskey="p" href="itunesdb.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="itunesdb.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">libgpod Reference Manual</th>
<td><a accesskey="n" href="libgpod-File-handling-functions.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts">
<a href="#libgpod-The-Itdb-iTunesDB-structure.synopsis" class="shortcut">Top</a>
|
<a href="#libgpod-The-Itdb-iTunesDB-structure.description" class="shortcut">Description</a>
</td></tr>
</table>
<div class="refentry">
<a name="libgpod-The-Itdb-iTunesDB-structure"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="libgpod-The-Itdb-iTunesDB-structure.top_of_page"></a>iPod database reading/writing</span></h2>
<p>iPod database reading/writing — Functions to read, write, and create an iPod database</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv">
<a name="libgpod-The-Itdb-iTunesDB-structure.synopsis"></a><h2>Synopsis</h2>
<pre class="synopsis"></pre>
</div>
<div class="refsect1">
<a name="libgpod-The-Itdb-iTunesDB-structure.description"></a><h2>Description</h2>
<p>
These functions are for reading, writing, creating, and deleting an iPod
database and getting the total number of tracks and playlists.
</p>
<p>
Overview of using an iPod database:
</p>
<p>
<code class="function">itdb_parse()</code>: read the iTunesDB and ArtworkDB
</p>
<p>
<code class="function">itdb_write()</code>: write the iTunesDB and ArtworkDB
</p>
<p>
<code class="function">itdb_parse()</code> will return a <span class="type">Itdb_iTunesDB</span> structure with GLists
containing all tracks the playlists in the database. Each track is
represented by an <span class="type">Itdb_Track</span>. Each playlist is represented by an
<span class="type">Itdb_Playlist</span>. See the <a class="link" href="libgpod-Tracks.html" title="Tracks">Tracks</a>
and <a class="link" href="libgpod-Playlists.html" title="Playlists">Playlists</a> sections for
details on tracks and playlists, respectively.
</p>
<p>
Each <span class="type">Itdb_Playlist</span> has a GList called <em class="parameter"><code>members</code></em> which contains all of
the tracks in the playlist. Tracks referenced in a playlist must also
be present in the <em class="parameter"><code>tracks</code></em> GList of the <span class="type">Itdb_iTunesDB</span>.
</p>
<p>
The iPod must contain one master playlist (MPL) containing all tracks
accessible on the iPod through the Music->Tracks/Albums/Artists/etc.
menu. In addition to the MPL there can be a number of normal
playlists accessible through the Music->Playlists menu on the iPod.
Tracks that are a member of one of these normal playlists must also be
a member of the MPL.
</p>
<p>
The Podcasts playlist is just another playlist with some internal
flags set differently. Tracks in the Podcasts playlist are not
normally members of the MPL (so on the iPod they will only show up
under the Podcasts menu). All tracks referenced must be in the
<em class="parameter"><code>tracks</code></em> GList of the <span class="type">Itdb_iTunesDB</span>, however.
</p>
<p>
Each track may have a thumbnail associated with it. You can retrieve a
<span class="type">GdkPixmap</span> of the thumbnail using <code class="function">itdb_artwork_get_pixbuf()</code>. A
thumbnail can be added with <code class="function">itdb_track_set_thumbnails()</code>. A thumbnail
can be removed with <code class="function">itdb_track_remove_thumbnails()</code>. Please see the
<a class="link" href="libgpod-Artwork.html" title="Artwork">Artwork</a> section for more
details on artwork related functions and structures.
</p>
<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Note</h3>
<p>
Be aware that iTunes additionally stores the artwork as tags
in the original music file. That's also from where the data is
read when artwork is displayed in iTunes, and there can be more
than one piece of artwork. libgpod does not store the artwork as
tags in the original music file. As a consequence, if iTunes
attempts to access the artwork, it will find none, and remove
libgpod's artwork. Luckily, iTunes will only attempt to access
the artwork if you select a track in iTunes. To work around
this, gtkpod keeps a list of the original filename of all
artwork and silently adds the thumbnails if they were 'lost'.
Your application might want to do something similar, or you can
supply patches for (optionally!) adding tags to the original music
files.
</p>
</div>
<p>
The <span class="type">Itdb_iTunesDB</span>, <span class="type">Itdb_Playlist</span> and <span class="type">Itdb_Track</span> structures each
have <em class="parameter"><code>userdata</code></em> and <em class="parameter"><code>usertype</code></em> fields that can be used by the
application to store additional application-specific data. If
<em class="parameter"><code>userdata</code></em> is a pointer to an external structure, you can supply a
<span class="type">ItdbUserDataDuplicateFunc</span> and a <span class="type">ItdbUserDataDestroyFunc</span> so that this
data can be duplicated or freed automatically with a call to the
library <code class="function">_duplicate()</code>/<code class="function">_free()</code> functions.
</p>
</div>
<div class="refsect1">
<a name="libgpod-The-Itdb-iTunesDB-structure.details"></a><h2>Details</h2>
</div>
</div>
<div class="footer">
<hr>
Generated by GTK-Doc V1.19</div>
</body>
</html>
|