Zeeshan Ali (Khattak) [Fri, 11 Dec 2009 13:10:05 +0000 (15:10 +0200)]
tracker: Remove unneeded 'using' statements
Zeeshan Ali (Khattak) [Fri, 11 Dec 2009 13:08:41 +0000 (15:08 +0200)]
tracker: Prefer ArrayList over vala arrays
Zeeshan Ali (Khattak) [Thu, 10 Dec 2009 18:16:27 +0000 (20:16 +0200)]
tracker: Correct a typo
Zeeshan Ali (Khattak) [Thu, 10 Dec 2009 18:04:08 +0000 (20:04 +0200)]
core: Use printf for creating TimeSeekRange string
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.
Zeeshan Ali (Khattak) [Thu, 10 Dec 2009 16:08:30 +0000 (18:08 +0200)]
core: Duration needs conversion to nano-seconds
Zeeshan Ali (Khattak) [Wed, 9 Dec 2009 15:45:22 +0000 (17:45 +0200)]
core: Remove some uneeded checks
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.
Zeeshan Ali (Khattak) [Wed, 9 Dec 2009 13:35:19 +0000 (15:35 +0200)]
core: Rename a local variable for clarity
Zeeshan Ali (Khattak) [Wed, 9 Dec 2009 01:14:35 +0000 (03:14 +0200)]
core: Rename HTTPRequest.request_handler to handler
Zeeshan Ali (Khattak) [Wed, 9 Dec 2009 01:10:25 +0000 (03:10 +0200)]
core: Correct logic for decision to seek or not
Zeeshan Ali (Khattak) [Wed, 9 Dec 2009 01:08:20 +0000 (03:08 +0200)]
core: HTTPRequest.request_handler now public
Zeeshan Ali (Khattak) [Tue, 8 Dec 2009 23:34:36 +0000 (01:34 +0200)]
core: Move seeking decision to Seek classes
Zeeshan Ali (Khattak) [Tue, 8 Dec 2009 23:20:09 +0000 (01:20 +0200)]
core: Special seek classes for each format
Zeeshan Ali (Khattak) [Tue, 8 Dec 2009 17:20:58 +0000 (19:20 +0200)]
core: Always seek in case of byte seekable media
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.
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.
Zeeshan Ali (Khattak) [Tue, 8 Dec 2009 15:30:15 +0000 (17:30 +0200)]
core: Micro coding style fix
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.
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.
Zeeshan Ali (Khattak) [Fri, 4 Dec 2009 18:44:16 +0000 (20:44 +0200)]
tracker: Provide "All" container for each category
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.
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.
Zeeshan Ali (Khattak) [Fri, 4 Dec 2009 15:57:31 +0000 (17:57 +0200)]
tracker: Means to create ID from value
Provide API for users of MetadataValues to be able to create ID
from values.
Zeeshan Ali (Khattak) [Thu, 3 Dec 2009 17:34:26 +0000 (19:34 +0200)]
tracker: Means to create filter from variable & value
Provide API for users of MetadataValues to be able to create filter
given variable and value.
Zeeshan Ali (Khattak) [Thu, 3 Dec 2009 17:07:56 +0000 (19:07 +0200)]
tracker: Use filters to make search query specific
Zeeshan Ali (Khattak) [Thu, 3 Dec 2009 16:14:09 +0000 (18:14 +0200)]
tracker: Means to create title from value
Provide API for users of MetadataValues to be able to create title
from values.
Zeeshan Ali (Khattak) [Thu, 3 Dec 2009 14:57:14 +0000 (16:57 +0200)]
tracker: Correct filter syntax
Zeeshan Ali (Khattak) [Thu, 3 Dec 2009 13:43:35 +0000 (15:43 +0200)]
Revert "tracker: Get rid of SearchContainer().filter"
This reverts commit
626ba91d3bd570007bdb3dd54ed11d593b4a1f09.
Conflicts:
src/plugins/tracker/rygel-tracker-search-container.vala
Zeeshan Ali (Khattak) [Wed, 2 Dec 2009 18:19:20 +0000 (20:19 +0200)]
tracker: Tags is not specific to Photos any more
Zeeshan Ali (Khattak) [Wed, 2 Dec 2009 18:15:13 +0000 (20:15 +0200)]
tracker: Add 'Tags' hierarchy under Music
Zeeshan Ali (Khattak) [Wed, 2 Dec 2009 17:55:03 +0000 (19:55 +0200)]
tracker: Special container class for Videos
Currently we only provide a tags container inside videos but we should
at least be able to provide 'years' hierarchy under it.
Zeeshan Ali (Khattak) [Wed, 2 Dec 2009 14:55:00 +0000 (16:55 +0200)]
tracker: Move 'Tags' container into Pictures
This also implies 'Pictures' gets its own container class.
Zeeshan Ali (Khattak) [Wed, 2 Dec 2009 14:45:09 +0000 (16:45 +0200)]
tracker: Use term "picture" rather than "image"
Zeeshan Ali (Khattak) [Wed, 2 Dec 2009 14:31:48 +0000 (16:31 +0200)]
tracker: Correct search (for @id) logic
If a child item is being search for, the sparql query generated for it
must contain a filter to make the query specific for the requested item.
Zeeshan Ali (Khattak) [Wed, 2 Dec 2009 14:10:25 +0000 (16:10 +0200)]
tracker: Special hierarchy for Music
Zeeshan Ali (Khattak) [Wed, 2 Dec 2009 01:01:38 +0000 (03:01 +0200)]
tracker: Query executes itself
Zeeshan Ali (Khattak) [Wed, 2 Dec 2009 00:10:17 +0000 (02:10 +0200)]
tracker: Get rid of SearchContainer().filter
Zeeshan Ali (Khattak) [Tue, 1 Dec 2009 23:55:34 +0000 (01:55 +0200)]
tracker: Move TrackerQueryTriplet* to separate files
Move TrackerQueryTriplet and TrackerQueryTriplets to separate files.
Zeeshan Ali (Khattak) [Tue, 1 Dec 2009 23:49:45 +0000 (01:49 +0200)]
tracker: Rename TrackerKeywords to TrackerTags
Zeeshan Ali (Khattak) [Tue, 1 Dec 2009 23:31:03 +0000 (01:31 +0200)]
tracker: Sort query results by "fileLastModified"
Ask tracker to sort query results by "nfo:fileLastModified" since it's
much faster than sorting by URIs.
Zeeshan Ali (Khattak) [Tue, 1 Dec 2009 16:06:27 +0000 (18:06 +0200)]
tracker: No need to convert dates to ISO8601 anymore
Zeeshan Ali (Khattak) [Tue, 1 Dec 2009 00:00:09 +0000 (02:00 +0200)]
tracker: Tracker now deals in URIs not paths
Zeeshan Ali (Khattak) [Mon, 30 Nov 2009 23:46:51 +0000 (01:46 +0200)]
tracker: Privatize ItemFactory.seconds_to_iso8601()
This method is no longer useful to subclasses.
Zeeshan Ali (Khattak) [Mon, 30 Nov 2009 23:43:58 +0000 (01:43 +0200)]
tracker: Only ask for relavent metadata
This is not just smart thing to do anyways as it will decrease D-Bus
traffic but is also necessary due to a bug in tracker.
Zeeshan Ali (Khattak) [Mon, 30 Nov 2009 18:09:35 +0000 (20:09 +0200)]
tracker: Get rid of two redundant methods
- SearchContainer.create_item()
- ItemFactory.get_num_metadata_keys()
Zeeshan Ali (Khattak) [Mon, 30 Nov 2009 18:06:19 +0000 (20:06 +0200)]
tracker: 'upnp_class' now an item factory field
No need to pass 'upnp_class' to TrackerItemFactory.create() each time it's
called, just keep it in an instance field.
Zeeshan Ali (Khattak) [Mon, 30 Nov 2009 17:52:33 +0000 (19:52 +0200)]
tracker: Container classes deal with item factories
Container classes should deal with item factories instead of categories.
Zeeshan Ali (Khattak) [Mon, 30 Nov 2009 17:49:22 +0000 (19:49 +0200)]
tracker: Item factory should know it's category
Zeeshan Ali (Khattak) [Mon, 30 Nov 2009 16:34:47 +0000 (18:34 +0200)]
tracker: Implement factories rather than items
Zeeshan Ali (Khattak) [Mon, 30 Nov 2009 15:32:19 +0000 (17:32 +0200)]
tracker: Set title in base TrackerItem class
Zeeshan Ali (Khattak) [Mon, 30 Nov 2009 14:46:31 +0000 (16:46 +0200)]
tracker: Avoid copying of triplets when possible
Zeeshan Ali (Khattak) [Mon, 30 Nov 2009 14:44:21 +0000 (16:44 +0200)]
tracker: Pass triplets' clone to child container
Clone the triplets before passing it to child SearchContainer.
Zeeshan Ali (Khattak) [Mon, 30 Nov 2009 14:20:35 +0000 (16:20 +0200)]
tracker: TrackerQuery.from_template -> clone
Replace contructor to create TrackerQuery from a template by a constructor
that makes the new instance a clone of the query provided as parameter.
Zeeshan Ali (Khattak) [Mon, 30 Nov 2009 14:18:42 +0000 (16:18 +0200)]
tracker: Cloneable TrackerQueryTriplet*
Add ability to clone TrackerQueryTriplet and TrackerQueryTriplets.
Zeeshan Ali (Khattak) [Mon, 30 Nov 2009 13:48:45 +0000 (15:48 +0200)]
tracker: Separate class for list of triplets
Zeeshan Ali (Khattak) [Fri, 20 Nov 2009 23:31:59 +0000 (01:31 +0200)]
tracker: Initial port to 0.7 APIs
Zeeshan Ali (Khattak) [Thu, 19 Nov 2009 14:54:22 +0000 (16:54 +0200)]
core: Prepare NEWS file for release 0.4.6
Zeeshan Ali (Khattak) [Thu, 19 Nov 2009 14:39:58 +0000 (16:39 +0200)]
build: Require vala >= 0.7.9 (current git master)
Zeeshan Ali (Khattak) [Thu, 19 Nov 2009 12:54:46 +0000 (14:54 +0200)]
external: Safer slicing of get_children() results
Reported child count could be wrong and therefore it is not safe to
use that number when slicing the list of children.
Zeeshan Ali (Khattak) [Wed, 18 Nov 2009 16:14:05 +0000 (18:14 +0200)]
core: Make sure autostart dir exists
Make sure autostart dir exists before attempting to write to it.
Zeeshan Ali (Khattak) [Mon, 16 Nov 2009 23:15:42 +0000 (01:15 +0200)]
core: Sort MediaContainer methods by their visibility
Zeeshan Ali (Khattak) [Mon, 16 Nov 2009 17:15:31 +0000 (19:15 +0200)]
core: MediaContainer.find_object now internal
Plugins no longer need to provide implementation of this method. They
could override/implement search() instead if they need to.
Zeeshan Ali (Khattak) [Mon, 16 Nov 2009 15:25:32 +0000 (17:25 +0200)]
external: Handle search of particular direct child
If the search is for a particular direct child, better handle it in
the implementation as it will be more efficient. All other searches
are handled by base MediaContainer class.
Zeeshan Ali (Khattak) [Mon, 16 Nov 2009 18:15:39 +0000 (20:15 +0200)]
tracker: get_children() now based on search()
TrackerSearchContainer.get_children() now based on search() and therefore
much simpler.
Zeeshan Ali (Khattak) [Thu, 12 Nov 2009 16:35:18 +0000 (18:35 +0200)]
tracker: Remove now redundant metadata proxy
Zeeshan Ali (Khattak) [Thu, 12 Nov 2009 16:31:06 +0000 (18:31 +0200)]
tracker: Refactor create_query_from_expression()
Zeeshan Ali (Khattak) [Thu, 12 Nov 2009 16:16:39 +0000 (18:16 +0200)]
tracker: Make two method private
'create_item' and 'get_item_info' are now private methods.
Zeeshan Ali (Khattak) [Thu, 12 Nov 2009 15:43:30 +0000 (17:43 +0200)]
tracker: RDF op based on SearchExpression op
Create RDF query operator from SearchExpression operator.
Zeeshan Ali (Khattak) [Thu, 12 Nov 2009 14:35:17 +0000 (16:35 +0200)]
tracker: Get rid of one level of 'if' nesting
This makes create_query_from_expression() a bit more readable.
Zeeshan Ali (Khattak) [Thu, 12 Nov 2009 14:19:13 +0000 (16:19 +0200)]
tracker: Use RelationalExpression.compare_string()
Zeeshan Ali (Khattak) [Thu, 12 Nov 2009 14:18:45 +0000 (16:18 +0200)]
core: Make RelationalExpression.compare_string() public
Zeeshan Ali (Khattak) [Thu, 12 Nov 2009 14:04:20 +0000 (16:04 +0200)]
tracker: Handle 'all children' search
Handle 'give me all your direct children' search.
Zeeshan Ali (Khattak) [Thu, 12 Nov 2009 13:44:40 +0000 (15:44 +0200)]
tracker: Don't search the item if it's not yours
SearchContainer shouldn't bother to search the item if it's not
it's own. This optimizes item search quite a bit as we save a lot
of dbus method calls.
Zeeshan Ali (Khattak) [Thu, 12 Nov 2009 12:53:37 +0000 (14:53 +0200)]
tracker: Correct RDF query in 'search'
"File:Path" means path to the directory containing the file rather than
path of the file itself. Full points goes to Mr. Jamie McCracken for
coming-up with this.
Zeeshan Ali (Khattak) [Wed, 11 Nov 2009 22:55:57 +0000 (00:55 +0200)]
tracker: Implement 'search' rather than 'find_object'
Zeeshan Ali (Khattak) [Wed, 11 Nov 2009 22:45:52 +0000 (00:45 +0200)]
tracker: Complete RDF query when needed
This is so that we can insert more conditions into the query if/when
needed.
Zeeshan Ali (Khattak) [Wed, 11 Nov 2009 22:34:47 +0000 (00:34 +0200)]
tracker: Minor indentation fix
Zeeshan Ali (Khattak) [Wed, 11 Nov 2009 13:05:12 +0000 (15:05 +0200)]
tracker: Remove a redundant method
Zeeshan Ali (Khattak) [Tue, 10 Nov 2009 22:14:51 +0000 (00:14 +0200)]
core: Smarter and cleaner MediaContainer.search
Smarter and cleaner default search implementation.
Zeeshan Ali (Khattak) [Tue, 10 Nov 2009 22:05:05 +0000 (00:05 +0200)]
core,media-export: Implement find_object() in MediaContainer
Plugins no longer need to provide MediaContainer.find_object() since we
now provide an implementation based on MediaContainer.search().
Zeeshan Ali (Khattak) [Tue, 10 Nov 2009 21:58:15 +0000 (23:58 +0200)]
core: Clarify a condition
Zeeshan Ali (Khattak) [Mon, 16 Nov 2009 14:15:06 +0000 (16:15 +0200)]
external: One factory for all items
Zeeshan Ali (Khattak) [Mon, 16 Nov 2009 00:07:38 +0000 (02:07 +0200)]
external: Work around (vala) bug#602003
Seems only basic types are correctly handle in variant return values and
that doesn't include string arrays.
Zeeshan Ali (Khattak) [Tue, 10 Nov 2009 11:28:06 +0000 (13:28 +0200)]
core: Simpler browse implementation
The original code was written when async support wasn't there in Vala
and therefore required us to keep all the state in the Browse object.
Zeeshan Ali (Khattak) [Mon, 9 Nov 2009 18:56:10 +0000 (20:56 +0200)]
core: 'yield' all the way
Zeeshan Ali (Khattak) [Mon, 9 Nov 2009 18:30:15 +0000 (20:30 +0200)]
core: Accept & handle wildcard as SearchCriteria
Zeeshan Ali (Khattak) [Mon, 9 Nov 2009 18:12:38 +0000 (20:12 +0200)]
core: Micro refactoring
Zeeshan Ali (Khattak) [Mon, 9 Nov 2009 17:51:33 +0000 (19:51 +0200)]
core: More debug output
Spit out received SearchCriteria string on debug console.
Zeeshan Ali (Khattak) [Mon, 9 Nov 2009 17:49:09 +0000 (19:49 +0200)]
core: Take care of null operands when printing expression
Zeeshan Ali (Khattak) [Mon, 9 Nov 2009 18:09:52 +0000 (20:09 +0200)]
core: Handle errors from SearchCriteria parser
Zeeshan Ali (Khattak) [Mon, 9 Nov 2009 17:59:12 +0000 (19:59 +0200)]
core: Take care of logical operator precedence
'and' takes precedence over 'or'.
Zeeshan Ali (Khattak) [Fri, 6 Nov 2009 14:35:18 +0000 (16:35 +0200)]
core: Remove unused ClosingBrace class
Zeeshan Ali (Khattak) [Fri, 6 Nov 2009 14:13:30 +0000 (16:13 +0200)]
vcs: Add '*.service' to git ignore list
Zeeshan Ali (Khattak) [Fri, 6 Nov 2009 00:43:36 +0000 (02:43 +0200)]
core: Advertise containers as searchable
Zeeshan Ali (Khattak) [Fri, 6 Nov 2009 00:36:58 +0000 (02:36 +0200)]
core: Proper error on failed search
This is as par the requirements of ContentDirectory spec.
Zeeshan Ali (Khattak) [Fri, 6 Nov 2009 00:22:54 +0000 (02:22 +0200)]
core: Correct handling of search.total_matches
If the real value of this is unknown, ContentDirectory specs dictate us
to set this to '0'.
Zeeshan Ali (Khattak) [Thu, 5 Nov 2009 17:39:59 +0000 (19:39 +0200)]
core: Limit the search results
This should improve performance of search in general a lot but it
depends on what slice in the search results the client is interested in.
If it asks for the last slice, there will be no performance improvements
to that search request because of this change. During an incremental
search (which all clients should be doing), the first few search results
will be extremely fast and we all know that this *will* effectively fool
the end-user. :)
Zeeshan Ali (Khattak) [Thu, 5 Nov 2009 16:40:21 +0000 (18:40 +0200)]
core: Safer slicing of search results
Zeeshan Ali (Khattak) [Thu, 5 Nov 2009 15:25:55 +0000 (17:25 +0200)]
core: Search inside child before checking it
Search inside child before checking if it satisfies the search criteria
itself.