I got an impression that most of functionality you are looking could be found in DLNA Open Source Projects http://elinux.org/DLNA_Open_Source_Projects
For example http://elisa.fluendo.com/ Thank you, Alex -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Rusty Lynch Sent: Thursday, July 31, 2008 15:20 To: Jimmy Huang Cc: dev Subject: Re: [Moblin Dev] Content Tagging/Searching on Moblin On Thu, 2008-07-31 at 14:23 -0700, Jimmy Huang wrote: > On Thu, 2008-07-31 at 10:25 -0700, jketreno wrote: > > Jimmy Huang wrote: > > > On Wed, 2008-07-30 at 15:48 -0700, Rusty Lynch wrote: > > >> Looking through the DBUS introspection at > > >> http://svn.gnome.org/svn/tracker/trunk/data/tracker-introspect.xml, I do > > >> not see a mechanism for notification of new files? > > >> > > >> Is the expectation that the app has to re-initiate all of it's searches > > >> each time a new IndexingFinished signal is caught? > > >> > > >> For example... a photo app is viewing a UI displaying all photos from > > >> Christmas 2006 (i.e. search for all objects with Image:Date in a given > > >> range) that are tagged with "Family" and "Snow" (i.e. with User:Keyword > > >> containing "Family" or "Snow"), while at the same time some new photo's > > >> show up. > > >> > > >> It would be nice if there was some mechanism to have an outstanding > > >> query returning new results on new found data. > > >> > > > Tracker doesn't have a way to know "what files" are indexed, it only > > > knows "when" files are indexed. So yes, I would say that application > > > will need to call out a new search after each IndexFinished signal. > > > > It would seem reasonable to extend the tracker API to accommodate such > > a mechanism. Pseudo code for such an API could be as follows: > > > > /* start a new search by creating a new search object with a specific > > * query. */ > > ContentSearch *search = content_new_search(query) > > > > /* Configure the search to be continuous, and to send back > > * notification of results every time_granularity milliseconds IFF > > * the search has collected a hit within that time period */ > > content_search_set_continuous(search, time_granularity) > > > > /* Hook up the callback for search results */ > > g_signal_connect(search, "search_results_available", > > search_results_available, search) > > > > /* Activate the search */ > > content_search_execute(search); > > > > ... > > > > void search_results_available(..., ContentSearch *search) > > { > > GList *results = content_search_get_results(search); > > GList *tmp = results; > > while (tmp) { > > printf("Result: %s\n", content_search_result_get_text( > > CONTENT_SEARCH_RESULT(tmp->data))); > > tmp = tmp->next; > > } > > ... > > } > > > > The key concept is that the results should be provided asynchronous > > and iteratively. In this way, a long running search that might take a > > second to complete could return partial results every 100 milliseconds > > as the search is processed allowing a much more dynamic and fluid user > > experience. > > > > The daemon can then manage long running searches; as new data is added > > to the system, the data can be passed through the search -- if it > > matches, it gets added to the results pool and returned at the next > > time interval. > > > > This is a nice feature to have, although I do not think it exists in > trackerd today. I'll post this in the mailing list and get feedback on > what the tracker community thinks. The project is quite active, and it > would be nice if Moblin can bring in some influence toward their > development directions to fill in some of the gaps we have. If we end up heavily depending on Tracker then you will definitely need to become an active member of that development community. I haven't worked with this specific community, but I would bet showing up with some proof-of-concept type of patch would go a long ways in explaining what you need. I was quickly looking through the Sqlite3 interfaces and I do not see a native mechanism to do this (i.e. as soon as you pull out the last row of data and get an SQL_DONE, then the database VM needs to be reset.) But... it seems like you could build a new query that limits the results to only items that have been added since the last search, and then that query and call the callback with the new rows of data. A little experimenting with help flush out the idea (or prove it to be total rubbish.) --rusty _______________________________________________ dev mailing list [email protected] https://www.moblin.org/mailman/listinfo/dev _______________________________________________ dev mailing list [email protected] https://www.moblin.org/mailman/listinfo/dev
