profile/ivi/rygel.git
14 years agocore: Support for 'place holder' items
Zeeshan Ali (Khattak) [Tue, 26 Jan 2010 15:03:15 +0000 (17:03 +0200)]
core: Support for 'place holder' items

Items could be marked as 'place holder'. It means items that do not yet
have any media (empty) available for them.

14 years agocore: Provide 'importUri' for all items
Zeeshan Ali (Khattak) [Tue, 26 Jan 2010 15:00:57 +0000 (17:00 +0200)]
core: Provide 'importUri' for all items

14 years agocore: Use 'this' keyword for more readable code
Zeeshan Ali (Khattak) [Tue, 26 Jan 2010 14:53:24 +0000 (16:53 +0200)]
core: Use 'this' keyword for more readable code

14 years agocore: HTTItemURI creates the whole URI
Zeeshan Ali (Khattak) [Mon, 25 Jan 2010 16:57:27 +0000 (18:57 +0200)]
core: HTTItemURI creates the whole URI

Some parts of URI creation was still in HTTPServer.

14 years agocore: HTTPItemURI gets HTTPServer reference
Zeeshan Ali (Khattak) [Mon, 25 Jan 2010 16:28:00 +0000 (18:28 +0200)]
core: HTTPItemURI gets HTTPServer reference

HTTPItemURI gets reference to associated HTTPServer instance.

14 years agocore: Micro indentation fix
Zeeshan Ali (Khattak) [Mon, 25 Jan 2010 16:21:49 +0000 (18:21 +0200)]
core: Micro indentation fix

14 years agocore: No need to pass around the protocol string
Zeeshan Ali (Khattak) [Mon, 25 Jan 2010 16:18:58 +0000 (18:18 +0200)]
core: No need to pass around the protocol string

14 years agocore: Containers without URIs are 'restricted'
Zeeshan Ali (Khattak) [Wed, 20 Jan 2010 15:44:20 +0000 (17:44 +0200)]
core: Containers without URIs are 'restricted'

14 years agotracker: Category containers provide URIs
Zeeshan Ali (Khattak) [Wed, 20 Jan 2010 15:07:39 +0000 (17:07 +0200)]
tracker: Category containers provide URIs

Category containers (Music, Videos, Pictures) should provides URIs
to user's special directories.

14 years agocore,mediathek: Adapt to new libxml VAPI
Zeeshan Ali (Khattak) [Wed, 3 Feb 2010 13:37:46 +0000 (15:37 +0200)]
core,mediathek: Adapt to new libxml VAPI

14 years agocore: A few fixes to satisfy latest valac (0.7.10)
Philip Withnall [Sun, 31 Jan 2010 17:05:13 +0000 (17:05 +0000)]
core: A few fixes to satisfy latest valac (0.7.10)

14 years agocore: A bunch of coding-style fixes
Zeeshan Ali (Khattak) [Wed, 27 Jan 2010 14:32:52 +0000 (16:32 +0200)]
core: A bunch of coding-style fixes

14 years agocore: Restart application on SIGHUP
Zeeshan Ali (Khattak) [Sun, 24 Jan 2010 01:49:36 +0000 (03:49 +0200)]
core: Restart application on SIGHUP

14 years agocore: Simplify HTTPRequest.handle_item_request()
Zeeshan Ali (Khattak) [Sat, 23 Jan 2010 22:44:34 +0000 (00:44 +0200)]
core: Simplify HTTPRequest.handle_item_request()

14 years agocore: Micro coding-style fix
Zeeshan Ali (Khattak) [Sat, 23 Jan 2010 22:13:58 +0000 (00:13 +0200)]
core: Micro coding-style fix

14 years agocore: Fix cancellation of SeekableResponse
Zeeshan Ali (Khattak) [Sat, 23 Jan 2010 22:11:33 +0000 (00:11 +0200)]
core: Fix cancellation of SeekableResponse

We kept on waiting for libsoup to signal us that bytes sent have been
received by the client even after the client has already closed the
connection and libsoup had informed us about that.

14 years agocore: Clean-up MediaDBContainer code
Zeeshan Ali (Khattak) [Thu, 7 Jan 2010 17:39:20 +0000 (19:39 +0200)]
core: Clean-up MediaDBContainer code

Mostly minor coding-style fixes.

