commit 1968080128bbc4ded4fe8f31ae420b3b42a5e578
Author: phantomjinx <[email protected]>
Date: Sun Mar 13 19:20:08 2011 +0000
trial attempt at converting itdb
libgtkpod/autodetection.c | 30 +++---
libgtkpod/file.h | 3 +-
libgtkpod/file_itunesdb.c | 149 +++++++++---------------
libgtkpod/gp_itdb.c | 168 +++++++++++++++++++++++----
libgtkpod/gp_itdb.h | 1 +
libgtkpod/prefs.c | 2 +
libgtkpod/prefs.h | 2 +
plugins/repository_editor/repository_init.c | 2 +-
8 files changed, 223 insertions(+), 134 deletions(-)
---
diff --git a/libgtkpod/autodetection.c b/libgtkpod/autodetection.c
index e0bc5b0..75c1371 100644
--- a/libgtkpod/autodetection.c
+++ b/libgtkpod/autodetection.c
@@ -73,25 +73,23 @@ static iTunesDB *ad_find_repository_with_mountpoint(const
gchar *mountpoint) {
iTunesDB *itdb = gl->data;
g_return_val_if_fail (itdb, NULL);
- if (itdb->usertype & GP_ITDB_TYPE_IPOD) {
- gchar *imp = get_itdb_prefs_string(itdb, KEY_MOUNTPOINT);
- if (imp) {
- gint comp;
- gint lenimp = strlen(imp);
-
- /* eliminate trailing dir separators ('/') */
- if ((lenimp > 0) && (imp[lenimp - 1] == G_DIR_SEPARATOR)) {
- imp[lenmp - 1] = 0;
- }
+ gchar *imp = get_itdb_prefs_string(itdb, KEY_MOUNTPOINT);
+ if (imp) {
+ gint comp;
+ gint lenimp = strlen(imp);
+
+ /* eliminate trailing dir separators ('/') */
+ if ((lenimp > 0) && (imp[lenimp - 1] == G_DIR_SEPARATOR)) {
+ imp[lenmp - 1] = 0;
+ }
- comp = strcmp(mp, imp);
+ comp = strcmp(mp, imp);
- g_free(imp);
+ g_free(imp);
- if (comp == 0) {
- result = itdb;
- break;
- }
+ if (comp == 0) {
+ result = itdb;
+ break;
}
}
}
diff --git a/libgtkpod/file.h b/libgtkpod/file.h
index 9c99785..55440e4 100644
--- a/libgtkpod/file.h
+++ b/libgtkpod/file.h
@@ -77,8 +77,7 @@ void update_tracks (GList *selected_tracks);
void display_non_updated (Track *track, gchar *txt);
void display_updated (Track *track, gchar *txt);
iTunesDB *gp_import_itdb (iTunesDB *old_itdb, const gint type,
- const gchar *mp, const gchar *name_off,
- const gchar *name_loc);
+ const gchar *mp, const gchar *name_off);
void gp_load_ipods (void);
iTunesDB *gp_load_ipod (iTunesDB *itdb);
gboolean gp_eject_ipod(iTunesDB *itdb);
diff --git a/libgtkpod/file_itunesdb.c b/libgtkpod/file_itunesdb.c
index d947106..5d0ff08 100644
--- a/libgtkpod/file_itunesdb.c
+++ b/libgtkpod/file_itunesdb.c
@@ -412,9 +412,9 @@ static void load_photodb(iTunesDB *itdb, GString *errors) {
* @type: GP_ITDB_TYPE_LOCAL/IPOD (bitwise flags!)
* @mp: mount point of iPod (if reading an iPod iTunesDB)
* @name_off: name of the iTunesDB in offline mode
- * @name_loc: name of iTunesDB (if reading a local file browser) */
-/* Return value: a new iTunesDB structure or NULL in case of an error */
-iTunesDB *gp_import_itdb(iTunesDB *old_itdb, const gint type, const gchar *mp,
const gchar *name_off, const gchar *name_loc) {
+ * Return value: a new iTunesDB structure or NULL in case of an error
+ */
+iTunesDB *gp_import_itdb(iTunesDB *old_itdb, const gint type, const gchar *mp,
const gchar *name_off) {
gchar *cfgdir;
GList *gl;
Playlist *pod_pl;
@@ -425,9 +425,7 @@ iTunesDB *gp_import_itdb(iTunesDB *old_itdb, const gint
type, const gchar *mp, c
gint32 total, num;
gboolean offline;
- g_return_val_if_fail (!(type & GP_ITDB_TYPE_LOCAL) || name_loc, NULL);
- g_return_val_if_fail (!(type & GP_ITDB_TYPE_IPOD) ||
- (mp && name_off), NULL);
+ g_return_val_if_fail (mp && name_off, NULL);
cfgdir = prefs_get_cfgdir();
g_return_val_if_fail (cfgdir, NULL);
@@ -438,18 +436,11 @@ iTunesDB *gp_import_itdb(iTunesDB *old_itdb, const gint
type, const gchar *mp, c
offline = FALSE;
block_widgets();
- if (offline || (type & GP_ITDB_TYPE_LOCAL)) { /* offline or local database
- requires extended info */
+ if (offline) { /* offline - requires extended info */
gchar *name_ext;
gchar *name_db;
-
- if (type & GP_ITDB_TYPE_LOCAL) {
- name_ext = g_strdup_printf("%s.ext", name_loc);
- name_db = g_strdup(name_loc);
- }
- else {
- name_ext = g_strdup_printf("%s.ext", name_off);
- name_db = g_strdup(name_off);
- }
+ name_ext = g_strdup_printf("%s.ext", name_off);
+ name_db = g_strdup(name_off);
if (g_file_test(name_db, G_FILE_TEST_EXISTS)) {
if (WRITE_EXTENDED_INFO) {
@@ -460,29 +451,20 @@ iTunesDB *gp_import_itdb(iTunesDB *old_itdb, const gint
type, const gchar *mp, c
msg
= g_strconcat(msg, _("This database identifies the
track on disk with the track data in the repository database. "), _("Any tracks
already in the database cannot be transferred between repositories without the
extended database. "), _("A new extended database will be created upon saving
but existing tracks will need to be reimported to be linked to the file on
disk.\n\n"), NULL);
g_string_append(errors, msg);
+ g_free(msg);
}
}
itdb = itdb_parse_file(name_db, &error);
if (itdb && !error) {
- if (type & GP_ITDB_TYPE_IPOD)
- gtkpod_statusbar_message(_("Offline iPod database
successfully imported"));
- else
- gtkpod_statusbar_message(_("Local database successfully
imported"));
+ gtkpod_statusbar_message(_("Offline iPod database successfully
imported"));
}
else {
if (error) {
- if (type & GP_ITDB_TYPE_IPOD)
- g_string_append_printf(errors, _("Offline iPod
database import failed: '%s'\n\n"), error->message);
- else
- g_string_append_printf(errors, _("Local database
import failed: '%s'\n\n"), error->message);
-
+ g_string_append_printf(errors, _("Offline iPod database
import failed: '%s'\n\n"), error->message);
g_error_free(error);
}
else {
- if (type & GP_ITDB_TYPE_IPOD)
- g_string_append(errors, _("Offline iPod database
import failed: \n\n"));
- else
- g_string_append(errors, _("Local database import
failed: \n\n"));
+ g_string_append(errors, _("Offline iPod database import
failed: \n\n"));
}
}
}
@@ -492,7 +474,7 @@ iTunesDB *gp_import_itdb(iTunesDB *old_itdb, const gint
type, const gchar *mp, c
g_free(name_ext);
g_free(name_db);
}
- else { /* GP_ITDB_TYPE_IPOD _and_ iPod is connected */
+ else { /* iPod is connected */
gchar *name_ext = NULL, *name_db = NULL;
name_db = itdb_get_itunesdb_path(mp);
@@ -543,14 +525,12 @@ iTunesDB *gp_import_itdb(iTunesDB *old_itdb, const gint
type, const gchar *mp, c
/* fill in additional info */
itdb->usertype = type;
- if (type & GP_ITDB_TYPE_IPOD) {
- if (offline) {
- itdb_set_mountpoint(itdb, mp);
- g_free(itdb->filename);
- itdb->filename = NULL;
- }
- eitdb->offline_filename = g_strdup(name_off);
+ if (offline) {
+ itdb_set_mountpoint(itdb, mp);
+ g_free(itdb->filename);
+ itdb->filename = NULL;
}
+ eitdb->offline_filename = g_strdup(name_off);
total = g_list_length(itdb->tracks);
num = 1;
@@ -692,19 +672,19 @@ iTunesDB *gp_import_itdb(iTunesDB *old_itdb, const gint
type, const gchar *mp, c
if (errors && errors->len > 0) {
gtkpod_confirmation(-1, /* gint id, */
- TRUE, /* gboolean modal, */
- _("Import Repository Errors"), /* title */
- _("Errors created during repository import"), /* label */
- errors->str, /* scrolled text */
- NULL, 0, NULL, /* option 1 */
- NULL, 0, NULL, /* option 2 */
- TRUE, /* gboolean confirm_again, */
- "show_itdb_import_errors",/* confirm_again_key,*/
- CONF_NULL_HANDLER, /* ConfHandler ok_handler,*/
- NULL, /* don't show "Apply" button */
- NULL, /* cancel_handler,*/
- NULL, /* gpointer user_data1,*/
- NULL); /* gpointer user_data2,*/
+ TRUE, /* gboolean modal, */
+ _("Import Repository Errors"), /* title */
+ _("Errors created during repository import"), /* label */
+ errors->str, /* scrolled text */
+ NULL, 0, NULL, /* option 1 */
+ NULL, 0, NULL, /* option 2 */
+ TRUE, /* gboolean confirm_again, */
+ "show_itdb_import_errors",/* confirm_again_key,*/
+ CONF_NULL_HANDLER, /* ConfHandler ok_handler,*/
+ NULL, /* don't show "Apply" button */
+ NULL, /* cancel_handler,*/
+ NULL, /* gpointer user_data1,*/
+ NULL); /* gpointer user_data2,*/
g_string_free(errors, TRUE);
}
@@ -750,22 +730,11 @@ static iTunesDB *gp_merge_itdb(iTunesDB *old_itdb) {
old_eitdb = old_itdb->userdata;
g_return_val_if_fail (old_eitdb, NULL);
- if (old_itdb->usertype & GP_ITDB_TYPE_LOCAL) {
- g_return_val_if_fail (old_itdb->filename, NULL);
-
- new_itdb = gp_import_itdb(old_itdb, old_itdb->usertype, NULL, NULL,
old_itdb->filename);
- }
- else if (old_itdb->usertype & GP_ITDB_TYPE_IPOD) {
- const gchar *mountpoint = itdb_get_mountpoint(old_itdb);
- g_return_val_if_fail (mountpoint, NULL);
- g_return_val_if_fail (old_eitdb->offline_filename, NULL);
-
- new_itdb = gp_import_itdb(old_itdb, old_itdb->usertype, mountpoint,
old_eitdb->offline_filename, NULL);
- }
- else {
- g_return_val_if_reached (NULL);
- }
+ const gchar *mountpoint = itdb_get_mountpoint(old_itdb);
+ g_return_val_if_fail (mountpoint, NULL);
+ g_return_val_if_fail (old_eitdb->offline_filename, NULL);
+ new_itdb = gp_import_itdb(old_itdb, old_itdb->usertype, mountpoint,
old_eitdb->offline_filename);
if (new_itdb) {
gp_replace_itdb(old_itdb, new_itdb);
/* take care of autosync... */
@@ -1244,7 +1213,6 @@ static gdouble set_progress(time_t start, gint n, gint
count, gint init_count, g
= g_strdup_printf(_("%d%% (%d/%d %d:%02d:%02d left) %s"),
(gint) (fraction * 100), count, n, (gint) hrs, (gint) mins, (gint) secs, msg);
}
-
gdouble ticks = fraction - old_fraction;
gtkpod_statusbar_increment_progress_ticks(ticks * 100, progtext);
@@ -1510,8 +1478,8 @@ static gboolean transfer_tracks(iTunesDB *itdb,
TransferData *td) {
}
}
- td->current_progress = set_progress(start, to_convert_num +
converting_num + to_transfer_num + failed_num + transferred_num, transferred_num
- + failed_num, transferred_init, td->current_progress,
buf);
+ td->current_progress = set_progress(start, to_convert_num +
converting_num + to_transfer_num + failed_num
+ + transferred_num, transferred_num + failed_num,
transferred_init, td->current_progress, buf);
if ((to_convert_num != 0) && (converting_num == 0)) { /* Force the
conversion to continue. Not sure if this scenario
* is likely to happen, but better be safe then sorry */
@@ -1665,7 +1633,17 @@ static gboolean gp_write_itdb(iTunesDB *itdb) {
gp_track_cleanup_empty_strings((Itdb_Track *) it->data);
}
- if (success && !get_offline(itdb) && (itdb->usertype & GP_ITDB_TYPE_IPOD))
{ /* write to the iPod */
+ const Itdb_IpodInfo *info;
+ if (success && !get_offline(itdb) && gp_itdb_has_mountpoint(itdb)) { /*
write to the iPod */
+ g_warning("Supposed modelnum %s", itdb_device_get_sysinfo
(itdb->device, "ModelNumStr"));
+ info = itdb_device_get_ipod_info (itdb->device);
+ g_warning("device info: %d %d", info->ipod_generation,
info->ipod_model);
+
+ if (itdb_device_supports_artwork(itdb->device))
+ g_warning("Does support artwork");
+ else
+ g_warning("Does not support artwork");
+
GError *error = NULL;
if (!itdb_write(itdb, &error)) { /* an error occurred */
success = FALSE;
@@ -1677,7 +1655,11 @@ static gboolean gp_write_itdb(iTunesDB *itdb) {
error = NULL;
}
- if (success) { /* write shuffle data */
+ /*
+ * write shuffle data but only if an ipod since the local
+ * and podcast dbs definitely are not shuffles
+ */
+ if (success && (itdb->usertype & GP_ITDB_TYPE_IPOD)) {
if (!itdb_shuffle_write(itdb, &error)) { /* an error occurred */
success = FALSE;
if (error && error->message) {
@@ -1750,7 +1732,7 @@ static gboolean gp_write_itdb(iTunesDB *itdb) {
}
}
- if (success && get_offline(itdb) && (itdb->usertype & GP_ITDB_TYPE_IPOD))
{ /* write to cfgdir */
+ if (success && get_offline(itdb) && gp_itdb_has_mountpoint(itdb)) { /*
write to cfgdir */
GError *error = NULL;
if (!itdb_write_file(itdb, eitdb->offline_filename, &error)) { /* an
error occurred */
success = FALSE;
@@ -1766,22 +1748,6 @@ static gboolean gp_write_itdb(iTunesDB *itdb) {
}
}
- if (success && (itdb->usertype & GP_ITDB_TYPE_LOCAL)) { /* write to cfgdir
*/
- GError *error = NULL;
- if (!itdb_write_file(itdb, NULL, &error)) { /* an error occurred */
- success = FALSE;
- if (error && error->message)
- gtkpod_warning("%s\n\n", error->message);
- else
- g_warning ("error->message == NULL!\n");
- g_error_free(error);
- error = NULL;
- }
- if (success) { /* write extended information */
- success = write_extended_info(itdb);
- }
- }
-
for (it = itdb->tracks; it != NULL; it = it->next) {
gp_track_validate_entries((Itdb_Track *) it->data);
}
@@ -1789,7 +1755,7 @@ static gboolean gp_write_itdb(iTunesDB *itdb) {
/* If the ipod supports photos and the photo_data_changed
* flag has been set to true then wrtie the photo database
*/
- if (success && (itdb->usertype & GP_ITDB_TYPE_IPOD) &&
itdb_device_supports_photo(itdb->device) && eitdb->photodb
+ if (success && gp_itdb_has_mountpoint(itdb) &&
itdb_device_supports_photo(itdb->device) && eitdb->photodb
!= NULL && eitdb->photo_data_changed == TRUE) {
GError *error = NULL;
if (!itdb_photodb_write(eitdb->photodb, &error)) {
@@ -1807,12 +1773,7 @@ static gboolean gp_write_itdb(iTunesDB *itdb) {
/* indicate that files and/or database is saved */
if (success) {
data_unchanged(itdb);
- if (itdb->usertype & GP_ITDB_TYPE_IPOD) {
- gtkpod_statusbar_message(_("%s: Database saved"), mpl->name);
- }
- else {
- gtkpod_statusbar_message(_("%s: Changes saved"), mpl->name);
- }
+ gtkpod_statusbar_message(_("%s: Changes saved"), mpl->name);
}
g_free(cfgdir);
diff --git a/libgtkpod/gp_itdb.c b/libgtkpod/gp_itdb.c
index b95847e..63ce111 100644
--- a/libgtkpod/gp_itdb.c
+++ b/libgtkpod/gp_itdb.c
@@ -48,10 +48,129 @@
#include "clientserver.h"
#include "gtkpod_app_iface.h"
+#define CONVERT_ERR_MESSAGE "Failed to convert local itunes db from file to a
directory."
+
/* A struct containing a list with available iTunesDBs. A pointer to
this struct is stored in gtkpod_app as itdbs_head */
static struct itdbs_head *itdbs_head = NULL;
+static gchar *gp_convert_itdb_file_to_directory (gint index, gint itdb_type,
gchar *filename) {
+
+ g_return_val_if_fail((itdb_type & GP_ITDB_TYPE_PODCASTS) || (itdb_type &
GP_ITDB_TYPE_LOCAL), NULL);
+
+ GError *error = NULL;
+ gboolean result;
+
+ if (!filename) {
+ gchar *local = g_strdup_printf("local%d.itdb", index);
+ filename = g_build_filename(prefs_get_cfgdir(), local, NULL);
+ g_free(local);
+ }
+
+ g_message("Filename: %s", filename);
+
+ gchar *db_name_key = get_itdb_prefs_key(index, KEY_NAME);
+ gchar *db_name = prefs_get_string(db_name_key);
+ g_free(db_name_key);
+
+ if (! db_name) {
+ if (itdb_type & GP_ITDB_TYPE_PODCASTS)
+ db_name = g_strdup(_("Podcasts"));
+ else
+ db_name = g_strdup(_("Local"));
+ }
+
+ /* Determine the new mountpoint */
+ gchar *mountpoint = g_build_filename(prefs_get_cfgdir(),
g_strdup_printf("%s_%d", g_utf8_strdown(db_name, -1), index), NULL);
+ while (g_file_test(mountpoint, G_FILE_TEST_EXISTS)) {
+ gchar *mp = g_strdup_printf("%s1", mountpoint);
+ g_free(mountpoint);
+ mountpoint = mp;
+ }
+
+ g_message("Chosen mountpoint: %s", mountpoint);
+
+ /* initialise a blank itdb in the mountpoint */
+ const Itdb_IpodInfo *info = itdb_info_get_ipod_info_table();
+ while(info->model_number) {
+ if (info->ipod_generation == ITDB_IPOD_GENERATION_CLASSIC_3) {
+ break;
+ }
+ ++info;
+ }
+
+ result = itdb_init_ipod(mountpoint, info->model_number, db_name, &error);
+ g_free(db_name);
+
+ if (!result) {
+ if (error) {
+ gtkpod_warning(_("%s : %s\n"), CONVERT_ERR_MESSAGE,
error->message);
+ g_error_free(error);
+ error = NULL;
+ }
+ else {
+ gtkpod_warning(_("%s, unknown error initialising directory
structure\n"), CONVERT_ERR_MESSAGE);
+ }
+ g_free(mountpoint);
+ return NULL;
+ }
+
+ /* Copy in the itdb file to replace the blank itdb */
+ gchar *itunesdb = itdb_get_itunesdb_path(mountpoint);
+ GFile *oldfile = g_file_new_for_path(filename);
+ GFile *newfile = g_file_new_for_path(itunesdb);
+ g_free(itunesdb);
+
+ result = g_file_copy(oldfile, newfile, G_FILE_COPY_OVERWRITE, NULL, NULL,
NULL, &error);
+ g_object_unref(oldfile);
+ g_object_unref(newfile);
+
+ if (!result) {
+ if (error) {
+ gtkpod_warning(_("%s : %s\n"), CONVERT_ERR_MESSAGE,
error->message);
+ g_error_free(error);
+ error = NULL;
+ }
+ else {
+ gtkpod_warning(_("%s, unknown error copying in existing itdb.\n"),
CONVERT_ERR_MESSAGE);
+ }
+ g_free(mountpoint);
+ return NULL;
+ }
+
+ /* Copy in the itdb ext */
+ gchar *oldextfilename = g_strdup_printf("%s.ext", filename);
+ gchar *newextfilename = g_strdup_printf("%s.ext",
itdb_get_itunesdb_path(mountpoint));
+ oldfile = g_file_new_for_path(oldextfilename);
+ newfile = g_file_new_for_path(newextfilename);
+ g_free(oldextfilename);
+ g_free(newextfilename);
+
+ result = g_file_copy(oldfile, newfile, G_FILE_COPY_OVERWRITE, NULL, NULL,
NULL, &error);
+ g_object_unref(oldfile);
+ g_object_unref(newfile);
+
+ if (!result) {
+ if (error) {
+ gtkpod_warning(_("%s : %s\n"), CONVERT_ERR_MESSAGE,
error->message);
+ g_error_free(error);
+ error = NULL;
+ }
+ else {
+ gtkpod_warning(_("%s, unknown error copying in existing itdb ext
file.\n"), CONVERT_ERR_MESSAGE);
+ }
+ g_free(mountpoint);
+ return NULL;
+ }
+
+ /* Successfully created new itdb */
+
+ /* Update preferences of this itdb */
+ set_itdb_index_prefs_string(index, KEY_MOUNTPOINT, mountpoint);
+
+ return mountpoint;
+}
+
/* for convenience */
struct itdbs_head *gp_get_itdbs_head() {
g_return_val_if_fail(gtkpod_app, NULL);
@@ -186,6 +305,10 @@ void gp_itdb_add_extra_full(iTunesDB *itdb) {
}
}
+gboolean gp_itdb_has_mountpoint(iTunesDB *itdb) {
+ return itdb_get_mountpoint(itdb) != NULL;
+}
+
Playlist *gp_playlist_new(const gchar *title, gboolean spl) {
Playlist *pl = itdb_playlist_new(title, spl);
pl->userdata = g_new0 (ExtraPlaylistData, 1);
@@ -859,7 +982,7 @@ void gp_init_itdbs() {
system. */
iTunesDB *setup_itdb_n(gint i) {
iTunesDB *itdb = NULL;
- gchar *property = get_itdb_prefs_key(i, "type");
+ gchar *property = get_itdb_prefs_key(i, KEY_TYPE);
gint type;
gboolean valid = prefs_get_int_value(property, &type);
g_free(property);
@@ -868,33 +991,36 @@ iTunesDB *setup_itdb_n(gint i) {
Playlist *pl = NULL;
ExtraiTunesDBData *eitdb;
gchar *filename = NULL;
- gchar *mountpoint = NULL;
gchar *offline_filename = NULL;
+ gchar *mountpoint = NULL;
- if (type & GP_ITDB_TYPE_LOCAL) {
- gchar *fn = get_itdb_prefs_key(i, "filename");
+ /* Read filename from preferences */
+ gchar *filename_key = get_itdb_prefs_key(i, KEY_FILENAME);
+ if (filename_key) {
+ filename = prefs_get_string(filename_key);
+ }
+ g_free(filename_key);
- filename = prefs_get_string(fn);
+ /* Read mountpoint from preferences */
+ gchar *mountpoint_key = get_itdb_prefs_key(i, KEY_MOUNTPOINT);
+ if (mountpoint_key) {
+ mountpoint = prefs_get_string(mountpoint_key);
+ }
+ g_free(mountpoint_key);
- if (!filename) {
- gchar *local = g_strdup_printf("local%d.itdb", i);
- filename = g_build_filename(cfgdir, local, NULL);
- g_free(local);
+ if (type & GP_ITDB_TYPE_LOCAL) {
+ if (!mountpoint) {
+ /* This is the old style itdb file */
+ g_warning("Deprecated file structure ... Converting local
itdb");
+ mountpoint = gp_convert_itdb_file_to_directory(i, type,
filename);
}
- g_free(fn);
- if (g_file_test(filename, G_FILE_TEST_EXISTS))
- itdb = gp_import_itdb(NULL, type, NULL, NULL, filename);
+
+ if (g_file_test(mountpoint, G_FILE_TEST_EXISTS))
+ itdb = gp_import_itdb(NULL, type, mountpoint, filename);
}
else if (type & GP_ITDB_TYPE_IPOD) {
- gchar *key;
-
- key = get_itdb_prefs_key(i, KEY_MOUNTPOINT);
- mountpoint = prefs_get_string(key);
- g_free(key);
-
- key = get_itdb_prefs_key(i, "filename");
- offline_filename = prefs_get_string(key);
- g_free(key);
+ offline_filename = filename;
+ filename = NULL;
if (!offline_filename) {
gchar *local = g_strdup_printf("gtkpod_%d.itdb", i);
diff --git a/libgtkpod/gp_itdb.h b/libgtkpod/gp_itdb.h
index 74e6b71..a56e9cc 100644
--- a/libgtkpod/gp_itdb.h
+++ b/libgtkpod/gp_itdb.h
@@ -134,6 +134,7 @@ void gp_itdb_free (iTunesDB *itdb);
void gp_replace_itdb (iTunesDB *old_itdb, iTunesDB *new_itdb);
void gp_itdb_add_extra (iTunesDB *itdb);
void gp_itdb_add_extra_full (iTunesDB *itdb);
+gboolean gp_itdb_has_mountpoint(iTunesDB *itdb);
Track *gp_track_new (void);
#define gp_track_free itdb_track_free
diff --git a/libgtkpod/prefs.c b/libgtkpod/prefs.c
index 249d71d..15c8abc 100644
--- a/libgtkpod/prefs.c
+++ b/libgtkpod/prefs.c
@@ -73,6 +73,8 @@ const gchar *KEY_MOUNTPOINT = "mountpoint";
const gchar *KEY_BACKUP = "filename";
const gchar *KEY_IPOD_MODEL = "ipod_model";
const gchar *KEY_FILENAME = "filename";
+const gchar *KEY_TYPE = "type";
+const gchar *KEY_NAME = "name";
const gchar *KEY_PATH_SYNC_CONTACTS = "path_sync_contacts";
const gchar *KEY_PATH_SYNC_CALENDAR = "path_sync_calendar";
const gchar *KEY_PATH_SYNC_NOTES = "path_sync_notes";
diff --git a/libgtkpod/prefs.h b/libgtkpod/prefs.h
index 585f721..212d46a 100644
--- a/libgtkpod/prefs.h
+++ b/libgtkpod/prefs.h
@@ -53,6 +53,8 @@ extern const gchar *KEY_SYNC_SHOW_SUMMARY;
extern const gchar *KEY_MOUNTPOINT;
extern const gchar *KEY_IPOD_MODEL;
extern const gchar *KEY_FILENAME;
+extern const gchar *KEY_TYPE;
+extern const gchar *KEY_NAME;
extern const gchar *KEY_PATH_SYNC_CONTACTS;
extern const gchar *KEY_PATH_SYNC_CALENDAR;
extern const gchar *KEY_PATH_SYNC_NOTES;
diff --git a/plugins/repository_editor/repository_init.c
b/plugins/repository_editor/repository_init.c
index ed69c89..901d458 100644
--- a/plugins/repository_editor/repository_init.c
+++ b/plugins/repository_editor/repository_init.c
@@ -177,7 +177,7 @@ gboolean repository_ipod_init(iTunesDB *itdb) {
model = gtk_combo_box_get_active_text(GTK_COMBO_BOX (GET_WIDGET
(ii->builder, IID_MODEL_COMBO)));
if ((strcmp(model, gettext(SELECT_OR_ENTER_YOUR_MODEL)) == 0) ||
(strlen(model) == 0)) { /* User didn't choose a model */
g_free(model);
- model = NULL;
+ model = "Unknown";
}
/* Set model in the prefs system */
------------------------------------------------------------------------------
Colocation vs. Managed Hosting
A question and answer guide to determining the best fit
for your organization - today and in the future.
http://p.sf.net/sfu/internap-sfd2d
_______________________________________________
gtkpod-cvs2 mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gtkpod-cvs2