#include "lightmediascanner.h"
#include "lightmediascanner_plugin.h"
#include "lightmediascanner_db_private.h"
+#include "lightmediascanner_charset_conv.h"
#define PATH_SIZE PATH_MAX
#define DEFAULT_SLAVE_TIMEOUT 1000
struct lms {
struct parser *parsers;
int n_parsers;
+ lms_charset_conv_t *cs_conv;
char *db_path;
int slave_timeout;
unsigned int commit_interval;
static void
_ctxt_init(struct lms_context *ctxt, const lms_t *lms, const struct db *db)
{
+ ctxt->cs_conv = lms->cs_conv;
ctxt->db = db->handle;
}
return NULL;
}
+ lms->cs_conv = lms_charset_conv_new();
+ if (!lms->cs_conv) {
+ free(lms);
+ return NULL;
+ }
+
lms->commit_interval = DEFAULT_COMMIT_INTERVAL;
lms->slave_timeout = DEFAULT_SLAVE_TIMEOUT;
lms->db_path = strdup(db_path);
if (!lms->db_path) {
perror("strdup");
+ lms_charset_conv_free(lms->cs_conv);
free(lms);
return NULL;
}
}
free(lms->db_path);
+ lms_charset_conv_free(lms->cs_conv);
free(lms);
return 0;
}
lms->commit_interval = transactions;
}
+
+int
+lms_charset_add(lms_t *lms, const char *charset)
+{
+ if (!lms) {
+ fprintf(stderr, "ERROR: lms_charset_add(NULL)\n");
+ return -1;
+ }
+
+ return lms_charset_conv_add(lms->cs_conv, charset);
+}
+
+int
+lms_charset_del(lms_t *lms, const char *charset)
+{
+ if (!lms) {
+ fprintf(stderr, "ERROR: lms_charset_del(NULL)\n");
+ return -1;
+ }
+
+ return lms_charset_conv_del(lms->cs_conv, charset);
+}