14 years agocore: Remove unneeded newline
Zeeshan Ali (Khattak) [Thu, 7 Jan 2010 17:17:09 +0000 (19:17 +0200)]
core: Remove unneeded newline

14 years agocore: Better error message from SearchCriteriaParser
Zeeshan Ali (Khattak) [Thu, 7 Jan 2010 17:16:29 +0000 (19:16 +0200)]
core: Better error message from SearchCriteriaParser

14 years agocore: Add string property to get current parser context
Zeeshan Ali (Khattak) [Thu, 7 Jan 2010 17:15:20 +0000 (19:15 +0200)]
core: Add string property to get current parser context

14 years agocore: Rename SearchCriteriaParser parsing methods
Zeeshan Ali (Khattak) [Thu, 7 Jan 2010 16:54:58 +0000 (18:54 +0200)]
core: Rename SearchCriteriaParser parsing methods

More descriptive name for SearchCriteriaParser parsing methods.

14 years agocore: Major refactoring of SearchCriteriaParser
Zeeshan Ali (Khattak) [Thu, 7 Jan 2010 16:29:15 +0000 (18:29 +0200)]
core: Major refactoring of SearchCriteriaParser

- Rename Symbol to SearchCriteriaSymbol.
- Rename SearchCriteriaSymbol to SearchCriteriaToken.
- Add private prop to fetch current parser token as SearchCriteriaSymbol.
- No need to convert enum values to int everywhere.
- SearchCriteriaSymbol should also include symbols that are already covered by
  GUPnP.SearchCriteriaOp but the common symbols must contain the same values.

14 years agocore: SearchCriteriaSymbol should be private
Zeeshan Ali (Khattak) [Thu, 7 Jan 2010 14:46:57 +0000 (16:46 +0200)]
core: SearchCriteriaSymbol should be private

14 years agocore: No need for 'construct'
Zeeshan Ali (Khattak) [Thu, 7 Jan 2010 14:34:46 +0000 (16:34 +0200)]
core: No need for 'construct'

14 years agomedia-db: Use correct SQL function for "!="
Jens Georg [Thu, 31 Dec 2009 01:39:49 +0000 (02:39 +0100)]
media-db: Use correct SQL function for "!="

14 years agomedia-db: Refactor search translator
Jens Georg [Sat, 21 Nov 2009 13:47:37 +0000 (14:47 +0100)]
media-db: Refactor search translator

14 years agomedia-db: Rename get_children_with_filter
Jens Georg [Sat, 21 Nov 2009 00:21:52 +0000 (01:21 +0100)]
media-db: Rename get_children_with_filter

The function is not fetching children but arbitrary objects.

14 years agomedia-db: Return empty result on unknown criteria
Jens Georg [Sat, 21 Nov 2009 00:21:04 +0000 (01:21 +0100)]
media-db: Return empty result on unknown criteria

14 years agomedia-db: No need to reparent
Jens Georg [Fri, 20 Nov 2009 23:54:04 +0000 (00:54 +0100)]
media-db: No need to reparent

14 years agomedia-db: Implement search on MediaDBContainer
Jens Georg [Fri, 20 Nov 2009 21:26:30 +0000 (22:26 +0100)]
media-db: Implement search on MediaDBContainer

This features a first draft of translation from SearchExpression to an SQL
where clause.

14 years agocore: Rewrite SearchCriteriaParser
Jens Georg [Sat, 2 Jan 2010 18:53:41 +0000 (19:53 +0100)]
core: Rewrite SearchCriteriaParser

This is a rewrite of SearchCriteriaParser to use GScanner directly

14 years agocore: Correct condition for byte-seeking
Zeeshan Ali (Khattak) [Tue, 19 Jan 2010 15:00:37 +0000 (17:00 +0200)]
core: Correct condition for byte-seeking

We were trying to byte-seek even in case of transcoding.

14 years agocore: Correctly handle boolean commandline options
Zeeshan Ali (Khattak) [Tue, 19 Jan 2010 14:00:57 +0000 (16:00 +0200)]
core: Correctly handle boolean commandline options

14 years agoRevert "core: Push data directly from gst thread"
Zeeshan Ali (Khattak) [Mon, 18 Jan 2010 16:54:55 +0000 (18:54 +0200)]
Revert "core: Push data directly from gst thread"

This reverts commit e5cfcf87fc4bf3f2e82b860ec95388e84f8410f7.

Conflicts:

src/rygel/rygel-live-response.vala

