1 /*sfdb_freesound_mootcher.h****************************************************************************
\r
3 Adapted for Ardour by Ben Loftis, March 2008
\r
4 Updated to new Freesound API by Colin Fletcher, November 2011
\r
6 Mootcher Online Access to thefreesoundproject website
\r
7 http://freesound.iua.upf.edu/
\r
10 mail for questions/remarks: mootcher@twistedlemon.nl
\r
11 or go to the freesound website forum
\r
13 *****************************************************************************/
\r
23 #include <gtkmm/progressbar.h>
\r
26 #include "curl/curl.h"
\r
28 //--- struct to store XML file
\r
29 struct MemoryStruct {
\r
35 sort_none, // no sort
\r
36 sort_duration_desc, // Sort by the duration of the sounds, longest sounds first.
\r
37 sort_duration_asc, // Same as above, but shortest sounds first.
\r
38 sort_created_desc, // Sort by the date of when the sound was added. newest sounds first.
\r
39 sort_created_asc, // Same as above, but oldest sounds first.
\r
40 sort_downloads_desc, // Sort by the number of downloads, most downloaded sounds first.
\r
41 sort_downloads_asc, // Same as above, but least downloaded sounds first.
\r
42 sort_rating_desc, // Sort by the average rating given to the sounds, highest rated first.
\r
43 sort_rating_asc // Same as above, but lowest rated sounds first.
\r
50 Mootcher(const char *saveLocation);
\r
53 std::string getAudioFile(std::string originalFileName, std::string ID, std::string audioURL, Gtk::ProgressBar *progress_bar);
\r
54 std::string searchText(std::string query, int page, std::string filter, enum sortMethod sort);
\r
58 const char* changeWorkingDir(const char *saveLocation);
\r
60 std::string doRequest(std::string uri, std::string params);
\r
61 void setcUrlOptions();
\r
63 static size_t WriteMemoryCallback(void *ptr, size_t size, size_t nmemb, void *data);
\r
64 static int progress_callback(void *clientp, double dltotal, double dlnow, double ultotal, double ulnow);
\r
65 std::string sortMethodString(enum sortMethod sort);
\r
66 std::string getSoundResourceFile(std::string ID);
\r
69 char errorBuffer[CURL_ERROR_SIZE]; // storage for cUrl error message
\r
71 std::string basePath;
\r
72 std::string xmlLocation;
\r