14 years agoRevert "core: Synchronous streaming of LiveResponse"
Zeeshan Ali (Khattak) [Mon, 18 Jan 2010 16:53:12 +0000 (18:53 +0200)]
Revert "core: Synchronous streaming of LiveResponse"

This reverts commit 0189add0b5c1d1aeb0c0d9e93ccff6290a7eafd2.

14 years agocore: Adapt to new Base64.decode() VAPI
Zeeshan Ali (Khattak) [Wed, 13 Jan 2010 00:52:32 +0000 (02:52 +0200)]
core: Adapt to new Base64.decode() VAPI

14 years agocore: Move some code from LiveResponse to GstUtils
Zeeshan Ali (Khattak) [Tue, 27 Oct 2009 13:55:45 +0000 (15:55 +0200)]
core: Move some code from LiveResponse to GstUtils

14 years agocore: Synchronous streaming of LiveResponse
Zeeshan Ali (Khattak) [Tue, 12 Jan 2010 16:52:36 +0000 (18:52 +0200)]
core: Synchronous streaming of LiveResponse

Now we wait for the chunk to be actually sent to the client before
we process any more chunks from fakesink.

14 years agocore: Better name for continuation field
Zeeshan Ali (Khattak) [Tue, 12 Jan 2010 16:13:21 +0000 (18:13 +0200)]
core: Better name for continuation field

14 years agocore: Push data directly from gst thread
Zeeshan Ali (Khattak) [Tue, 12 Jan 2010 15:57:19 +0000 (17:57 +0200)]
core: Push data directly from gst thread

Instead of registering an idle func to push data, simply push it directly
from the gst thread. We only need to be sure that nobody else accesses
the message from the main thread while we do this.

14 years agotest: Micro simplification of code
Zeeshan Ali (Khattak) [Tue, 12 Jan 2010 15:32:30 +0000 (17:32 +0200)]
test: Micro simplification of code

14 years agotest: Remove redundant 'using' statements
Zeeshan Ali (Khattak) [Tue, 12 Jan 2010 15:30:43 +0000 (17:30 +0200)]
test: Remove redundant 'using' statements

14 years agotest: Coding style fixes
Zeeshan Ali (Khattak) [Tue, 12 Jan 2010 15:28:16 +0000 (17:28 +0200)]
test: Coding style fixes

14 years agocore: Explicitly set DLNAv1.5 flag
Zeeshan Ali (Khattak) [Tue, 12 Jan 2010 15:16:46 +0000 (17:16 +0200)]
core: Explicitly set DLNAv1.5 flag

GUPnP AV no longer does this for us.

14 years agocore: Live response is always sender-paced
Zeeshan Ali (Khattak) [Tue, 12 Jan 2010 14:16:54 +0000 (16:16 +0200)]
core: Live response is always sender-paced

14 years agocore: Indicate support for connection stalling
Zeeshan Ali (Khattak) [Mon, 11 Jan 2010 17:16:26 +0000 (19:16 +0200)]
core: Indicate support for connection stalling

We support connection stalling for byte-seekable resources, so we should
indicate that.

14 years agocore: Handle message abortion in HTTPServer
Zeeshan Ali (Khattak) [Mon, 11 Jan 2010 16:57:57 +0000 (18:57 +0200)]
core: Handle message abortion in HTTPServer

Handle message abortion in HTTPServer rather than HTTPResponse so that
requests could be aborted even early in their life-cycle and to simplify
the code by maximizing the use of GIO.Cancellable. This also fixes the
strange critical when aborting LiveResponse.

14 years agocore: HTTPRequest now uses it's own Cancellable
Zeeshan Ali (Khattak) [Mon, 11 Jan 2010 16:55:33 +0000 (18:55 +0200)]
core: HTTPRequest now uses it's own Cancellable

HTTPRequest now uses it's own Cancellable rather than that of HTTPServer.

14 years agocore: HTTPServer keeps a list of active requests
Zeeshan Ali (Khattak) [Mon, 11 Jan 2010 16:54:47 +0000 (18:54 +0200)]
core: HTTPServer keeps a list of active requests

14 years agoEnable check for Vala if any stamp file is absent
Zeeshan Ali (Khattak) [Tue, 5 Jan 2010 18:10:07 +0000 (20:10 +0200)]
Enable check for Vala if any stamp file is absent

Enable check for Vala even if not asked to do so if any of the stamp files
are absent.

14 years agocore: Fix condition for partial content transfer
Zeeshan Ali (Khattak) [Tue, 5 Jan 2010 17:50:46 +0000 (19:50 +0200)]
core: Fix condition for partial content transfer

14 years agobuild: Correct linker argument order
Zeeshan Ali (Khattak) [Tue, 29 Dec 2009 15:58:03 +0000 (17:58 +0200)]
build: Correct linker argument order

This should fix the build issue on Gentoo.

14 years agocore,ui,plugins: Work-around for automake bug
Zeeshan Ali (Khattak) [Mon, 4 Jan 2010 00:28:15 +0000 (02:28 +0200)]
core,ui,plugins: Work-around for automake bug

According to Nathan: It scrapes VALAFLAGS looking for options which
specify files, like -H or, significantly, --gir. Unfortunately, rather
than actually checking correctly, it does it in a weird "why did anybody
ever think that was the right thing to do?" kind of way. It has a list of
flags which specify files, and then if a flag is a substring of any of
those flags, it is considered to actually be one. So it mistakes "-g" for
"--gir" and assumes the following argument should be included when you
make dist. Until automake is fixed, you can fool it by putting -g at the
end of VALAFLAGS.

14 years agocore: Limit search slice to result size
Jens Georg [Sat, 2 Jan 2010 20:25:24 +0000 (21:25 +0100)]
core: Limit search slice to result size

This prevents a crtitcal on search.

14 years agocore: Fix a spelling mistake in error message
Zeeshan Ali (Khattak) [Sun, 3 Jan 2010 00:19:14 +0000 (02:19 +0200)]
core: Fix a spelling mistake in error message

14 years agocore: Throw error on invalid URI
Zeeshan Ali (Khattak) [Mon, 28 Dec 2009 16:12:32 +0000 (18:12 +0200)]
core: Throw error on invalid URI

14 years agocore: Clean-up & indent recently added code
Zeeshan Ali (Khattak) [Mon, 28 Dec 2009 16:07:28 +0000 (18:07 +0200)]
core: Clean-up & indent recently added code

14 years agocore: Rename ItemUri to HTTPItemURI
Zeeshan Ali (Khattak) [Mon, 28 Dec 2009 16:03:46 +0000 (18:03 +0200)]
core: Rename ItemUri to HTTPItemURI

14 years agocore: encode itemID base64
Jens Georg [Mon, 7 Dec 2009 14:31:53 +0000 (15:31 +0100)]
core: encode itemID base64

We need to encode the itemID base64 since it might contain slashes but the
context's HTTP server is created without SOUP_SERVER_RAW_PATHS enabled which
translates the URI encoded slashes to real slashes before handing the request
to us.

14 years agocore: Fix uri creation and parsing
Jens Georg [Sat, 5 Dec 2009 02:49:09 +0000 (03:49 +0100)]
core: Fix uri creation and parsing

14 years agocore: Minor formatting fix
Jens Georg [Sat, 5 Dec 2009 02:30:16 +0000 (03:30 +0100)]
core: Minor formatting fix

14 years agocore: Move uri generating and parsing to own class
Jens Georg [Wed, 25 Nov 2009 10:38:03 +0000 (11:38 +0100)]
core: Move uri generating and parsing to own class

14 years agocore: Modify URI generation scheme
Jens Georg [Wed, 4 Nov 2009 11:52:48 +0000 (12:52 +0100)]
core: Modify URI generation scheme

Some UPnP devices cannot cope with urls containing GET parameters and just
skip everything after the "?". This commit modifies the uris to use different
paths instead of GET parameters.

14 years agocore,ui,plugins: Vala debugging symbols
Zeeshan Ali (Khattak) [Mon, 28 Dec 2009 15:41:57 +0000 (17:41 +0200)]
core,ui,plugins: Vala debugging symbols

Tell valac to put debugging symbols to generated code so gdb can refer to
lines in the Vala source code.

14 years agoFix typo in GetCurrentConnectionInfo action response.
Yakup Akbay [Mon, 7 Dec 2009 09:18:21 +0000 (11:18 +0200)]
Fix typo in GetCurrentConnectionInfo action response.

This fixes failures for DLNA CTT test cases 7.2.14.2 and 7.2.14.3.

14 years agobuild: Require latest vala release (0.7.10)
Zeeshan Ali (Khattak) [Tue, 22 Dec 2009 13:59:59 +0000 (15:59 +0200)]
build: Require latest vala release (0.7.10)

14 years agotracker: Act on new config options
Zeeshan Ali (Khattak) [Wed, 23 Dec 2009 15:13:17 +0000 (17:13 +0200)]
tracker: Act on new config options

Now user can actually choose which kind of media she wants to share.

14 years agotracker: Minor refactoring of SearchContainer
Zeeshan Ali (Khattak) [Wed, 23 Dec 2009 14:12:28 +0000 (16:12 +0200)]
tracker: Minor refactoring of SearchContainer

Group-up private and public methods.

14 years agotracker: Update containers on changes to subjects
Zeeshan Ali (Khattak) [Wed, 23 Dec 2009 14:05:26 +0000 (16:05 +0200)]
tracker: Update containers on changes to subjects

For the moment we are only doing this in MetadataValues but since all
top-level containers are instances of MetadataValues (or subclass), we
are safe.

14 years agotracker: Bind Resources.Class D-Bus interface
Zeeshan Ali (Khattak) [Wed, 23 Dec 2009 13:51:38 +0000 (15:51 +0200)]
tracker: Bind Resources.Class D-Bus interface

14 years agocore: Add SimpleContainer.clear()
Zeeshan Ali (Khattak) [Wed, 23 Dec 2009 13:49:37 +0000 (15:49 +0200)]
core: Add SimpleContainer.clear()

API for clearing the SimpleContainer.

14 years agotracker: No need to create keychains on demand
Zeeshan Ali (Khattak) [Tue, 22 Dec 2009 15:34:32 +0000 (17:34 +0200)]
tracker: No need to create keychains on demand

This should give us some speed boost.

14 years agotracker: Simplified handling of nested properties
Zeeshan Ali (Khattak) [Mon, 21 Dec 2009 18:17:55 +0000 (20:17 +0200)]
tracker: Simplified handling of nested properties

Simplified handling of nested properties using new chainable triplets and
recursion.

14 years agotracker: Allow triplets to be chainable
Zeeshan Ali (Khattak) [Mon, 21 Dec 2009 18:09:01 +0000 (20:09 +0200)]
tracker: Allow triplets to be chainable

Allow a triplet to have another triplet as it's object.

14 years agotracker: Avoid duplicate triplets
Zeeshan Ali (Khattak) [Mon, 21 Dec 2009 13:22:12 +0000 (15:22 +0200)]
tracker: Avoid duplicate triplets

14 years agotracker: Correct keychain for album and artist
Zeeshan Ali (Khattak) [Fri, 11 Dec 2009 14:36:15 +0000 (16:36 +0200)]
tracker: Correct keychain for album and artist

14 years agotracker: Item factory provides key chains, not keys
Zeeshan Ali (Khattak) [Fri, 11 Dec 2009 14:23:10 +0000 (16:23 +0200)]
tracker: Item factory provides key chains, not keys

This is to allow item factories to provide complex (chained) properties.

14 years agotracker: Remove unneeded 'using' statements
Zeeshan Ali (Khattak) [Fri, 11 Dec 2009 13:10:05 +0000 (15:10 +0200)]
tracker: Remove unneeded 'using' statements

14 years agotracker: Prefer ArrayList over vala arrays
Zeeshan Ali (Khattak) [Fri, 11 Dec 2009 13:08:41 +0000 (15:08 +0200)]
tracker: Prefer ArrayList over vala arrays

14 years agotracker: Correct a typo
Zeeshan Ali (Khattak) [Thu, 10 Dec 2009 18:16:27 +0000 (20:16 +0200)]
tracker: Correct a typo

14 years agocore: Use printf for creating TimeSeekRange string
Zeeshan Ali (Khattak) [Thu, 10 Dec 2009 18:04:08 +0000 (20:04 +0200)]
core: Use printf for creating TimeSeekRange string

14 years agocore: Always time-seek if not byte-seeking
Zeeshan Ali (Khattak) [Thu, 10 Dec 2009 16:10:51 +0000 (18:10 +0200)]
core: Always time-seek if not byte-seeking

Always time-seek if duration is known and byte-seek is not feasable.

14 years agocore: Duration needs conversion to nano-seconds
Zeeshan Ali (Khattak) [Thu, 10 Dec 2009 16:08:30 +0000 (18:08 +0200)]
core: Duration needs conversion to nano-seconds

14 years agocore: Remove some uneeded checks
Zeeshan Ali (Khattak) [Wed, 9 Dec 2009 15:45:22 +0000 (17:45 +0200)]
core: Remove some uneeded checks

14 years agocore: No need for HTTPSeek.format anymore
Zeeshan Ali (Khattak) [Wed, 9 Dec 2009 14:33:26 +0000 (16:33 +0200)]
core: No need for HTTPSeek.format anymore

Now that we have separate classes for both formats, this field is not
needed anymore.

14 years agocore: Rename a local variable for clarity
Zeeshan Ali (Khattak) [Wed, 9 Dec 2009 13:35:19 +0000 (15:35 +0200)]
core: Rename a local variable for clarity

14 years agocore: Rename HTTPRequest.request_handler to handler
Zeeshan Ali (Khattak) [Wed, 9 Dec 2009 01:14:35 +0000 (03:14 +0200)]
core: Rename HTTPRequest.request_handler to handler

14 years agocore: Correct logic for decision to seek or not
Zeeshan Ali (Khattak) [Wed, 9 Dec 2009 01:10:25 +0000 (03:10 +0200)]
core: Correct logic for decision to seek or not

14 years agocore: HTTPRequest.request_handler now public
Zeeshan Ali (Khattak) [Wed, 9 Dec 2009 01:08:20 +0000 (03:08 +0200)]
core: HTTPRequest.request_handler now public

14 years agocore: Move seeking decision to Seek classes
Zeeshan Ali (Khattak) [Tue, 8 Dec 2009 23:34:36 +0000 (01:34 +0200)]
core: Move seeking decision to Seek classes

14 years agocore: Special seek classes for each format
Zeeshan Ali (Khattak) [Tue, 8 Dec 2009 23:20:09 +0000 (01:20 +0200)]
core: Special seek classes for each format

14 years agocore: Always seek in case of byte seekable media
Zeeshan Ali (Khattak) [Tue, 8 Dec 2009 17:20:58 +0000 (19:20 +0200)]
core: Always seek in case of byte seekable media

14 years agocore: HTTPRequest keeps only 1 instance of HTTPSeek
Zeeshan Ali (Khattak) [Tue, 8 Dec 2009 17:15:13 +0000 (19:15 +0200)]
core: HTTPRequest keeps only 1 instance of HTTPSeek

No need to keep two instances of seek when in reality we will only have
one of them for each HTTP request.

14 years agocore: HTTPSeek sets all related headers
Zeeshan Ali (Khattak) [Tue, 8 Dec 2009 15:42:48 +0000 (17:42 +0200)]
core: HTTPSeek sets all related headers

HTTPSeek should be setting all headers related to seeking.

14 years agocore: Micro coding style fix
Zeeshan Ali (Khattak) [Tue, 8 Dec 2009 15:30:15 +0000 (17:30 +0200)]
core: Micro coding style fix

14 years agocore: More power to HTTPSeek
Zeeshan Ali (Khattak) [Tue, 8 Dec 2009 15:21:38 +0000 (17:21 +0200)]
core: More power to HTTPSeek

Now HTTPSeek is given HTTPRequest object and it extracts all needed info
from there at construction time and therefore there is no need to pass the
length and other args to it's add_response_headers method.

14 years agocore: Rename an HTTPSeek method
Zeeshan Ali (Khattak) [Mon, 7 Dec 2009 14:33:37 +0000 (16:33 +0200)]
core: Rename an HTTPSeek method

Rename HTTPSeek.add_response_header to add_response_headers.

14 years agotracker: Provide "All" container for each category
Zeeshan Ali (Khattak) [Fri, 4 Dec 2009 18:44:16 +0000 (20:44 +0200)]
tracker: Provide "All" container for each category

14 years agotracker: Provide 'Years' hierarchy
Zeeshan Ali (Khattak) [Fri, 4 Dec 2009 18:05:22 +0000 (20:05 +0200)]
tracker: Provide 'Years' hierarchy

Enable user to browse pictures and videos by year of creation.

14 years agotracker: Make sure ID's of children are unique
Zeeshan Ali (Khattak) [Fri, 4 Dec 2009 17:02:11 +0000 (19:02 +0200)]
tracker: Make sure ID's of children are unique

Make sure children of MetadataValues have unique IDs.