diff -Nru mplinuxman-1.4/CHANGES mplinuxman-1.5/CHANGES --- mplinuxman-1.4/CHANGES 2004-01-20 03:47:36.000000000 -0300 +++ mplinuxman-1.5/CHANGES 2006-12-21 11:36:56.000000000 -0300 @@ -1,3 +1,10 @@ +21/12/06 Version 1.5 +* Ported open/save/about dialogs to the new stock Gtk dialogs +* Files played with a external player are now added to the list of recent files. +* Added a launcher (.desktop file) for Mplinuxman +* Improved the GUI to be more GNOME HIG compliant +* Updated the Dutch translation + 19/01/04 Version 1.4 * Added support for building on Mac OS X , thanks to Kris Meeusen for getting this to work diff -Nru mplinuxman-1.4/closed.xpm mplinuxman-1.5/closed.xpm --- mplinuxman-1.4/closed.xpm 2003-05-21 18:34:22.000000000 -0300 +++ mplinuxman-1.5/closed.xpm 1969-12-31 21:00:00.000000000 -0300 @@ -1,25 +0,0 @@ -/* XPM */ -static char * closed_xpm[] = { -"15 13 9 1", -" c None", -". c #FFFFFF", -"+ c #909000", -"@ c #000000", -"# c #EFE8EF", -"$ c #FFF8CF", -"% c #FFF890", -"& c #CFC860", -"* c #FFC890", -"..+++++@.......", -".+#$$%%+@......", -"+&&&&&&&++++++.", -"+$$$$$$$$$$$%&@", -"+$%%%%%%%%%%*&@", -"+$%%%%%%%*%*%&@", -"+$%%%%%%%%*%*&@", -"+$%%%%%*%*%*%&@", -"+$%%%%%%*%*%*&@", -"+$%%%*%*%*%**&@", -"+$*%*%*%*%***&@", -"+&&&&&&&&&&&&&@", -".@@@@@@@@@@@@@@"}; diff -Nru mplinuxman-1.4/CVS/Entries mplinuxman-1.5/CVS/Entries --- mplinuxman-1.4/CVS/Entries 2004-01-13 00:26:19.000000000 -0300 +++ mplinuxman-1.5/CVS/Entries 1969-12-31 21:00:00.000000000 -0300 @@ -1,26 +0,0 @@ -/CHANGES/1.3/Tue Nov 25 12:43:52 2003// -/COPYING/1.1.1.1/Wed May 21 21:34:16 2003// -/README/1.2/Tue Nov 25 12:52:50 2003// -/closed.xpm/1.1.1.1/Wed May 21 21:34:22 2003// -/dirdialog.c/1.3/Mon Jun 23 02:52:04 2003// -/dirdialog.h/1.1.1.1/Wed May 21 21:34:25 2003// -D/extra//// -D/f60lib//// -D/ini//// -D/libusb//// -/logo.xpm/1.1.1.1/Wed May 21 21:34:28 2003// -/main.c/1.3/Tue Nov 25 12:45:01 2003// -/mainwindow.c/1.5/Mon Jan 12 11:51:14 2004// -/makefile/1.4/Tue Jan 13 01:56:27 2004// -/miscwindow.c/1.2/Tue Nov 25 12:49:27 2003// -/mp3util.c/1.1.1.1/Wed May 21 21:34:39 2003// -/mp3util.h/1.1.1.1/Wed May 21 21:34:39 2003// -/mplinux.h/1.3/Mon Jan 12 11:51:14 2004// -/mplist.c/1.3/Mon Jan 12 11:51:14 2004// -/open.xpm/1.1.1.1/Wed May 21 21:34:40 2003// -/playlist.c/1.2/Tue Nov 25 12:52:28 2003// -D/po//// -/random.xpm/1.1.1.1/Wed May 21 21:34:40 2003// -/useful.c/1.1.1.1/Wed May 21 21:34:41 2003// -/useful.h/1.1.1.1/Wed May 21 21:34:41 2003// -/waitdialog.c/1.2/Tue Nov 25 12:53:47 2003// diff -Nru mplinuxman-1.4/CVS/Repository mplinuxman-1.5/CVS/Repository --- mplinuxman-1.4/CVS/Repository 2004-01-11 10:16:39.000000000 -0300 +++ mplinuxman-1.5/CVS/Repository 1969-12-31 21:00:00.000000000 -0300 @@ -1 +0,0 @@ -mplinuxman diff -Nru mplinuxman-1.4/CVS/Root mplinuxman-1.5/CVS/Root --- mplinuxman-1.4/CVS/Root 2004-01-11 10:16:39.000000000 -0300 +++ mplinuxman-1.5/CVS/Root 1969-12-31 21:00:00.000000000 -0300 @@ -1 +0,0 @@ -:ext:mild7@cvs.sourceforge.net:/cvsroot/mplinuxman diff -Nru mplinuxman-1.4/debian/changelog mplinuxman-1.5/debian/changelog --- mplinuxman-1.4/debian/changelog 2011-05-03 00:22:02.000000000 -0300 +++ mplinuxman-1.5/debian/changelog 2011-05-02 23:14:13.000000000 -0300 @@ -1,3 +1,31 @@ +mplinuxman (1.5-0ubuntu1) natty; urgency=low + + * New upstream version: (LP: #181372) + - Ported open/save/about dialogs to the new stock Gtk dialogs + - Files played with a external player are now added to the list of + recent files. + - Added a launcher (.desktop file) for Mplinuxman + - Improved the GUI to be more GNOME HIG compliant + - Updated the Dutch translation + + * debian/control: + - Updated Debian policy spec to 3.9.1 + + * debian/patches: + - patches 01_gcc-4.0-fixes.dpatch and 01_gcc-4.0-fixes.dpatch removed as + they already are applied in upstream. + - added 01_install-launcher-and-icons-files.patch to modify original + makefile, removing unnecesary targets. + + * patch system changed to quilt to avoid deprecated patch system. + + * debian/control: updated to reflect the build dep to quilt instead of + dpatch. + + * + + -- Sebastian Carneiro Mon, 02 May 2011 23:10:54 -0300 + mplinuxman (1.4-0ubuntu2) gutsy; urgency=low * debian/control: Update maintainer fields according to debian- diff -Nru mplinuxman-1.4/debian/control mplinuxman-1.5/debian/control --- mplinuxman-1.4/debian/control 2011-05-03 00:22:02.000000000 -0300 +++ mplinuxman-1.5/debian/control 2011-05-02 21:53:25.000000000 -0300 @@ -3,13 +3,13 @@ Priority: optional Maintainer: Ubuntu MOTU Developers XSBC-Original-Maintainer: Lukas Fittl -Build-Depends: debhelper (>= 5.0.0), dpatch, cdbs, libgtk2.0-dev -Standards-Version: 3.6.2.2 +Build-Depends: debhelper (>= 5.0.0), quilt, cdbs, libgtk2.0-dev +Standards-Version: 3.9.1 Package: mplinuxman Section: libdevel Architecture: any -Depends: ${shlibs:Depends} +Depends: ${shlibs:Depends}, ${misc:Depends} Description: an mp3 player manager for mpman F50/F60 Mplinuxman is a file manager program for the Mpman F60/F50 USB portable MP3 player, for Linux. It lets you send/recieve files diff -Nru mplinuxman-1.4/debian/patches/00list mplinuxman-1.5/debian/patches/00list --- mplinuxman-1.4/debian/patches/00list 2011-05-03 00:22:02.000000000 -0300 +++ mplinuxman-1.5/debian/patches/00list 1969-12-31 21:00:00.000000000 -0300 @@ -1,2 +0,0 @@ -01_gcc-4.0-fixes.dpatch -02_makefile-install.dpatch diff -Nru mplinuxman-1.4/debian/patches/01_gcc-4.0-fixes.dpatch mplinuxman-1.5/debian/patches/01_gcc-4.0-fixes.dpatch --- mplinuxman-1.4/debian/patches/01_gcc-4.0-fixes.dpatch 2011-05-03 00:22:02.000000000 -0300 +++ mplinuxman-1.5/debian/patches/01_gcc-4.0-fixes.dpatch 1969-12-31 21:00:00.000000000 -0300 @@ -1,58 +0,0 @@ -#! /bin/sh /usr/share/dpatch/dpatch-run -## 01_gcc-4.0-fixes.dpatch by Lukas Fittl -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: This fixes l-value gcc-4.0 compile errors. - -@DPATCH@ -diff -urNad mplinuxman-1.4~/ini/ini.c mplinuxman-1.4/ini/ini.c ---- mplinuxman-1.4~/ini/ini.c 2003-05-21 23:34:43.000000000 +0200 -+++ mplinuxman-1.4/ini/ini.c 2006-02-13 20:45:02.000000000 +0100 -@@ -397,7 +397,7 @@ - retval = current->sectionname; - current = current->next; - if (!current) -- (unsigned int) current = 1; -+ current = (section_t*) 1; - return retval; - } - -@@ -414,7 +414,7 @@ - } - - if (!ptr) -- (unsigned int) current = 1; -+ current = (section_t*) 1; - - if ((unsigned int)current == 1) { - current = 0; -diff -urNad mplinuxman-1.4~/miscwindow.c mplinuxman-1.4/miscwindow.c ---- mplinuxman-1.4~/miscwindow.c 2004-01-19 08:58:28.000000000 +0100 -+++ mplinuxman-1.4/miscwindow.c 2006-02-13 20:43:48.000000000 +0100 -@@ -430,7 +430,7 @@ - guchar *pixels; - int rowstride; - -- (gpointer) frame = data; -+ frame = (GdkPixbuf*) data; - - rowstride = gdk_pixbuf_get_rowstride (frame); - pixels = gdk_pixbuf_get_pixels (frame) + rowstride * event->area.y + event->area.x * 4; -@@ -455,7 +455,7 @@ - static float multiplier = 0.0; - static unsigned char lcolor = 1; - -- (gpointer) frame = data; -+ frame = (GdkPixbuf*) data; - - rowstride = gdk_pixbuf_get_rowstride (frame); - pixels = gdk_pixbuf_get_pixels(frame); -@@ -495,7 +495,7 @@ - g_source_remove (timeout_id); - timeout_id = 0; - -- (gpointer) frame = data; -+ frame = (GdkPixbuf*) data; - g_object_unref(frame); - g_object_unref(buffer); - gtk_widget_destroy(GTK_WIDGET(object)); diff -Nru mplinuxman-1.4/debian/patches/01_install-launcher-and-icons-files.patch mplinuxman-1.5/debian/patches/01_install-launcher-and-icons-files.patch --- mplinuxman-1.4/debian/patches/01_install-launcher-and-icons-files.patch 1969-12-31 21:00:00.000000000 -0300 +++ mplinuxman-1.5/debian/patches/01_install-launcher-and-icons-files.patch 2011-05-02 23:36:04.000000000 -0300 @@ -0,0 +1,43 @@ +Description: Remove non compliant install targets from makefile + . +Forwarded: not-needed +Author: Sebastian Carneiro +Last-Update: 2011-05-02 +Index: mplinuxman-1.5/makefile +=================================================================== +--- mplinuxman-1.5.orig/makefile 2011-05-02 22:58:03.596037105 -0300 ++++ mplinuxman-1.5/makefile 2011-05-02 23:02:56.749490774 -0300 +@@ -51,33 +51,4 @@ + #compile/install all translated message files in po dir + install-po: + sh po/install.sh +- +-install-launcher: +- cp logo.xpm /usr/local/share/pixmaps/mplinuxman.xpm +- cp mplinuxman.desktop /usr/local/share/applications + +-install: +- mkdir -p /usr/local/bin/ +- cp mplinuxman /usr/local/bin +- cd extra/mp_util && make && cp mputil /usr/local/bin && cd ../.. +- mkdir -p /usr/local/share/pixmaps/ +- cp logo.xpm /usr/local/share/pixmaps/mplinuxman.xpm +- mkdir -p /usr/local/share/applications/ +- cp mplinuxman.desktop /usr/local/share/applications +- mkdir -p /usr/local/share/locale/de/LC_MESSAGES/ +- mkdir -p /usr/local/share/locale/es/LC_MESSAGES/ +- mkdir -p /usr/local/share/locale/fr/LC_MESSAGES/ +- mkdir -p /usr/local/share/locale/ja/LC_MESSAGES/ +- mkdir -p /usr/local/share/locale/nl/LC_MESSAGES/ +- sh po/install.sh +- +-uninstall: +- rm /usr/local/bin/mplinuxman +- rm /usr/local/bin/mputil +- rm /usr/local/share/pixmaps/mplinuxman.xpm +- rm /usr/local/share/applications/mplinuxman.desktop +- rm /usr/local/share/locale/de/LC_MESSAGES/mplinuxman.mo +- rm /usr/local/share/locale/es/LC_MESSAGES/mplinuxman.mo +- rm /usr/local/share/locale/fr/LC_MESSAGES/mplinuxman.mo +- rm /usr/local/share/locale/ja/LC_MESSAGES/mplinuxman.mo +- rm /usr/local/share/locale/nl/LC_MESSAGES/mplinuxman.mo diff -Nru mplinuxman-1.4/debian/patches/02_makefile-install.dpatch mplinuxman-1.5/debian/patches/02_makefile-install.dpatch --- mplinuxman-1.4/debian/patches/02_makefile-install.dpatch 2011-05-03 00:22:02.000000000 -0300 +++ mplinuxman-1.5/debian/patches/02_makefile-install.dpatch 1969-12-31 21:00:00.000000000 -0300 @@ -1,19 +0,0 @@ -#! /bin/sh /usr/share/dpatch/dpatch-run -## 02_makefile-install.dpatch by Lukas Fittl -## -## All lines beginning with `## DP:' are a description of the patch. -## DP: This adds a small install target to the makefile. - -@DPATCH@ -diff -urNad mplinuxman-1.4~/makefile mplinuxman-1.4/makefile ---- mplinuxman-1.4~/makefile 2006-02-13 20:48:58.000000000 +0100 -+++ mplinuxman-1.4/makefile 2006-02-13 23:40:47.000000000 +0100 -@@ -51,5 +51,7 @@ - #compile/install all translated message files in po dir - install-po: - sh po/install.sh -- - -+install: -+ install -d $(DESTDIR)/usr/bin/ -+ install mplinuxman $(DESTDIR)/usr/bin/ diff -Nru mplinuxman-1.4/debian/patches/series mplinuxman-1.5/debian/patches/series --- mplinuxman-1.4/debian/patches/series 1969-12-31 21:00:00.000000000 -0300 +++ mplinuxman-1.5/debian/patches/series 2011-05-02 22:20:18.000000000 -0300 @@ -0,0 +1 @@ +01_install-launcher-and-icons-files.patch diff -Nru mplinuxman-1.4/debian/rules mplinuxman-1.5/debian/rules --- mplinuxman-1.4/debian/rules 2011-05-03 00:22:02.000000000 -0300 +++ mplinuxman-1.5/debian/rules 2011-05-02 23:55:38.000000000 -0300 @@ -1,11 +1,6 @@ #!/usr/bin/make -f include /usr/share/cdbs/1/rules/debhelper.mk -include /usr/share/cdbs/1/rules/dpatch.mk - -include /usr/share/cdbs/1/class/makefile.mk - -include /usr/share/dpatch/dpatch.make DEB_MAKE_INSTALL_TARGET := install DESTDIR=$(CURDIR)/debian/mplinuxman @@ -13,4 +8,3 @@ binary-install/mplinuxman:: install -m644 -DT logo.xpm debian/mplinuxman/usr/share/pixmaps/mplinuxman.xpm - dh_desktop -pmplinuxman diff -Nru mplinuxman-1.4/debian/source/format mplinuxman-1.5/debian/source/format --- mplinuxman-1.4/debian/source/format 1969-12-31 21:00:00.000000000 -0300 +++ mplinuxman-1.5/debian/source/format 2011-05-02 21:02:03.000000000 -0300 @@ -0,0 +1 @@ +3.0 (quilt) diff -Nru mplinuxman-1.4/debian/watch mplinuxman-1.5/debian/watch --- mplinuxman-1.4/debian/watch 2011-05-03 00:22:02.000000000 -0300 +++ mplinuxman-1.5/debian/watch 2011-05-02 21:59:54.000000000 -0300 @@ -1,3 +1,3 @@ version = 3 -http://people.debian.org/~lolando/sfdlr.php?project=mplinuxman mplinuxman-source-([\d.]*).tar.gz +http://sf.net/mplinuxman/mplinuxman-source-(.+)\.tar\.gz diff -Nru mplinuxman-1.4/dirdialog.c mplinuxman-1.5/dirdialog.c --- mplinuxman-1.4/dirdialog.c 2004-01-18 05:09:34.000000000 -0300 +++ mplinuxman-1.5/dirdialog.c 2006-10-25 17:54:45.000000000 -0300 @@ -17,30 +17,7 @@ #define gettext_noop(String) String #define N_(String) gettext_noop (String) -#ifndef USE_OSX -#include -#endif - -#define MAX_PATH NAME_MAX + PATH_MAX - - - #include "dirdialog.h" -#include "open.xpm" -#include "closed.xpm" - -static GtkWidget* dirsel_window = NULL; - -static gchar dirsel_dirname[MAX_PATH]; - -static dirsel_callback dirsel_callback_func; - -enum { -// DIRSEL_COL1, - DIRSEL_COL2, - DIRSEL_NCOL - -}; #ifdef NLS @@ -74,414 +51,3 @@ } #endif - -gchar* dirsel_get_path_from_tree(gchar* fullpath, - GtkTreeModel* model, - GtkTreeIter* iter) { - GString* p; - gchar* c; - GtkTreeIter parent; - GtkTreeIter child; - gboolean flag = 0; - child = *iter; - p = g_string_new(""); - - while (gtk_tree_model_iter_parent(model,&parent,&child)) { - gtk_tree_model_get(model,&child,DIRSEL_COL2,&c,-1); - g_string_prepend(p,c); - g_string_prepend(p,"/"); - child = parent; - flag = 1; - } - if (!flag) - g_string_prepend(p,"/"); - - strncpy(fullpath,p->str,MAX_PATH); - g_string_free(p,TRUE); - return fullpath; -} - -gchar* dirsel_path_cat(gchar* ret,gchar* p1,char* p2) { - if (strlen(p1) + strlen(p2) > MAX_PATH - 1) - return NULL; - strncpy(ret,p1,MAX_PATH); - if (p1[strlen(p1) -1] != '/') - strcat(ret,"/"); - strncat(ret,p2,MAX_PATH - (strlen(p1) +1)); - - return ret; -} - -int dirsel_check_for_sub_dir(gchar* path) { - GDir* dptr; - gchar* c; - gchar fullpath[MAX_PATH]; - - dptr = g_dir_open(path,0,NULL); - if (dptr == NULL) - return 0; - - while( (c = (gchar*)g_dir_read_name(dptr)) != NULL) - if (g_file_test(dirsel_path_cat(fullpath,path,c) ,G_FILE_TEST_IS_DIR)) { - g_dir_close(dptr); - return 1; - } - - g_dir_close(dptr); - return 0; -} - -gint dirsel_dircomp(GString* s1,GString* s2) { - - return strcmp(s1->str,s2->str); -} - -int dirsel_load_dir(GtkTreeStore* model,GtkTreeIter* iter,gchar* path) { - GDir* dptr; - gchar* c; - gchar fullpath[MAX_PATH]; - GList* dirlist = NULL; - GtkTreeIter iter2; - GtkTreeIter iter3; - GString* gs; - gint showhidden = 0; - - dptr = g_dir_open(path,0,NULL); - if (dptr == NULL) - return 0; - - showhidden = (gint)g_object_get_data(G_OBJECT(dirsel_window),"show hidden"); - - while( (c = (gchar*)g_dir_read_name(dptr)) != NULL) { - if ((*c == '.') && !showhidden) continue; - if (g_file_test(dirsel_path_cat(fullpath,path,c),G_FILE_TEST_IS_DIR)) { -#ifdef NLS - gs = g_string_new(dirsel_convert_if_needed(c)); -#else - gs = g_string_new(c); -#endif - dirlist = g_list_insert_sorted(dirlist,gs,(GCompareFunc)dirsel_dircomp); - } - } - - for (dirlist = g_list_first(dirlist);dirlist;dirlist = g_list_next(dirlist)) { - gtk_tree_store_append(model,&iter2,iter); - gtk_tree_store_set(model,&iter2,DIRSEL_COL2,((GString*)dirlist->data)->str,-1); - - if (dirsel_check_for_sub_dir(dirsel_path_cat(fullpath,path,((GString*)dirlist->data)->str))) - gtk_tree_store_append(model,&iter3,&iter2); - - g_string_free((GString*)dirlist->data,0); - } - - g_dir_close(dptr); - g_list_free(dirlist); - return 1; -} - - -void dirsel_row_expanded (GtkTreeView *treeview, - GtkTreeIter* arg1, - gint arg2, - gpointer user_data) -{ - gchar fullpath[MAX_PATH]; - GtkTreeIter iter; - gboolean ret; - GtkTreeModel* model; - - model = gtk_tree_view_get_model(treeview); - dirsel_get_path_from_tree(fullpath,model,arg1); - ret = gtk_tree_model_iter_nth_child(model,&iter,arg1,0); - dirsel_load_dir(GTK_TREE_STORE(model),arg1,fullpath); - if (ret) gtk_tree_store_remove(GTK_TREE_STORE(model),&iter); -} - -void dirsel_row_collapsed (GtkTreeView *treeview, - GtkTreeIter* arg1, - gint arg2, - gpointer user_data) -{ - GtkTreeModel* model; - GtkTreeIter iter; - - model = gtk_tree_view_get_model(treeview); - - gtk_tree_model_iter_nth_child(model,&iter,arg1,0); - while(gtk_tree_model_iter_n_children(model,arg1) > 1) - gtk_tree_store_remove(GTK_TREE_STORE(model),&iter); -} - -gboolean dirsel_DestroyWidget(GtkWidget *button,gpointer user_data) { - gtk_widget_destroy(dirsel_window); - return FALSE; - -} - - -void dirsel_button_clicked(GtkButton *button,gpointer user_data) { - -// gtk_timeout_add (1000,(GtkFunction)run_callback,user_data); - gtk_timeout_add (200,(GtkFunction)dirsel_DestroyWidget,NULL); - dirsel_callback_func(dirsel_dirname,(gint) user_data); -} - - -void dirsel_destroy(GtkButton *button,gpointer user_data) { - dirsel_window = NULL; -} - -void dirsel_button_toggled(GtkToggleButton *button,gpointer user_data) { - - if (gtk_toggle_button_get_active(button)) - g_object_set_data(G_OBJECT(user_data),"show hidden",(gpointer)1); - else - g_object_set_data(G_OBJECT(user_data),"show hidden",(gpointer)0); -} - - -void dirsel_changed (GtkTreeView *treeview,gpointer user_data) { - GtkTreeSelection* selection; - GtkTreeIter iter; - GtkTreeModel *model; - - selection = gtk_tree_view_get_selection(treeview); - gtk_tree_selection_get_selected (selection, &model, &iter); - dirsel_get_path_from_tree(dirsel_dirname,model,&iter); -} - -gint dirsel_button_press(GtkWidget *widget, - GdkEventButton *event, - gpointer user_data) { - GtkTreeSelection* selection; - GtkTreePath* tp; - GtkTreeModel *model; - GtkTreeIter iter; - - if (event->type != GDK_2BUTTON_PRESS) - return FALSE; - - model = gtk_tree_view_get_model(GTK_TREE_VIEW(widget)); - selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widget)); - gtk_tree_selection_get_selected (selection, &model, &iter); - if (!gtk_tree_model_iter_has_child(model,&iter)) - return FALSE; - - tp = gtk_tree_model_get_path(model,&iter); - - if (!gtk_tree_view_row_expanded(GTK_TREE_VIEW(widget),tp)) - gtk_tree_view_expand_row(GTK_TREE_VIEW(widget),tp,0); - else - gtk_tree_view_collapse_row(GTK_TREE_VIEW(widget),tp); - gtk_tree_path_free (tp); - - return FALSE; -} - - -int dirsel_treeview_scroll (GtkTreeView* widget, - GdkEventScroll *event, - gpointer user_data) { - - GtkAdjustment* adj; - - adj= gtk_tree_view_get_vadjustment(GTK_TREE_VIEW(widget)); - adj->page_increment = 80.0f; - gtk_tree_view_set_vadjustment(GTK_TREE_VIEW(widget),adj); - gtk_adjustment_changed(adj); - - return FALSE; -} - -void dirsel_expand_to_path(GtkTreeView* tv,gchar* path) { - GtkTreePath* tp; - gchar* c; - gchar temp[MAX_PATH]; - GtkTreeIter iter; - GtkTreeIter iter2; - GtkTreeModel* model; - gchar* txt; - gboolean ret; - GtkTreeSelection *selection; - - if (!path) - return; - - model = gtk_tree_view_get_model(tv); - - strncpy(temp,path,MAX_PATH); - c = temp; - - while(*c != '\0') { - if (*c == '/') - *c = '\0'; - c++; - } - *++c = '\0'; - - c = temp; - if (*c == '\0') - c++; - - selection = gtk_tree_view_get_selection(tv); - gtk_tree_model_get_iter_first(model,&iter); - gtk_tree_selection_unselect_iter(selection,&iter); - gtk_tree_model_iter_nth_child(model,&iter2,&iter,0); - iter = iter2; - while(*c != '\0') { - - do { - gtk_tree_model_get(model,&iter,DIRSEL_COL2,&txt,-1); - - if (strncmp(txt,c,NAME_MAX) == 0) { - if (gtk_tree_model_iter_has_child(model,&iter)) { - tp = gtk_tree_model_get_path(model,&iter); - gtk_tree_view_set_cursor (tv,tp,NULL,0); - gtk_tree_view_scroll_to_cell(tv,tp,NULL,TRUE,0.5,0); - gtk_tree_view_expand_row(tv,tp,0); - gtk_tree_path_free (tp); - iter2 = iter; - gtk_tree_model_iter_nth_child(model,&iter,&iter2,0); - break; - } - else - { - tp = gtk_tree_model_get_path(model,&iter); - gtk_tree_view_set_cursor (tv,tp,NULL,0); - gtk_tree_view_scroll_to_cell(tv,tp,NULL,TRUE,0.5,0); - gtk_tree_path_free (tp); - ret = 0; - break; - } - } - } while( (ret = gtk_tree_model_iter_next(model,&iter)) ); - - if (!ret) - return; - c = c + strlen(c) + 1; - } -} - - - -GtkWindow* dirsel_create_dialog(dirsel_callback userfunc,gchar* path) { - GtkWidget* window = dirsel_window; - GtkWidget* vbox; - GtkWidget* hbox; - GtkWidget* scroller; - GtkWidget* bbox; - GtkWidget* statusbar; - GtkWidget* button; - GtkWidget* treeview; - GtkCellRenderer* renderer = gtk_cell_renderer_text_new(); - GtkCellRenderer* renderer2; - GtkTreeViewColumn* column; - GtkTreeStore* dir_tree; - GtkTreeIter iter; - GtkTreeIter iter2; - GtkTreePath* tpath; - - if (window) - return GTK_WINDOW(window); - - - window = gtk_widget_new(gtk_window_get_type(), - "type",GTK_WINDOW_TOPLEVEL, - "title",_("Select directory"), - "allow_grow",TRUE, - "allow_shrink",FALSE, - "default-width",350, - "default-height",350, - NULL); - - dirsel_window = window; - dirsel_callback_func = userfunc; - -// g_object_connect(window,"signal::destroy",gtk_widget_destroy,NULL,NULL); - g_signal_connect(window,"destroy",G_CALLBACK(dirsel_destroy),0); - vbox = gtk_vbox_new(FALSE,0); - gtk_container_add(GTK_CONTAINER(window),vbox); - scroller = gtk_scrolled_window_new(NULL, NULL); - gtk_container_set_border_width(GTK_CONTAINER(scroller),5); - gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroller), - GTK_POLICY_ALWAYS, - GTK_POLICY_ALWAYS); - gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scroller),GTK_SHADOW_IN); - treeview = gtk_tree_view_new(); - gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(treeview),FALSE); - gtk_container_add(GTK_CONTAINER(scroller),treeview); - gtk_box_pack_start(GTK_BOX(vbox),scroller,TRUE,TRUE,0); - hbox = gtk_hbox_new(FALSE,0); - button = gtk_check_button_new_with_label(_("Show Hidden Directories")); - gtk_box_pack_start(GTK_BOX(hbox),button,TRUE,FALSE,0); - gtk_box_pack_start(GTK_BOX(vbox),hbox,FALSE,FALSE,0); - - - g_object_set_data(G_OBJECT(treeview),"show hidden",(gpointer)0); - g_signal_connect(button,"clicked",G_CALLBACK(dirsel_button_toggled),(gpointer)window); - g_object_set_data(G_OBJECT(window),"show hidden",(gpointer)0); - - - bbox = gtk_hbutton_box_new(); - gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox),GTK_BUTTONBOX_END); - gtk_box_set_spacing (GTK_BOX (bbox), 10); - gtk_container_set_border_width(GTK_CONTAINER(bbox),5); - - button = gtk_button_new_from_stock(GTK_STOCK_OK); - gtk_container_add(GTK_CONTAINER(bbox),button); - g_signal_connect(button,"clicked",G_CALLBACK(dirsel_button_clicked),(gpointer)1); - - button = gtk_button_new_from_stock(GTK_STOCK_CANCEL); - gtk_container_add(GTK_CONTAINER(bbox),button); - gtk_box_pack_start(GTK_BOX(hbox),bbox,FALSE,FALSE,0); - g_signal_connect(button,"clicked",G_CALLBACK(dirsel_button_clicked),(gpointer)0); - - statusbar = gtk_statusbar_new(); - gtk_box_pack_start(GTK_BOX(vbox),statusbar,FALSE,FALSE,0); - - if (1) { - char font[] = "Sans 10"; - gtk_cell_renderer_set_fixed_size(renderer,-1,20); - g_object_set(renderer,"font",font,NULL); - } - - renderer2 = gtk_cell_renderer_pixbuf_new(); - column = gtk_tree_view_column_new(); - gtk_tree_view_column_set_title(column,"pic"); - gtk_tree_view_column_pack_start(column,renderer2,FALSE); - - if (1 ) { - GdkPixbuf* p; - p = gdk_pixbuf_new_from_xpm_data((const char**)&closed_xpm); - g_object_set(renderer2,"pixbuf",p,NULL); - p = gdk_pixbuf_new_from_xpm_data((const char**)&open_xpm); - g_object_set(renderer2,"pixbuf-expander-open",p,NULL); - p = gdk_pixbuf_new_from_xpm_data((const char**)&closed_xpm); - g_object_set(renderer2,"pixbuf-expander-closed",p,NULL); - } - - gtk_tree_view_column_pack_start(column,renderer,FALSE); - gtk_tree_view_column_set_attributes(column,renderer,"text",DIRSEL_COL2,NULL); - gtk_tree_view_append_column(GTK_TREE_VIEW(treeview),column); - - dir_tree = gtk_tree_store_new(DIRSEL_NCOL,G_TYPE_STRING); - gtk_tree_view_set_model(GTK_TREE_VIEW(treeview),GTK_TREE_MODEL(dir_tree)); - - g_signal_connect(treeview,"row-expanded",G_CALLBACK(dirsel_row_expanded),NULL); - g_signal_connect(treeview,"row-collapsed",G_CALLBACK(dirsel_row_collapsed),NULL); - g_signal_connect(treeview,"cursor_changed",G_CALLBACK(dirsel_changed),NULL); - g_signal_connect(treeview,"button-press-event",G_CALLBACK(dirsel_button_press),NULL); - g_signal_connect(treeview,"scroll-event",G_CALLBACK(dirsel_treeview_scroll),NULL); - - gtk_tree_store_append(dir_tree,&iter,NULL); - gtk_tree_store_set(dir_tree,&iter,DIRSEL_COL2,"/",-1); - gtk_tree_store_append(dir_tree,&iter2,&iter); - - tpath = gtk_tree_path_new_from_string ("0"); - gtk_tree_view_expand_row(GTK_TREE_VIEW(treeview),tpath,0); - gtk_tree_path_free (tpath); - - dirsel_expand_to_path(GTK_TREE_VIEW(treeview),path); - - return GTK_WINDOW(window); -} diff -Nru mplinuxman-1.4/extra/CVS/Entries mplinuxman-1.5/extra/CVS/Entries --- mplinuxman-1.4/extra/CVS/Entries 2004-01-11 10:16:39.000000000 -0300 +++ mplinuxman-1.5/extra/CVS/Entries 1969-12-31 21:00:00.000000000 -0300 @@ -1,4 +0,0 @@ -D/mp_util//// -/mpf50.usermap/1.1.1.1/Wed May 21 21:34:41 2003// -/mpf60.usermap/1.1.1.1/Wed May 21 21:34:41 2003// -/mplinuxman/1.1.1.1/Wed May 21 21:34:41 2003// diff -Nru mplinuxman-1.4/extra/CVS/Repository mplinuxman-1.5/extra/CVS/Repository --- mplinuxman-1.4/extra/CVS/Repository 2004-01-11 10:16:39.000000000 -0300 +++ mplinuxman-1.5/extra/CVS/Repository 1969-12-31 21:00:00.000000000 -0300 @@ -1 +0,0 @@ -mplinuxman/extra diff -Nru mplinuxman-1.4/extra/CVS/Root mplinuxman-1.5/extra/CVS/Root --- mplinuxman-1.4/extra/CVS/Root 2004-01-11 10:16:39.000000000 -0300 +++ mplinuxman-1.5/extra/CVS/Root 1969-12-31 21:00:00.000000000 -0300 @@ -1 +0,0 @@ -:ext:mild7@cvs.sourceforge.net:/cvsroot/mplinuxman diff -Nru mplinuxman-1.4/extra/mp_util/CVS/Entries mplinuxman-1.5/extra/mp_util/CVS/Entries --- mplinuxman-1.4/extra/mp_util/CVS/Entries 2004-01-11 10:16:39.000000000 -0300 +++ mplinuxman-1.5/extra/mp_util/CVS/Entries 1969-12-31 21:00:00.000000000 -0300 @@ -1,3 +0,0 @@ -/USAGE.txt/1.1.1.1/Wed May 21 21:34:41 2003// -/makefile/1.1.1.1/Wed May 21 21:34:41 2003// -/mputil.c/1.1.1.1/Wed May 21 21:34:41 2003// diff -Nru mplinuxman-1.4/extra/mp_util/CVS/Repository mplinuxman-1.5/extra/mp_util/CVS/Repository --- mplinuxman-1.4/extra/mp_util/CVS/Repository 2004-01-11 10:16:39.000000000 -0300 +++ mplinuxman-1.5/extra/mp_util/CVS/Repository 1969-12-31 21:00:00.000000000 -0300 @@ -1 +0,0 @@ -mplinuxman/extra/mp_util diff -Nru mplinuxman-1.4/extra/mp_util/CVS/Root mplinuxman-1.5/extra/mp_util/CVS/Root --- mplinuxman-1.4/extra/mp_util/CVS/Root 2004-01-11 10:16:39.000000000 -0300 +++ mplinuxman-1.5/extra/mp_util/CVS/Root 1969-12-31 21:00:00.000000000 -0300 @@ -1 +0,0 @@ -:ext:mild7@cvs.sourceforge.net:/cvsroot/mplinuxman diff -Nru mplinuxman-1.4/f60lib/CVS/Entries mplinuxman-1.5/f60lib/CVS/Entries --- mplinuxman-1.4/f60lib/CVS/Entries 2004-01-13 00:23:39.000000000 -0300 +++ mplinuxman-1.5/f60lib/CVS/Entries 1969-12-31 21:00:00.000000000 -0300 @@ -1,5 +0,0 @@ -/f60error.h/1.1.1.1/Wed May 21 21:34:41 2003// -/f60lib.c/1.3/Tue Jan 13 02:25:42 2004// -/f60lib.h/1.3/Tue Jan 13 01:13:37 2004// -/font.h/1.1.1.1/Wed May 21 21:34:43 2003// -/oldfont.h/1.1.1.1/Wed May 21 21:34:43 2003// diff -Nru mplinuxman-1.4/f60lib/CVS/Repository mplinuxman-1.5/f60lib/CVS/Repository --- mplinuxman-1.4/f60lib/CVS/Repository 2004-01-11 10:16:39.000000000 -0300 +++ mplinuxman-1.5/f60lib/CVS/Repository 1969-12-31 21:00:00.000000000 -0300 @@ -1 +0,0 @@ -mplinuxman/f60lib diff -Nru mplinuxman-1.4/f60lib/CVS/Root mplinuxman-1.5/f60lib/CVS/Root --- mplinuxman-1.4/f60lib/CVS/Root 2004-01-11 10:16:39.000000000 -0300 +++ mplinuxman-1.5/f60lib/CVS/Root 1969-12-31 21:00:00.000000000 -0300 @@ -1 +0,0 @@ -:ext:mild7@cvs.sourceforge.net:/cvsroot/mplinuxman diff -Nru mplinuxman-1.4/f60lib/f60lib.c mplinuxman-1.5/f60lib/f60lib.c --- mplinuxman-1.4/f60lib/f60lib.c 2004-01-18 22:18:37.000000000 -0300 +++ mplinuxman-1.5/f60lib/f60lib.c 2004-12-07 09:19:15.000000000 -0300 @@ -2,9 +2,13 @@ #include #include #include -#include -//#include +/* Try to find endianess , standard C header? */ +#ifndef USE_OSX +#include +#else +#include +#endif #include "font.h" #include "f60lib.h" @@ -21,6 +25,10 @@ int selected_memory = FLASH_MEMORY; +int mpman_type = MPMAN_F60; +int filename_offset = 21; + + struct usb_device *f60_dev = NULL; const char F60_CmdTerminator = 0x04; @@ -60,13 +68,13 @@ return c; } -#ifndef __BYTE_ORDER -#error "__BYTE_ORDER not defined" +#ifndef BYTE_ORDER +#error "BYTE_ORDER not defined" #endif // byteswap should only be done on little endian machines. should rename functions void f60_big2little_endian(int* from,int* to) { - #if __BYTE_ORDER == LITTLE_ENDIAN + #if BYTE_ORDER == LITTLE_ENDIAN char* f; char* t; @@ -84,7 +92,7 @@ } void f60_little2big_endian(int* from,int* to) { - #if __BYTE_ORDER == LITTLE_ENDIAN + #if BYTE_ORDER == LITTLE_ENDIAN char* f; char* t; @@ -188,6 +196,14 @@ } */ +// patch by Lewis Jardine, to fix a difference in the F50 +void mpman_specific_setup() { + if (mpman_type == MPMAN_F50) + {filename_offset = 18;} + else + {filename_offset = 21;} +} + struct usb_dev_handle* f60_init() { struct usb_dev_handle* ret; @@ -199,6 +215,7 @@ // Check for F50 product ID if (!f60_dev) { f60_dev = f60_get_device_by_id(F50_VENDOR_ID,F50_PRODUCT_ID); + if (f60_dev) mpman_type == MPMAN_F50; if (debug && f60_dev) printf("Found MP-Man F50\n"); } @@ -221,6 +238,8 @@ usb_claim_interface(ret,f60_dev->config->interface->altsetting->bInterfaceNumber); usb_set_altinterface(ret,f60_dev->config->interface->altsetting->bAlternateSetting); + + mpman_specific_setup(); return ret; } @@ -250,6 +269,7 @@ usb_claim_interface(ret,f60_dev->config->interface->altsetting->bInterfaceNumber); usb_set_altinterface(ret,f60_dev->config->interface->altsetting->bAlternateSetting); + mpman_specific_setup(); return ret; } @@ -554,7 +574,7 @@ ret = f60_read(dev,filemap,filesize,20000); if (!ret) goto error; - filename = f60_strip_path(&response[21]); + filename = f60_strip_path(&response[filename_offset]); if (path[strlen(path) - 1] == '/') snprintf(fullpath,256,"%s%s",path,filename); @@ -584,6 +604,7 @@ return NULL; } + int f60_delete_file(usb_dev_handle *dev,unsigned char index) { int ret; @@ -614,11 +635,40 @@ } +/* This was originally based on code from the 'globecom jukebox', however the only thing it has + in common is the names of the variables. The first half was re-written by me to fit the architecture + of f60lib, and the second half was re-written by me to actually detect id3v2s, and calculate the size correctly. + + There is no globecom jukebox code remaining in this function, however the overall structure is + similar. I believe that there are very few sensible ways to find the size of an id3v2, and reading the header + into an array which is then tested is too obvious an idea to copyright. + + patch by Lewis Jardine +*/ + +int getV2Size(char* id3head) +{ + int toreturn; + + if ((id3head[0] != 0x49) || (id3head[1] != 0x44) || (id3head[2] != 0x33)) { + printf("no V2 header\n"); + return 0; + } + + toreturn = 10+id3head[9]+id3head[8]*128+id3head[7]*128*128+id3head[6]*128*128*128; + return toreturn; +} + + + int f60_encode_file(char* source,char* dest) { FILE* src = NULL; FILE* dst = NULL; int i; int ii; + int id3v2size; + char id3head[10]; + int byteswritten; unsigned char buffer[512]; char inchar; @@ -635,6 +685,21 @@ f60_set_error(F60_ERROR_OTHER,"cant open encode output file"); goto error; } + + +/* Skip ID3v2, as it confuses the mpman */ + id3v2size = 0; i = 0; + /* Copy header into a buffer for jukebox code to parse */ + while (!feof(src)) + {id3head[i] = fgetc(src); if (i == 9) break; i++;} + /* getv2size will return 0 if it does not understand the header, which will + reset the file pointer to the start, just as if we'd never tried to read the header.*/ + id3v2size = getV2Size(id3head); + if (debug) printf("ID3v2 tag is %d bytes\n", id3v2size); + fseek (src, id3v2size, SEEK_SET); +/* Skip ID3v2, as it confuses the mpman */ + + i=0; ii=0; while (!feof(src)) { inchar = fgetc(src); diff -Nru mplinuxman-1.4/f60lib/f60lib.h mplinuxman-1.5/f60lib/f60lib.h --- mplinuxman-1.4/f60lib/f60lib.h 2004-01-18 22:20:36.000000000 -0300 +++ mplinuxman-1.5/f60lib/f60lib.h 2004-12-07 09:19:15.000000000 -0300 @@ -23,6 +23,9 @@ #define FLASH_MEMORY 1 #define SMARTMEDIA_MEMORY 2 +#define MPMAN_F50 1 +#define MPMAN_F60 2 + struct f60_dir { unsigned char size; int total_memory; @@ -44,6 +47,8 @@ int f60_get_firmware_version(usb_dev_handle* dev); int f60_format_media(usb_dev_handle *dev, char x); +int get_filename_offset(); + struct usb_device* f60_get_device_by_id(short vendor,short product); void f60_set_debug(int level); char* f60_strip_path(char* filename); @@ -57,5 +62,6 @@ //int f60_check_for_device(); float f60_get_rw_progress(); struct usb_dev_handle* f60_init_with_id(unsigned short vendor, - unsigned short product); + unsigned short product + ); diff -Nru mplinuxman-1.4/ini/CVS/Entries mplinuxman-1.5/ini/CVS/Entries --- mplinuxman-1.4/ini/CVS/Entries 2004-01-11 10:16:39.000000000 -0300 +++ mplinuxman-1.5/ini/CVS/Entries 1969-12-31 21:00:00.000000000 -0300 @@ -1,2 +0,0 @@ -/ini.c/1.1.1.1/Wed May 21 21:34:43 2003// -/ini.h/1.1.1.1/Wed May 21 21:34:43 2003// diff -Nru mplinuxman-1.4/ini/CVS/Repository mplinuxman-1.5/ini/CVS/Repository --- mplinuxman-1.4/ini/CVS/Repository 2004-01-11 10:16:39.000000000 -0300 +++ mplinuxman-1.5/ini/CVS/Repository 1969-12-31 21:00:00.000000000 -0300 @@ -1 +0,0 @@ -mplinuxman/ini diff -Nru mplinuxman-1.4/ini/CVS/Root mplinuxman-1.5/ini/CVS/Root --- mplinuxman-1.4/ini/CVS/Root 2004-01-11 10:16:39.000000000 -0300 +++ mplinuxman-1.5/ini/CVS/Root 1969-12-31 21:00:00.000000000 -0300 @@ -1 +0,0 @@ -:ext:mild7@cvs.sourceforge.net:/cvsroot/mplinuxman diff -Nru mplinuxman-1.4/ini/ini.c mplinuxman-1.5/ini/ini.c --- mplinuxman-1.4/ini/ini.c 2003-05-21 18:34:43.000000000 -0300 +++ mplinuxman-1.5/ini/ini.c 2006-01-20 19:03:34.000000000 -0300 @@ -1,537 +1,538 @@ - -#include -#include -#include "ini.h" - - -inifile_t openfiles[10]; -int maxfiles = 10; -char init = 1; - -stringlist_t* nextstr(stringlist_t* in) { - return in->next; -} - -section_t* nextsec(section_t* in) { - return in->next; -} - - -void printsection(section_t* in) { - stringlist_t* p; - stringlist_t* p2; - - p = in->name; - p2 = in->value; - - while(p) { - printf("\"%s\"=\"%s\"\n",p->string,p2->string); - p = nextstr(p); - p2 = nextstr(p2); - } -} - - -section_t* addsection(int fileno,section_t* current,char* name) { - inifile_t* ini; - section_t* sec; - - if (strlen(name) == 0) - return NULL; - - ini = &openfiles[fileno]; - - if (ini->sections == 0) { - sec = ini->sections = (section_t*) malloc(sizeof(section_t)); - } - else { - sec = current->next = (section_t*) malloc(sizeof(section_t)); - } - - ini->count++; - sec->count = 0; - sec->next = 0; - sec->name = 0; - sec->value = 0; - sec->sectionname = (char*) malloc(strlen(name)+1); - strcpy(sec->sectionname,name); - return sec; - -} - -void addkeyvalue(section_t* sec,char* name,char* value) { - int c; - char* ptr; - char* ptr2; - stringlist_t* strl; - int found = -1; - - if (strlen(name) == 0) - return; - if (strlen(value) == 0) - return; - - - c = sec->count; - sec->count++; - - ptr = (char*) malloc(strlen(name)+1); - strcpy(ptr,name); - ptr2 = (char*) malloc(strlen(value)+1); - strcpy(ptr2,value); - - - if (!sec->name) { - strl = sec->name = (stringlist_t*) malloc(sizeof(stringlist_t)); - strl->string = ptr; - strl->next = 0; - } - else { - int i = 0; - for(strl = sec->name;;strl=strl->next,i++) { - if (strcmp(strl->string,ptr) == 0) { - free(strl->string); - strl->string = ptr; - found = i; - } - - if (strl->next == 0) break; - } - if (found < 0) { - strl->next = (stringlist_t*) malloc(sizeof(stringlist_t)); - strl = strl->next; - strl->string = ptr; - strl->next = 0; - } - } - - if (!sec->value) { - strl = sec->value = (stringlist_t*) malloc(sizeof(stringlist_t)); - strl->string = ptr2; - strl->next = 0; - } - else { - int i = 0; - for(strl = sec->value;;strl=strl->next,i++) { - if (i == found) { - free(strl->string); - strl->string = ptr2; - } - if (strl->next == 0) - break; - } - if (found < 0) { - strl->next = (stringlist_t*) malloc(sizeof(stringlist_t)); - strl = strl->next; - strl->string = ptr2; - strl->next = 0; - } - } - -} - - -void ini_Init() { - int i; - - for(i=0;iname; - - while(p) { - p2 = nextstr(p); - free(p->string); - free(p); - p = p2; - } - - p = in->value; - - while(p) { - p2 = nextstr(p); - free(p->string); - free(p); - p = p2; - } - -} - -void ini_Free(int filedex) { - section_t* del; - section_t* tmp; - - del = openfiles[filedex].sections; - - if (!del) - return; - - if (filedex >= maxfiles) - return; - - do{ - tmp = nextsec(del); - deletesection(del); - free(del->sectionname); - free(del); - } while(del = tmp); - - openfiles[filedex].count = 0; - openfiles[filedex].sections = 0; -} - - -section_t* ini_FindSection(int filenum,char* name) { - section_t* ptr; - - ptr = openfiles[filenum].sections; - if (ptr == 0) return 0; - - do { - if (strcmp(ptr->sectionname,name) == 0) - return ptr; - } while(ptr = nextsec(ptr)); - - return 0; -} - -char* findvalue(section_t* sec,char* name) { - stringlist_t* ptr; - stringlist_t* ptr2; - - if (sec == 0) - return 0; - - ptr = sec->name; - ptr2 = sec->value; - - if ( (ptr == NULL) || (ptr2 == NULL)) - return 0; - - do { - if (strcmp(ptr->string,name) == 0) - return ptr2->string; - ptr2 = nextstr(ptr2); - } while(ptr = nextstr(ptr)); - return 0; - -} - -char* ini_ReadValue(int filenum,char* secname,char* key) { - return findvalue(ini_FindSection(filenum,secname),key); -} - -char* ini_ReadSections(int filenum){ - static section_t* current = 0; - char* retval; - - if (!current) { - current = openfiles[filenum].sections; - } - - if ((unsigned int)current == 1) { - current = 0; - return 0; - } - - if (openfiles[filenum].count == 0) { - current = 0; - return 0; - } - - retval = current->sectionname; - current = current->next; - if (!current) - (unsigned int) current = 1; - return retval; -} - -char* ini_ReadKeysValues(int filenum,char* secname,char** keyname) { - static section_t* current = 0; - static stringlist_t* ptr = 0; - static stringlist_t* ptr2 = 0; - char* retval; - - if (!current) { - current = ini_FindSection(filenum,secname); - ptr = current->name; - ptr2 = current->value; - } - - if (!ptr) - (unsigned int) current = 1; - - if ((unsigned int)current == 1) { - current = 0; - return 0; - } - - *keyname = ptr->string; - retval = ptr2->string; - - ptr = nextstr(ptr); - ptr2 = nextstr(ptr2); - - - return retval; - - -} - - -void ini_DeleteSection(int filenum, char* secname) { - section_t* sec; - section_t* t; - - - sec = ini_FindSection(filenum,secname); - if (!sec) - return; - deletesection(sec); - - if (sec == openfiles[filenum].sections) - openfiles[filenum].sections = sec->next; - else { - for(t = openfiles[filenum].sections;t->next != sec;t = nextsec(t)); - t->next = sec->next; - } - free(sec->sectionname); - free(sec); - openfiles[filenum].count--; -} - -void ini_WriteString(int filenum, char* secname,char* key,char* value) { - section_t* p; - - if (!(p = ini_FindSection(filenum,secname))) { - if (openfiles[filenum].sections) - for(p = openfiles[filenum].sections;p->next != 0;p = p->next); - p = addsection(filenum,p,secname); - } - if (key) - addkeyvalue(p,key,value); -} - -int ini_Save(int filenum,char* filename) { - FILE* fp; - section_t* p; - stringlist_t* str; - stringlist_t* str2; - char* comment = ";options file\n"; - - fp = fopen(filename,"wb"); - if (!fp) - return 0; - - fwrite(comment,1,strlen(comment),fp); - - for(p=openfiles[filenum].sections;p;p = nextsec(p)) { - fwrite("[",1,1,fp); - fwrite(p->sectionname,1,strlen(p->sectionname),fp); - fwrite("]\n",1,2,fp); - for(str=p->name,str2=p->value; str; str= nextstr(str),str2=nextstr(str2)) - { - fwrite(str->string,1,strlen(str->string),fp); - fwrite("=",1,1,fp); - fwrite(str2->string,1,strlen(str2->string),fp); - fwrite("\n",1,1,fp); - } - fwrite("\n",1,1,fp); - } - - fclose(fp); - return 1; - -} - - -/* -int main() { - int filedex; - section_t* print; - char input[64]; - char input2[64]; - char* c; - - ini_init(); - filedex = ini_readfile("blah.ini"); - printf("ini_readfile returned %d\n",filedex); - - print = openfiles[filedex].sections; - - do{ - printf("\nsection \"%s\"\n",print->sectionname); - printsection(print); - } while(print = nextsec(print)); - - - printf("there are %d sections\n",openfiles[filedex].count); - while(c = ini_ReadSections(filedex)) - printf("%s\n",c); - while(c = ini_ReadSections(filedex)) - printf("%s\n",c); - - printf("enter section to search"); - gets(input); - printf("enter key to get"); - gets(input2); - printf("result %s\n",ini_ReadValue(filedex,input,input2)); - -} - -*/ + +#include +#include +#include "ini.h" + + +inifile_t openfiles[10]; +int maxfiles = 10; +char init = 1; + +stringlist_t* nextstr(stringlist_t* in) { + return in->next; +} + +section_t* nextsec(section_t* in) { + return in->next; +} + + +void printsection(section_t* in) { + stringlist_t* p; + stringlist_t* p2; + + p = in->name; + p2 = in->value; + + while(p) { + printf("\"%s\"=\"%s\"\n",p->string,p2->string); + p = nextstr(p); + p2 = nextstr(p2); + } +} + + +section_t* addsection(int fileno,section_t* current,char* name) { + inifile_t* ini; + section_t* sec; + + if (strlen(name) == 0) + return NULL; + + ini = &openfiles[fileno]; + + if (ini->sections == 0) { + sec = ini->sections = (section_t*) malloc(sizeof(section_t)); + } + else { + sec = current->next = (section_t*) malloc(sizeof(section_t)); + } + + ini->count++; + sec->count = 0; + sec->next = 0; + sec->name = 0; + sec->value = 0; + sec->sectionname = (char*) malloc(strlen(name)+1); + strcpy(sec->sectionname,name); + return sec; + +} + +void addkeyvalue(section_t* sec,char* name,char* value) { + int c; + char* ptr; + char* ptr2; + stringlist_t* strl; + int found = -1; + + if (strlen(name) == 0) + return; + if (strlen(value) == 0) + return; + + + c = sec->count; + sec->count++; + + ptr = (char*) malloc(strlen(name)+1); + strcpy(ptr,name); + ptr2 = (char*) malloc(strlen(value)+1); + strcpy(ptr2,value); + + + if (!sec->name) { + strl = sec->name = (stringlist_t*) malloc(sizeof(stringlist_t)); + strl->string = ptr; + strl->next = 0; + } + else { + int i = 0; + for(strl = sec->name;;strl=strl->next,i++) { + if (strcmp(strl->string,ptr) == 0) { + free(strl->string); + strl->string = ptr; + found = i; + } + + if (strl->next == 0) break; + } + if (found < 0) { + strl->next = (stringlist_t*) malloc(sizeof(stringlist_t)); + strl = strl->next; + strl->string = ptr; + strl->next = 0; + } + } + + if (!sec->value) { + strl = sec->value = (stringlist_t*) malloc(sizeof(stringlist_t)); + strl->string = ptr2; + strl->next = 0; + } + else { + int i = 0; + for(strl = sec->value;;strl=strl->next,i++) { + if (i == found) { + free(strl->string); + strl->string = ptr2; + } + if (strl->next == 0) + break; + } + if (found < 0) { + strl->next = (stringlist_t*) malloc(sizeof(stringlist_t)); + strl = strl->next; + strl->string = ptr2; + strl->next = 0; + } + } + +} + + +void ini_Init() { + int i; + + for(i=0;iname; + + while(p) { + p2 = nextstr(p); + free(p->string); + free(p); + p = p2; + } + + p = in->value; + + while(p) { + p2 = nextstr(p); + free(p->string); + free(p); + p = p2; + } + +} + +void ini_Free(int filedex) { + section_t* del; + section_t* tmp; + + del = openfiles[filedex].sections; + + if (!del) + return; + + if (filedex >= maxfiles) + return; + + do{ + tmp = nextsec(del); + deletesection(del); + free(del->sectionname); + free(del); + } while(del = tmp); + + openfiles[filedex].count = 0; + openfiles[filedex].sections = 0; +} + + +section_t* ini_FindSection(int filenum,char* name) { + section_t* ptr; + + ptr = openfiles[filenum].sections; + if (ptr == 0) return 0; + + do { + if (strcmp(ptr->sectionname,name) == 0) + return ptr; + } while(ptr = nextsec(ptr)); + + return 0; +} + +char* findvalue(section_t* sec,char* name) { + stringlist_t* ptr; + stringlist_t* ptr2; + + if (sec == 0) + return 0; + + ptr = sec->name; + ptr2 = sec->value; + + if ( (ptr == NULL) || (ptr2 == NULL)) + return 0; + + do { + if (strcmp(ptr->string,name) == 0) + return ptr2->string; + ptr2 = nextstr(ptr2); + } while(ptr = nextstr(ptr)); + return 0; + +} + +char* ini_ReadValue(int filenum,char* secname,char* key) { + return findvalue(ini_FindSection(filenum,secname),key); +} + +char* ini_ReadSections(int filenum){ + static section_t* current = 0; + char* retval; + + if (!current) { + current = openfiles[filenum].sections; + } + + if ((unsigned int)current == 1) { + current = 0; + return 0; + } + + if (openfiles[filenum].count == 0) { + current = 0; + return 0; + } + + retval = current->sectionname; + current = current->next; + if (!current) + current = (section_t*)1; + return retval; +} + +char* ini_ReadKeysValues(int filenum,char* secname,char** keyname) { + static section_t* current = 0; + static stringlist_t* ptr = 0; + static stringlist_t* ptr2 = 0; + char* retval; + + if (!current) { + current = ini_FindSection(filenum,secname); + ptr = current->name; + ptr2 = current->value; + } + + if (!ptr) + current = (section_t*)1; + + if ((unsigned int)current == 1) { + current = 0; + return 0; + } + + *keyname = ptr->string; + retval = ptr2->string; + + ptr = nextstr(ptr); + ptr2 = nextstr(ptr2); + + + return retval; + + +} + + +void ini_DeleteSection(int filenum, char* secname) { + section_t* sec; + section_t* t; + + + sec = ini_FindSection(filenum,secname); + if (!sec) + return; + deletesection(sec); + + if (sec == openfiles[filenum].sections) + openfiles[filenum].sections = sec->next; + else { + for(t = openfiles[filenum].sections;t->next != sec;t = nextsec(t)); + t->next = sec->next; + } + free(sec->sectionname); + free(sec); + openfiles[filenum].count--; +} + +void ini_WriteString(int filenum, char* secname,char* key,char* value) { + section_t* p; + + if (!(p = ini_FindSection(filenum,secname))) { + if (openfiles[filenum].sections) + for(p = openfiles[filenum].sections;p->next != 0;p = p->next); + p = addsection(filenum,p,secname); + } + if (key) + addkeyvalue(p,key,value); +} + +int ini_Save(int filenum,char* filename) { + FILE* fp; + section_t* p; + stringlist_t* str; + stringlist_t* str2; + char* comment = ";options file\n"; + + fp = fopen(filename,"wb"); + if (!fp) + return 0; + + fwrite(comment,1,strlen(comment),fp); + + for(p=openfiles[filenum].sections;p;p = nextsec(p)) { + fwrite("[",1,1,fp); + fwrite(p->sectionname,1,strlen(p->sectionname),fp); + fwrite("]\n",1,2,fp); + for(str=p->name,str2=p->value; str; str= nextstr(str),str2=nextstr(str2)) + { + fwrite(str->string,1,strlen(str->string),fp); + fwrite("=",1,1,fp); + fwrite(str2->string,1,strlen(str2->string),fp); + fwrite("\n",1,1,fp); + } + fwrite("\n",1,1,fp); + } + + fclose(fp); + return 1; + +} + + +/* +int main() { + int filedex; + section_t* print; + char input[64]; + char input2[64]; + char* c; + + ini_init(); + filedex = ini_readfile("blah.ini"); + printf("ini_readfile returned %d\n",filedex); + + print = openfiles[filedex].sections; + + do{ + printf("\nsection \"%s\"\n",print->sectionname); + printsection(print); + } while(print = nextsec(print)); + + + printf("there are %d sections\n",openfiles[filedex].count); + while(c = ini_ReadSections(filedex)) + printf("%s\n",c); + while(c = ini_ReadSections(filedex)) + printf("%s\n",c); + + printf("enter section to search"); + gets(input); + printf("enter key to get"); + gets(input2); + printf("result %s\n",ini_ReadValue(filedex,input,input2)); + +} + +*/ + diff -Nru mplinuxman-1.4/libusb/CVS/Entries mplinuxman-1.5/libusb/CVS/Entries --- mplinuxman-1.4/libusb/CVS/Entries 2004-01-11 10:16:39.000000000 -0300 +++ mplinuxman-1.5/libusb/CVS/Entries 1969-12-31 21:00:00.000000000 -0300 @@ -1,10 +0,0 @@ -/AUTHORS/1.1.1.1/Wed May 21 21:34:45 2003// -/README/1.1.1.1/Wed May 21 21:34:45 2003// -/descriptors.c/1.1.1.1/Wed May 21 21:34:45 2003// -/error.c/1.1.1.1/Wed May 21 21:34:45 2003// -/error.h/1.1.1.1/Wed May 21 21:34:44 2003// -/linux.c/1.1.1.1/Wed May 21 21:34:45 2003// -/linux.h/1.1.1.1/Wed May 21 21:34:45 2003// -/usb.c/1.1.1.1/Wed May 21 21:34:44 2003// -/usb.h/1.1.1.1/Wed May 21 21:34:44 2003// -/usbi.h/1.1.1.1/Wed May 21 21:34:44 2003// diff -Nru mplinuxman-1.4/libusb/CVS/Repository mplinuxman-1.5/libusb/CVS/Repository --- mplinuxman-1.4/libusb/CVS/Repository 2004-01-11 10:16:39.000000000 -0300 +++ mplinuxman-1.5/libusb/CVS/Repository 1969-12-31 21:00:00.000000000 -0300 @@ -1 +0,0 @@ -mplinuxman/libusb diff -Nru mplinuxman-1.4/libusb/CVS/Root mplinuxman-1.5/libusb/CVS/Root --- mplinuxman-1.4/libusb/CVS/Root 2004-01-11 10:16:39.000000000 -0300 +++ mplinuxman-1.5/libusb/CVS/Root 1969-12-31 21:00:00.000000000 -0300 @@ -1 +0,0 @@ -:ext:mild7@cvs.sourceforge.net:/cvsroot/mplinuxman diff -Nru mplinuxman-1.4/mainwindow.c mplinuxman-1.5/mainwindow.c --- mplinuxman-1.4/mainwindow.c 2004-01-20 02:18:30.000000000 -0300 +++ mplinuxman-1.5/mainwindow.c 2006-12-21 10:38:49.000000000 -0300 @@ -1,3 +1,26 @@ +/* + * mainwindow.c + * This file is part of mplinuxman + * + * Copyright (C) 2002-2006 - Tim O'Brien + * Copyright (C) 2006 - Boško Andjelković + * + * mplinuxman is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * mplinuxman is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with mplinuxman; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301 USA + */ + /* Main Window code A good example of how not to do things.... @@ -158,92 +181,6 @@ gtk_dialog_set_has_separator (GTK_DIALOG(dialog),FALSE); gtk_widget_show_all(dialog); } - -void dirsel_cb(gchar* dirname,gint button) { - GtkWidget* tv; - GtkTreeModel* model; - GtkTreeIter iter; - GList* entries= NULL; - GList* p; - gint n; - - if (!button) - return; - - cfg_Write("paths","add directory",dirname); - entries = CreateWaitDialog((GThreadFunc)pl_AddDirectory,dirname, - pl_AddDirectoryCancel,NULL,_("Reading Directory")); -// entries = pl_AddDirectory(dirname); - - if (g_list_length(entries) == 0) { - cfg_Write("paths","add directory","/"); - return; - } - - tv = MW_GET("left_treeview"); - gtk_widget_grab_focus (tv); - - model = gtk_tree_view_get_model(GTK_TREE_VIEW(tv)); - - n = gtk_tree_model_iter_n_children(model,NULL); - if (n) - gtk_tree_model_iter_nth_child(model,&iter,NULL,n -1); - - - for(p = entries;p;p = g_list_next(p)) { - gtk_list_store_append(GTK_LIST_STORE(model),&iter); - gtk_list_store_set(GTK_LIST_STORE(model),&iter,0,p->data,-1); - } - - g_list_free(entries); -} - -void filesel_AddFile (GtkFileSelection *selector, gpointer file_selector) { - gchar* selected_filename; - PlayListEntry* p; - GtkWidget* tv; - GtkTreeModel* model; - GtkTreeIter iter; - gint n; - - selected_filename = (gchar*) gtk_file_selection_get_filename (GTK_FILE_SELECTION (file_selector)); - if (!pl_GetMp3Info(selected_filename) ) - return; - p = pl_AddFile(selected_filename); - - if (!p) - return; - - cfg_Write("paths","add file",selected_filename); - tv = MW_GET("left_treeview"); - gtk_widget_grab_focus (tv); - model = gtk_tree_view_get_model(GTK_TREE_VIEW(tv)); - - n = gtk_tree_model_iter_n_children(model,NULL); - if (n) - gtk_tree_model_iter_nth_child(model,&iter,NULL,n -1); - gtk_list_store_append(GTK_LIST_STORE(model),&iter); - gtk_list_store_set(GTK_LIST_STORE(model),&iter,0,p,-1); - -} - - -void filesel_SendNonMp3 (GtkFileSelection *selector, gpointer file_selector) { - gchar* selected_filename; - gint ret; - - selected_filename = (gchar*) gtk_file_selection_get_filename (GTK_FILE_SELECTION (file_selector)); - - ret = (gint) CreateWaitDialog((GThreadFunc)mpl_SendFileNonMp3,selected_filename,NULL, - mpl_GetReadWriteProgress,_("sending file")); - if (ret == MPL_ERROR) { - MplinuxError(); - return; - } - - right_treeview_Refresh(NULL,NULL); - -} void left_treeview_cell_RenderName (GtkTreeViewColumn *tree_column, GtkCellRenderer *cell, @@ -522,77 +459,151 @@ gboolean popup_AddDirectory(GtkWidget *widget, GdkEventButton *event, gpointer user_data) { + gchar* c; + c = cfg_Read("paths","add directory","/"); + if (GTK_WIDGET_TYPE(user_data) == gtk_menu_get_type()) + gtk_menu_popdown(GTK_MENU(user_data)); + + gchar *dirname; + GtkWidget *dialog; + dialog = gtk_file_chooser_dialog_new (_("Add directory..."),MainWindow,GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,NULL); + gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (dialog),c); + gint result = gtk_dialog_run (GTK_DIALOG (dialog)); + if(result == GTK_RESPONSE_ACCEPT) + { + gchar *selected_filename; + selected_filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog)); + dirname = dirsel_convert_if_needed (selected_filename); + gtk_widget_destroy (dialog); + GtkWidget* tv; + GtkTreeModel* model; + GtkTreeIter iter; + GList* entries= NULL; + GList* p; + gint n; + + cfg_Write("paths","add directory",dirname); + entries = CreateWaitDialog((GThreadFunc)pl_AddDirectory,dirname,pl_AddDirectoryCancel,NULL,_("Reading Directory")); + // entries = pl_AddDirectory(dirname); - GtkWindow* w; - gchar* c; - - c = cfg_Read("paths","add directory","/"); - if (GTK_WIDGET_TYPE(user_data) == gtk_menu_get_type()) - gtk_menu_popdown(GTK_MENU(user_data)); - w = dirsel_create_dialog(dirsel_cb,c); - gtk_window_set_modal(w,TRUE); - g_object_set(w,"window-position",GTK_WIN_POS_CENTER,NULL); - gtk_window_set_transient_for(w,MainWindow); - gtk_widget_show_all(GTK_WIDGET(w)); + if (g_list_length(entries) == 0) + { + cfg_Write("paths","add directory","/"); + return; + } - return FALSE; + tv = MW_GET("left_treeview"); + gtk_widget_grab_focus (tv); + + model = gtk_tree_view_get_model(GTK_TREE_VIEW(tv)); + + n = gtk_tree_model_iter_n_children(model,NULL); + if (n) + gtk_tree_model_iter_nth_child(model,&iter,NULL,n -1); + + for(p = entries;p;p = g_list_next(p)) + { + gtk_list_store_append(GTK_LIST_STORE(model),&iter); + gtk_list_store_set(GTK_LIST_STORE(model),&iter,0,p->data,-1); + } + + g_list_free(entries); + g_free (selected_filename); + } + else + { + gtk_widget_destroy (dialog); + } + + return FALSE; } gboolean popup_AddFile(GtkWidget *widget, GdkEventButton *event, gpointer user_data) { - GtkWidget* file_selector; - gchar* c; + gchar* c; - gtk_menu_popdown(GTK_MENU(user_data)); - file_selector = gtk_file_selection_new (_("Select File")); - c = cfg_Read("paths","add file","/"); - gtk_file_selection_set_filename (GTK_FILE_SELECTION(file_selector),c); - gtk_window_set_modal(GTK_WINDOW(file_selector),TRUE); - gtk_window_set_transient_for(GTK_WINDOW(file_selector),MainWindow); - g_signal_connect (GTK_OBJECT (GTK_FILE_SELECTION (file_selector)->ok_button), - "clicked", - G_CALLBACK (filesel_AddFile), - file_selector); - g_signal_connect_swapped (GTK_OBJECT (GTK_FILE_SELECTION (file_selector)->ok_button), - "clicked", - G_CALLBACK (gtk_widget_destroy), - (gpointer) file_selector); - g_signal_connect_swapped (GTK_OBJECT (GTK_FILE_SELECTION (file_selector)->cancel_button), - "clicked", - G_CALLBACK (gtk_widget_destroy), - (gpointer) file_selector); - gtk_widget_show (file_selector); + gtk_menu_popdown(GTK_MENU(user_data)); - return FALSE; + c = cfg_Read("paths","add file","/"); + + GtkWidget *dialog; + dialog = gtk_file_chooser_dialog_new (_("Add file..."),MainWindow,GTK_FILE_CHOOSER_ACTION_OPEN,GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,NULL); + GtkFileFilter *filter; + filter = gtk_file_filter_new (); + gtk_file_filter_set_name (filter, _("Music Files")); + gtk_file_filter_add_pattern (filter, "*.mp3"); + gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter); + gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (dialog),c); + gtk_window_set_modal(GTK_WINDOW(dialog),TRUE); + + gint result = gtk_dialog_run (GTK_DIALOG (dialog)); + if(result == GTK_RESPONSE_ACCEPT) + { + char *selected_filename; + selected_filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog)); + PlayListEntry* p; + GtkWidget* tv; + GtkTreeModel* model; + GtkTreeIter iter; + gint n; + + if (!pl_GetMp3Info(selected_filename) ) + { + gtk_widget_destroy (dialog); + return; + } + p = pl_AddFile(selected_filename); + + if (!p) + { + gtk_widget_destroy (dialog); + return; + } + + cfg_Write("paths","add file",selected_filename); + tv = MW_GET("left_treeview"); + gtk_widget_grab_focus (tv); + model = gtk_tree_view_get_model(GTK_TREE_VIEW(tv)); + + n = gtk_tree_model_iter_n_children(model,NULL); + if (n) + gtk_tree_model_iter_nth_child(model,&iter,NULL,n -1); + gtk_list_store_append(GTK_LIST_STORE(model),&iter); + gtk_list_store_set(GTK_LIST_STORE(model),&iter,0,p,-1); + + g_free (selected_filename); + } + + gtk_widget_destroy (dialog); + return FALSE; } void menuitem_SendNonMp3 (gpointer callback_data, guint callback_action, GtkWidget *widget) { - - GtkWidget* file_selector; - gchar* c; - - file_selector = gtk_file_selection_new (_("Select File")); - //c = cfg_Read("paths","add file","/"); - gtk_file_selection_set_filename (GTK_FILE_SELECTION(file_selector),"/"); - gtk_window_set_modal(GTK_WINDOW(file_selector),TRUE); - gtk_window_set_transient_for(GTK_WINDOW(file_selector),MainWindow); - g_signal_connect (GTK_OBJECT (GTK_FILE_SELECTION (file_selector)->ok_button), - "clicked", - G_CALLBACK (filesel_SendNonMp3), - file_selector); - g_signal_connect_swapped (GTK_OBJECT (GTK_FILE_SELECTION (file_selector)->ok_button), - "clicked", - G_CALLBACK (gtk_widget_destroy), - (gpointer) file_selector); - g_signal_connect_swapped (GTK_OBJECT (GTK_FILE_SELECTION (file_selector)->cancel_button), - "clicked", - G_CALLBACK (gtk_widget_destroy), - (gpointer) file_selector); - gtk_widget_show (file_selector); - + GtkWidget *dialog; + dialog = gtk_file_chooser_dialog_new (_("Send non-Mp3 file..."),MainWindow,GTK_FILE_CHOOSER_ACTION_OPEN,GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,NULL); + gtk_window_set_modal(GTK_WINDOW(dialog),TRUE); + + gint result = gtk_dialog_run (GTK_DIALOG (dialog)); + if(result == GTK_RESPONSE_ACCEPT) + { + gchar *selected_filename; + selected_filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog)); + gtk_widget_destroy (dialog); + gint ret; + ret = (gint) CreateWaitDialog((GThreadFunc)mpl_SendFileNonMp3,selected_filename,NULL,mpl_GetReadWriteProgress,_("sending file")); + if (ret == MPL_ERROR) + { + MplinuxError(); + return; + } + right_treeview_Refresh(NULL,NULL); + g_free (selected_filename); + } + else + gtk_widget_destroy (dialog); } @@ -648,6 +659,24 @@ cmd = g_string_append(cmd,"\""); cmd = g_string_append(cmd,(gchar*)ptr->data); cmd = g_string_append(cmd,"\" "); + GString *fn = g_string_new(""); + GtkRecentManager *manager; + GtkRecentData *recent_data; + manager = gtk_recent_manager_new (); + recent_data = g_new0 (GtkRecentData, 1); + recent_data->mime_type = "audio/mpeg"; + recent_data->app_name = "mplinuxman"; + recent_data->app_exec = g_strjoin (" ", g_strsplit_set (c, " ", -1)[0], "%u", NULL); + //recent_data->display_name = g_path_get_basename((gchar*)ptr->data); + fn = g_string_append (fn,"file://"); + fn = g_string_append (fn,g_strescape ((gchar*)ptr->data,NULL)); + if (!gtk_recent_manager_add_full (manager,fn->str, recent_data)) + { + /* warn about the error */ + } + g_free (recent_data->app_exec); + g_free (recent_data); + g_object_unref (manager); } cmd = g_string_append(cmd,strstr(c,"%f") + 2); } @@ -873,40 +902,39 @@ } } - -void dirsel_cb2(gchar* dirname,gint button) { - GtkWidget* tv; - GtkTreeModel* model; - GtkTreeSelection* selection; - - if (!button) - return; - - cfg_Write("paths","save directory",dirname); - - tv = MW_GET("right_treeview"); - - model = gtk_tree_view_get_model(GTK_TREE_VIEW(tv)); - selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(tv)); - gtk_tree_selection_selected_foreach (selection, - (GtkTreeSelectionForeachFunc)right_treeview_MpGetSelection , - dirname); -} - void toolbar_GetFiles(gpointer callback_data, guint callback_action, GtkWidget *widget) { - - GtkWindow* w; - gchar*c; + gchar*c; + c = cfg_Read("paths","save directory","/"); - c = cfg_Read("paths","save directory","/"); - w = dirsel_create_dialog(dirsel_cb2,c); - gtk_window_set_modal(w,TRUE); - gtk_window_resize(w,400,400); - gtk_window_set_transient_for(w,MainWindow); - gtk_widget_show_all(GTK_WIDGET(w)); - + GtkWidget *dialog; + dialog = gtk_file_chooser_dialog_new (_("Select save directory..."),MainWindow,GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,NULL); + gtk_window_set_transient_for(GTK_WINDOW(dialog),MainWindow); + gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (dialog),c); + gint result = gtk_dialog_run (GTK_DIALOG (dialog)); + if(result == GTK_RESPONSE_ACCEPT) + { + gchar *selected_filename; + gchar *dirname; + selected_filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog)); + dirname = dirsel_convert_if_needed (selected_filename); + + GtkWidget* tv; + GtkTreeModel* model; + GtkTreeSelection* selection; + cfg_Write("paths","save directory",dirname); + tv = MW_GET("right_treeview"); + model = gtk_tree_view_get_model(GTK_TREE_VIEW(tv)); + selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(tv)); + gtk_tree_selection_selected_foreach (selection,(GtkTreeSelectionForeachFunc)right_treeview_MpGetSelection ,dirname); + gtk_widget_destroy (dialog); + g_free (selected_filename); + } + else + { + gtk_widget_destroy (dialog); + } } void toolbar_Refresh(gpointer callback_data, @@ -1037,97 +1065,110 @@ } -void menuitem_LoadPlaylist(gpointer callback_data, - guint callback_action, - GtkWidget *widget) { - - GtkWidget* tv; - GtkTreeModel* model; - GtkTreeSelection* selection; - GtkTreeIter iter; - GList* entries = NULL, *p =NULL; - GtkWidget* filesel; - gchar* c; - - tv = MW_GET("left_treeview"); - model = gtk_tree_view_get_model(GTK_TREE_VIEW(tv)); - selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(tv)); - if ((gint) callback_action != 3) { - filesel = gtk_file_selection_new (_("Select Playlist")); - c = cfg_Read("paths","playlist","/"); - gtk_file_selection_set_filename (GTK_FILE_SELECTION(filesel),c); - gtk_window_set_modal(GTK_WINDOW(filesel),TRUE); - gtk_window_set_transient_for(GTK_WINDOW(filesel),MainWindow); - if (gtk_dialog_run(GTK_DIALOG(filesel)) != -5) { - gtk_widget_destroy(filesel); - return; - } - c = (gchar*)gtk_file_selection_get_filename(GTK_FILE_SELECTION(filesel)); - } - else - c = cfg_Read("paths","default playlist",""); - - entries = CreateWaitDialog((GThreadFunc)pl_LoadList,c,NULL,pl_LoadListProgress, - _("Loading Playlist")); - - if (g_list_length(entries) != 0) { - if ((gint) callback_action != 3) cfg_Write("paths","playlist",c); - if ((gint) callback_action == 1 ) - { - gtk_tree_selection_select_all(selection); - toolbar_RemoveFiles(NULL,0,NULL); - } - } - if ((gint) callback_action != 3) gtk_widget_destroy(filesel); - gtk_widget_grab_focus (tv); +void menuitem_LoadPlaylist(gpointer callback_data,guint callback_action,GtkWidget *widget) +{ + GtkWidget* tv; + GtkTreeModel* model; + GtkTreeSelection* selection; + GtkTreeIter iter; + GList* entries = NULL, *p =NULL; + gchar* c; + GtkWidget *dialog; + GtkFileFilter *filter; + + tv = MW_GET("left_treeview"); + model = gtk_tree_view_get_model(GTK_TREE_VIEW(tv)); + selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(tv)); + if ((gint) callback_action != 3) + { + dialog = gtk_file_chooser_dialog_new (_("Select playlist..."),MainWindow,GTK_FILE_CHOOSER_ACTION_OPEN,GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,NULL); + filter = gtk_file_filter_new (); + gtk_file_filter_set_name (filter, _("Playlists")); + gtk_file_filter_add_pattern (filter, "*.m3u"); + gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter); + c = cfg_Read("paths","playlist","/"); + gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (dialog),c); + gtk_window_set_modal(GTK_WINDOW(dialog),TRUE); + gint result = gtk_dialog_run (GTK_DIALOG (dialog)); + if (result == GTK_RESPONSE_CANCEL) + { + gtk_widget_destroy (dialog); + return; + } + c = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog)); + } + else + c = cfg_Read("paths","default playlist",""); + + entries = CreateWaitDialog((GThreadFunc)pl_LoadList,c,NULL,pl_LoadListProgress, _("Loading Playlist")); + if (g_list_length(entries) != 0) + { + if ((gint) callback_action != 3) cfg_Write("paths","playlist",c); + if ((gint) callback_action == 1 ) + { + gtk_tree_selection_select_all(selection); + toolbar_RemoveFiles(NULL,0,NULL); + } + } + if ((gint) callback_action != 3) gtk_widget_destroy (dialog); + gtk_widget_grab_focus (tv); - for(p = entries;p;p = g_list_next(p)) { - gtk_list_store_append(GTK_LIST_STORE(model),&iter); - gtk_list_store_set(GTK_LIST_STORE(model),&iter,0,p->data,-1); - } - tv = MW_GET("left_statusbar"); - gtk_statusbar_pop(GTK_STATUSBAR(tv),0); - if (g_list_length(entries) !=0) - gtk_statusbar_push(GTK_STATUSBAR(tv),0,_("Loaded Playlist")); - else { - if ((gint) callback_action != 3) - gtk_statusbar_push(GTK_STATUSBAR(tv),0,_("Error Loading Playlist")); - } - g_list_free(entries); + for(p = entries;p;p = g_list_next(p)) + { + gtk_list_store_append(GTK_LIST_STORE(model),&iter); + gtk_list_store_set(GTK_LIST_STORE(model),&iter,0,p->data,-1); + } + tv = MW_GET("left_statusbar"); + gtk_statusbar_pop(GTK_STATUSBAR(tv),0); + if (g_list_length(entries) !=0) + gtk_statusbar_push(GTK_STATUSBAR(tv),0,_("Loaded Playlist")); + else + { + if ((gint) callback_action != 3) + gtk_statusbar_push(GTK_STATUSBAR(tv),0,_("Error Loading Playlist")); + } + g_list_free(entries); } +void menuitem_SavePlaylist(gpointer callback_data,guint callback_action,GtkWidget *widget) +{ -void menuitem_SavePlaylist(gpointer callback_data, - guint callback_action, - GtkWidget *widget) { - GtkWidget* tv; - GtkTreeModel* model; - GtkTreeIter iter; - GList* entries = NULL, *p =NULL; - GtkWidget* filesel; - gchar* c; - - tv = MW_GET("left_treeview"); - model = gtk_tree_view_get_model(GTK_TREE_VIEW(tv)); - if ((gint) callback_action != 3) { - - filesel = gtk_file_selection_new (_("Save Playlist")); - c = cfg_Read("paths","playlist","/"); - gtk_file_selection_set_filename (GTK_FILE_SELECTION(filesel),c); - gtk_window_set_modal(GTK_WINDOW(filesel),TRUE); - gtk_window_set_transient_for(GTK_WINDOW(filesel),MainWindow); - if (gtk_dialog_run(GTK_DIALOG(filesel)) != -5) { - gtk_widget_destroy(filesel); - return; - } - c = (gchar*)gtk_file_selection_get_filename(GTK_FILE_SELECTION(filesel)); + GtkWidget* tv; + GtkTreeModel* model; + GtkTreeIter iter; + GList* entries = NULL, *p =NULL; + gchar* c; + GtkWidget *dialog; + GtkFileFilter *filter; + + tv = MW_GET("left_treeview"); + model = gtk_tree_view_get_model(GTK_TREE_VIEW(tv)); + if ((gint) callback_action != 3) + { + dialog = gtk_file_chooser_dialog_new (_("Save playlist..."),MainWindow,GTK_FILE_CHOOSER_ACTION_SAVE,GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,NULL); + filter = gtk_file_filter_new (); + gtk_file_filter_set_name (filter, _("Playlists")); + gtk_file_filter_add_pattern (filter, "*.m3u"); + gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter); + c = cfg_Read("paths","playlist","/"); + gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (dialog),c); + gtk_window_set_modal(GTK_WINDOW(dialog),TRUE); + gint result = gtk_dialog_run (GTK_DIALOG (dialog)); + + + if (result == GTK_RESPONSE_CANCEL) + { + gtk_widget_destroy (dialog); + return; + } + c = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog)); } else c = cfg_Read("paths","default playlist",""); if (gtk_tree_model_get_iter_first(model,&iter) == FALSE) { if ((gint) callback_action != 3) - gtk_widget_destroy(filesel); + gtk_widget_destroy (dialog); else unlink(c); return; @@ -1149,7 +1190,7 @@ // g_print("saved\n"); } - if ((gint) callback_action != 3) gtk_widget_destroy(filesel); + if ((gint) callback_action != 3) gtk_widget_destroy (dialog); g_list_free(entries); } @@ -1231,19 +1272,19 @@ static GtkItemFactoryEntry menu_items[] = { { N_("/_File"), NULL, 0, 0, "" }, { N_("/File/_Add"), NULL ,NULL, 0, ""}, - { N_("/File/Add/Directory"), NULL ,G_CALLBACK(popup_AddDirectory), 0, ""}, - { N_("/File/Add/File"), NULL ,G_CALLBACK(popup_AddFile), 0, ""}, + { N_("/File/Add/Directory..."), NULL ,G_CALLBACK(popup_AddDirectory), 0, ""}, + { N_("/File/Add/File..."), NULL ,G_CALLBACK(popup_AddFile), 0, ""}, { N_("/File/sep1"), NULL,NULL, 0, ""}, - { N_("/File/_Send"), "Return",toolbar_SendFiles, 0, "", GTK_STOCK_GO_FORWARD }, + { N_("/File/_Send..."), "Return",toolbar_SendFiles, 0, "", GTK_STOCK_GO_FORWARD }, { N_("/File/_Remove"), "Delete",toolbar_RemoveFiles, 0, "", GTK_STOCK_REMOVE }, { N_("/File/_Properties"),NULL,toolbar_FileProperties, 0, "", GTK_STOCK_PROPERTIES }, { N_("/File/sep1"), NULL,NULL, 0, ""}, - { N_("/File/Send non mp3 file"), NULL,menuitem_SendNonMp3, 0, "", GTK_STOCK_JUSTIFY_FILL }, + { N_("/File/Send non mp3 file..."), NULL,menuitem_SendNonMp3, 0, "", GTK_STOCK_FILE }, { N_("/File/sep1"), NULL,NULL, 0, ""}, { N_("/File/_Quit"), NULL ,mw_Destroy, 0, "", GTK_STOCK_QUIT }, {N_("/_Mpman"),NULL,0,0,""}, - {N_("/Mpman/_Rfresh"), "r",toolbar_Refresh,0,"",GTK_STOCK_REFRESH}, - { N_("/Mpman/_Get"), "Return",toolbar_GetFiles, 0, "", GTK_STOCK_GO_BACK }, + {N_("/Mpman/_Refresh"), "r",toolbar_Refresh,0,"",GTK_STOCK_REFRESH}, + { N_("/Mpman/_Get..."), "Return",toolbar_GetFiles, 0, "", GTK_STOCK_GO_BACK }, { N_("/Mpman/_Delete"), "Delete",toolbar_MpDelete, 0, "", GTK_STOCK_DELETE }, { N_("/Mpman/sep1"), NULL,NULL, 0, ""}, { N_("/Mpman/Format Internal Memory"), NULL,menuitem_FormatMem, FLASH, "" }, @@ -1254,13 +1295,13 @@ { N_("/Edit/sep1"), NULL,NULL, 0, ""}, {N_("/Edit/_Options"), NULL,menuitem_Options,0,"",GTK_STOCK_PREFERENCES}, { N_("/_Playlist"), NULL, 0, 0, "" }, - { N_("/Playlist/_Load"), "L",menuitem_LoadPlaylist, 1, "", GTK_STOCK_OPEN }, - { N_("/Playlist/_Add"), NULL,menuitem_LoadPlaylist, 0, "", GTK_STOCK_ADD }, + { N_("/Playlist/_Load..."), "L",menuitem_LoadPlaylist, 1, "", GTK_STOCK_OPEN }, + { N_("/Playlist/_Add..."), NULL,menuitem_LoadPlaylist, 0, "", GTK_STOCK_ADD }, { N_("/Playlist/sep1"), NULL,NULL, 0, ""}, - { N_("/Playlist/Sa_ve as"), "S",menuitem_SavePlaylist, 0, "", GTK_STOCK_SAVE_AS }, + { N_("/Playlist/Sa_ve as..."), "S",menuitem_SavePlaylist, 0, "", GTK_STOCK_SAVE_AS }, { N_("/Playlist/Save as Default"), NULL,menuitem_SavePlaylist, 3, "", GTK_STOCK_SAVE_AS }, { N_("/Help"), NULL, 0, 0, "" }, - { N_("/Help/About"), NULL,menuitem_About, 0, "" }, + { N_("/Help/About"), NULL,menuitem_About, 0, "",GTK_STOCK_ABOUT }, }; diff -Nru mplinuxman-1.4/makefile mplinuxman-1.5/makefile --- mplinuxman-1.4/makefile 2004-01-20 03:46:13.000000000 -0300 +++ mplinuxman-1.5/makefile 2006-12-21 12:13:30.000000000 -0300 @@ -3,7 +3,7 @@ export LOCALE_PACKAGE=mplinuxman export LOCALE_DIR=/usr/local/share/locale # remove -D NLS=1 if you want to disable international language support (gettext) -COMPILERFLAGS = -O -D MP_VERSION='"1.4"' -D PACKAGE='"$(LOCALE_PACKAGE)"' -D LOCALE_DIR='"$(LOCALE_DIR)"' -D NLS=1 +COMPILERFLAGS = -O -D MP_VERSION='"1.5"' -D PACKAGE='"$(LOCALE_PACKAGE)"' -D LOCALE_DIR='"$(LOCALE_DIR)"' -D NLS="1" CC = gcc CFLAGS = $(COMPILERFLAGS) $(INCLUDE) @@ -11,7 +11,7 @@ OBJECTFILES = dirdialog.o main.o mainwindow.o useful.o mp3util.o playlist.o waitdialog.o mplist.o miscwindow.o mplinuxman : $(OBJECTFILES) f60lib.o ini.o usb.o error.o descriptors.o linux.o - $(CC) -o mplinuxman $(CFLAGS) $(LIBS) $(OBJECTFILES) f60lib.o ini.o usb.o error.o descriptors.o linux.o ; echo -e "\nDone\nTo install language translations use: make install-po" + $(CC) -o mplinuxman $(CFLAGS) $(LIBS) $(OBJECTFILES) f60lib.o ini.o usb.o error.o descriptors.o linux.o ; echo -e "\nDone\nTo install mplinuxman use (this requires root privileges): make install\n" f60lib.o : f60lib/f60lib.c @@ -52,4 +52,32 @@ install-po: sh po/install.sh - +install-launcher: + cp logo.xpm /usr/local/share/pixmaps/mplinuxman.xpm + cp mplinuxman.desktop /usr/local/share/applications + +install: + mkdir -p /usr/local/bin/ + cp mplinuxman /usr/local/bin + cd extra/mp_util && make && cp mputil /usr/local/bin && cd ../.. + mkdir -p /usr/local/share/pixmaps/ + cp logo.xpm /usr/local/share/pixmaps/mplinuxman.xpm + mkdir -p /usr/local/share/applications/ + cp mplinuxman.desktop /usr/local/share/applications + mkdir -p /usr/local/share/locale/de/LC_MESSAGES/ + mkdir -p /usr/local/share/locale/es/LC_MESSAGES/ + mkdir -p /usr/local/share/locale/fr/LC_MESSAGES/ + mkdir -p /usr/local/share/locale/ja/LC_MESSAGES/ + mkdir -p /usr/local/share/locale/nl/LC_MESSAGES/ + sh po/install.sh + +uninstall: + rm /usr/local/bin/mplinuxman + rm /usr/local/bin/mputil + rm /usr/local/share/pixmaps/mplinuxman.xpm + rm /usr/local/share/applications/mplinuxman.desktop + rm /usr/local/share/locale/de/LC_MESSAGES/mplinuxman.mo + rm /usr/local/share/locale/es/LC_MESSAGES/mplinuxman.mo + rm /usr/local/share/locale/fr/LC_MESSAGES/mplinuxman.mo + rm /usr/local/share/locale/ja/LC_MESSAGES/mplinuxman.mo + rm /usr/local/share/locale/nl/LC_MESSAGES/mplinuxman.mo diff -Nru mplinuxman-1.4/makefile.osx mplinuxman-1.5/makefile.osx --- mplinuxman-1.4/makefile.osx 2004-01-19 01:19:56.000000000 -0300 +++ mplinuxman-1.5/makefile.osx 2006-12-21 11:25:33.000000000 -0300 @@ -3,7 +3,7 @@ export LOCALE_PACKAGE=mplinuxman export LOCALE_DIR=/usr/local/share/locale # remove -D NLS=1 if you want to disable international language support (gettext) -COMPILERFLAGS = -O -D MP_VERSION='"1.4"' -D PACKAGE='"$(LOCALE_PACKAGE)"' -D LOCALE_DIR='"$(LOCALE_DIR)"' -D NLS=1 +COMPILERFLAGS = -O -D MP_VERSION='"1.5"' -D PACKAGE='"$(LOCALE_PACKAGE)"' -D LOCALE_DIR='"$(LOCALE_DIR)"' -D NLS=1 OSX_FLAGS = -D USE_SYSTEM_LIBUSB=1 -D USE_OSX=1 CC = gcc CFLAGS = $(COMPILERFLAGS) $(OSX_FLAGS) $(INCLUDE) diff -Nru mplinuxman-1.4/miscwindow.c mplinuxman-1.5/miscwindow.c --- mplinuxman-1.4/miscwindow.c 2004-01-19 04:58:28.000000000 -0300 +++ mplinuxman-1.5/miscwindow.c 2006-12-05 16:58:03.000000000 -0300 @@ -1,663 +1,587 @@ -#include -#include -#include - -#include -#include "mp3util.h" -#include "mplinux.h" - -void ButtonRelief (GtkWidget *widget,gpointer data) { - - gtk_button_set_relief(GTK_BUTTON(widget),(GtkReliefStyle)data); - -} - - -void left_treeview_GetSelectedInfo (GtkTreeModel *model, - GtkTreePath *path, - GtkTreeIter *iter, - PlayListEntry** p) { - PlayListEntry* get; - - gtk_tree_model_get(model,iter,0,&get,-1); - *p = get; -} - - - -void create_file_info_window() { - GtkWidget* tv; - GtkTreeModel* model; - GtkTreeSelection* selection; - PlayListEntry* p = NULL; - struct mp3_info* m; - GtkWidget* dialog; - GtkWidget* temp; - GtkWidget* temp2; - GtkWidget* temp3; - GtkWidget* temp4; - gchar text[128]; - gint i; - gsize bytes_read; - gsize bytes_written; - - tv = MW_GET("left_treeview"); - - model = gtk_tree_view_get_model(GTK_TREE_VIEW(tv)); - selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(tv)); - gtk_tree_selection_selected_foreach (selection, - (GtkTreeSelectionForeachFunc)left_treeview_GetSelectedInfo , - &p); - - if (p == NULL) - return; - m = pl_GetMp3Info(p->name->str); - if (m == NULL) - return; - - //strncpy(text,_("File Info "),12); - dialog = gtk_dialog_new_with_buttons(_("File Info "),MainWindow, - GTK_DIALOG_MODAL & - GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_STOCK_CLOSE,GTK_RESPONSE_OK,NULL); -#ifdef NLS - temp2 = gtk_label_new(convert_if_needed(p->name->str)); -#else - temp2 = gtk_label_new(p->name->str); -#endif - gtk_label_set_line_wrap(GTK_LABEL(temp2),TRUE); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox),temp2,FALSE,FALSE,5); - temp = gtk_hbox_new(FALSE,0); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox),temp,TRUE,TRUE,5); - -// gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox),temp); - temp2 = gtk_table_new(5,3,FALSE); - gtk_table_set_col_spacings(GTK_TABLE(temp2),3); - temp4 = gtk_frame_new(_("ID3 Tag")); - gtk_frame_set_shadow_type(GTK_FRAME(temp4),GTK_SHADOW_NONE); - gtk_container_set_border_width(GTK_CONTAINER(temp4),5); - gtk_box_pack_start(GTK_BOX(temp),temp4,TRUE,TRUE,0); - gtk_container_add(GTK_CONTAINER(temp4),temp2); - - temp3 = gtk_table_new(8,2,TRUE); - gtk_table_set_row_spacings(GTK_TABLE(temp2),3); - temp4 = gtk_frame_new(_("MPEG Info")); - gtk_container_set_border_width(GTK_CONTAINER(temp4),5); - gtk_box_pack_start(GTK_BOX(temp),temp4,FALSE,FALSE,0); - gtk_container_add(GTK_CONTAINER(temp4),temp3); - gtk_frame_set_shadow_type(GTK_FRAME(temp4),GTK_SHADOW_NONE); - - for(i=0;i<4;i++) { - GtkWidget* l; - GtkWidget* e; - gchar* labels[] = {_("Title"),_("Artist"),_("Album"),_("Comment")}; - gchar* values[] = {m->title,m->artist,m->album,m->comment}; - - l = gtk_label_new(labels[i]); - e = gtk_entry_new(); - if (m->hastag) -#ifdef NLS - gtk_entry_set_text(GTK_ENTRY(e),convert_if_needed(values[i])); -#else - gtk_entry_set_text(GTK_ENTRY(e),values[i]); -#endif - gtk_table_attach_defaults(GTK_TABLE(temp2),l,0,1,i,i+1); - gtk_table_attach_defaults(GTK_TABLE(temp2),e,1,2,i,i+1); - } - - for(i=0;i<7;i++) { - GtkWidget* l; - GtkWidget* l2; - gchar* labels[] = {_("Version"),_("layer"),_("Bitrate"),_("Samplerate"),_("stereo"),_("copyright"),_("size")}; - gint values[] = {m->version,m->layer,m->bitrate,m->samplerate,m->channels, - m->copyright,m->filesize}; - gchar c[15]; - - l = gtk_label_new(labels[i]); - gtk_misc_set_alignment(GTK_MISC(l),0,0.5); - - if (i == 2) - sprintf(c,"%d kbps",values[i]/1000); - else if (i == 3) - sprintf(c,"%.1f kHz",(float) values[i]/ (float)1000); - else if (i == 4) - sprintf(c,"%s",values[i] == 3 ? _("no"):_("yes")); - else if (i == 5) - sprintf(c,"%s",values[i] ? _("yes"):_("no")); - else if (i == 6) - sprintf(c,"%d KB",values[i] / 1024); - else - sprintf(c,"%d",values[i]); - l2 = gtk_label_new(c); - gtk_table_attach_defaults(GTK_TABLE(temp3),l,0,1,i,i+1); - gtk_table_attach_defaults(GTK_TABLE(temp3),l2,1,2,i,i+1); - } - - - g_signal_connect_swapped (GTK_OBJECT (dialog), "response", - G_CALLBACK (gtk_widget_destroy), - GTK_OBJECT (dialog)); - - gtk_dialog_set_has_separator (GTK_DIALOG(dialog),FALSE); - gtk_container_foreach(GTK_CONTAINER(GTK_DIALOG(dialog)->action_area), - ButtonRelief,(gpointer)GTK_RELIEF_NONE); - - gtk_widget_show_all(dialog); -} - - -void sensitive_callback(GtkWidget* widget,gpointer data) { - if (GTK_WIDGET_TYPE(widget) == GTK_TYPE_CONTAINER) - gtk_container_foreach(GTK_CONTAINER(widget),sensitive_callback,data); - gtk_widget_set_sensitive(widget,(gboolean)data); -} - -void active_button_Toggled (GtkToggleButton *togglebutton, - gpointer user_data) { - - GtkWidget* container; - gboolean checked; - - checked = gtk_toggle_button_get_active(togglebutton); - container = (GtkWidget*) user_data; - gtk_widget_set_sensitive(container,checked); - if (GTK_WIDGET_TYPE(container) == GTK_TYPE_CONTAINER) - gtk_container_foreach(GTK_CONTAINER(container),sensitive_callback,(gpointer) checked); - -} - -extern GtkTooltips* tooltips; - -void create_options_window() { - GtkWidget* dialog; - GtkWidget* vbox; - GtkWidget* table; - GtkWidget* hbox; - GtkWidget* tabs; - GtkWidget* tooltext_button; - GtkWidget* startconnect_button; - GtkWidget* listload_button; - GtkWidget* unplugexit_button; - GtkWidget* play_entry; - GtkWidget* stop_entry; - GtkWidget* title_entry; - GtkWidget* label; - GtkWidget* customtitle_button; - GtkWidget* enablelogging_button; - GtkWidget* changeid_button; - GtkWidget* logsize_spin; - GtkWidget* frame; - GtkWidget* frame2; - GtkWidget* vendor_entry; - GtkWidget* productid_entry; - gchar convert[8]; - gchar* c; - gchar* b; - - dialog = gtk_dialog_new_with_buttons(_("Options"),MainWindow, - GTK_DIALOG_MODAL & - GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_STOCK_CLOSE,GTK_RESPONSE_CLOSE,NULL); - - - tabs = gtk_notebook_new(); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox),tabs,TRUE,TRUE,0); - gtk_container_set_border_width(GTK_CONTAINER(tabs),5); - vbox = gtk_vbox_new(FALSE,5); - gtk_notebook_append_page(GTK_NOTEBOOK(tabs),vbox,gtk_label_new(_("Interface"))); - tooltext_button = gtk_check_button_new_with_label(_("Show toolbar text labels")); - gtk_box_pack_start(GTK_BOX(vbox),tooltext_button,FALSE,FALSE,5); - startconnect_button = gtk_check_button_new_with_label(_("Try to connect to device on startup")); - gtk_box_pack_start(GTK_BOX(vbox),startconnect_button,FALSE,FALSE,5); - listload_button = gtk_check_button_new_with_label(_("Load default playlist on startup")); - gtk_box_pack_start(GTK_BOX(vbox),listload_button,FALSE,FALSE,5); - unplugexit_button = gtk_check_button_new_with_label(_("Exit program when device is unplugged\nrequires hotplug support (/sbin/hotplug)")); - gtk_box_pack_start(GTK_BOX(vbox),unplugexit_button,FALSE,FALSE,5); - - vbox = gtk_table_new(3,7,FALSE); - gtk_container_set_border_width(GTK_CONTAINER(vbox),5); - gtk_notebook_append_page(GTK_NOTEBOOK(tabs),vbox,gtk_label_new(_("MP3 player"))); - label = gtk_label_new(_("Command to play mp3 (%f = selected filenames)")); - gtk_misc_set_alignment(GTK_MISC(label),0,1); - gtk_table_attach_defaults(GTK_TABLE(vbox),label,0,1,0,1); - play_entry = gtk_entry_new(); - gtk_table_attach_defaults(GTK_TABLE(vbox),play_entry,0,2,1,2); - gtk_table_attach_defaults(GTK_TABLE(vbox),gtk_hseparator_new(),0,2,2,3); - label = gtk_label_new(_("Command to stop playing mp3")); - gtk_misc_set_alignment(GTK_MISC(label),0,1); - gtk_table_attach_defaults(GTK_TABLE(vbox),label,0,1,4,5); - stop_entry = gtk_entry_new(); - gtk_table_attach_defaults(GTK_TABLE(vbox),stop_entry,0,2,5,6); - - vbox = gtk_vbox_new(FALSE,0); - gtk_container_set_border_width(GTK_CONTAINER(vbox),5); - gtk_notebook_append_page(GTK_NOTEBOOK(tabs),vbox,gtk_label_new(_("Title"))); - customtitle_button = gtk_check_button_new_with_label(_("Use customized track title format")); - gtk_box_pack_start(GTK_BOX(vbox),customtitle_button,FALSE,FALSE,0); - frame = gtk_frame_new(_("Title format")); - gtk_box_pack_start(GTK_BOX(vbox),frame,TRUE,TRUE,5); - vbox = gtk_table_new(3,6,FALSE); - gtk_container_set_border_width(GTK_CONTAINER(vbox),5); - gtk_container_add(GTK_CONTAINER(frame),vbox); - title_entry = gtk_entry_new(); - gtk_table_attach_defaults(GTK_TABLE(vbox),title_entry,0,2,0,1); - label = gtk_label_new(_("%f File name")); - gtk_misc_set_alignment(GTK_MISC(label),0,1); - gtk_table_attach_defaults(GTK_TABLE(vbox),label,0,1,1,2); - label = gtk_label_new(_("%p Performer/artist")); - gtk_misc_set_alignment(GTK_MISC(label),0,1); - gtk_table_attach_defaults(GTK_TABLE(vbox),label,0,1,2,3); - label = gtk_label_new(_("%a Album")); - gtk_misc_set_alignment(GTK_MISC(label),0,1); - gtk_table_attach_defaults(GTK_TABLE(vbox),label,0,1,3,4); - label = gtk_label_new(_("%t Track name")); - gtk_misc_set_alignment(GTK_MISC(label),0,1); - gtk_table_attach_defaults(GTK_TABLE(vbox),label,1,2,1,2); - label = gtk_label_new(_("%c Comment")); - gtk_misc_set_alignment(GTK_MISC(label),0,1); - gtk_table_attach_defaults(GTK_TABLE(vbox),label,1,2,2,3); - g_signal_connect(customtitle_button,"toggled",G_CALLBACK(active_button_Toggled),frame); - - vbox = gtk_vbox_new(FALSE,0); - gtk_container_set_border_width(GTK_CONTAINER(vbox),5); - gtk_notebook_append_page(GTK_NOTEBOOK(tabs),vbox,gtk_label_new(_("Advanced"))); - changeid_button = gtk_check_button_new_with_label(_("Specify vendor / product ID")); - gtk_tooltips_set_tip(tooltips,changeid_button,"USE THIS AT YOUR OWN RISK!",""); - gtk_box_pack_start(GTK_BOX(vbox),changeid_button,FALSE,FALSE,0); - frame2 = gtk_frame_new(_("Device ID")); - gtk_box_pack_start(GTK_BOX(vbox),frame2,TRUE,TRUE,5); - table = gtk_table_new(3,3,FALSE); - gtk_container_set_border_width(GTK_CONTAINER(table),5); - gtk_container_add(GTK_CONTAINER(frame2),table); - label = gtk_label_new("Vendor ID"); - gtk_misc_set_alignment(GTK_MISC(label),.8,.5); - gtk_table_attach_defaults(GTK_TABLE(table),label,0,1,0,1); - vendor_entry = gtk_entry_new_with_max_length(4); - gtk_table_attach_defaults(GTK_TABLE(table),vendor_entry,1,2,0,1); - label = gtk_label_new("Product ID"); - gtk_misc_set_alignment(GTK_MISC(label),.8,.5); - gtk_table_attach_defaults(GTK_TABLE(table),label,0,1,1,2); - productid_entry = gtk_entry_new_with_max_length(4); - gtk_table_attach_defaults(GTK_TABLE(table),productid_entry,1,2,1,2); - hbox = gtk_hbox_new(FALSE,0); - gtk_box_pack_start(GTK_BOX(vbox),hbox,FALSE,FALSE,0); - enablelogging_button = gtk_check_button_new_with_label(_("Enable logging")); - gtk_box_pack_start(GTK_BOX(hbox),enablelogging_button,FALSE,FALSE,0); - logsize_spin = gtk_spin_button_new_with_range(1,1000,10); - gtk_tooltips_set_tip(tooltips,logsize_spin,"maximum number of bytes to log in each message",""); - gtk_spin_button_set_value(GTK_SPIN_BUTTON(logsize_spin),50); - gtk_box_pack_start(GTK_BOX(hbox),logsize_spin,FALSE,FALSE,5); - g_signal_connect(changeid_button,"toggled",G_CALLBACK(active_button_Toggled),frame2); - g_signal_connect(enablelogging_button,"toggled",G_CALLBACK(active_button_Toggled),logsize_spin); - - - c = cfg_Read("options","tool bar text","1"); - if (atoi(c)) - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(tooltext_button),TRUE); - c = cfg_Read("options","startup connect","1"); - if (atoi(c)) - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(startconnect_button),TRUE); - c = cfg_Read("options","startup load list","1"); - if (atoi(c)) - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(listload_button),TRUE); - - c = cfg_Read("options","exit on unplugged","0"); - if (atoi(c)) - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(unplugexit_button),TRUE); - - c = cfg_Read("options","mp3 play command","mpg123 %f"); - gtk_entry_set_text(GTK_ENTRY(play_entry),c); - c = cfg_Read("options","mp3 stop command","killall mpg123"); - gtk_entry_set_text(GTK_ENTRY(stop_entry),c); - - c = cfg_Read("options","use custom titles","0"); - if (atoi(c)) { - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(customtitle_button),TRUE); - } else { - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(customtitle_button),FALSE); - active_button_Toggled((GtkToggleButton*)customtitle_button,(gpointer)frame); - } - c = cfg_Read("options","title format","%p - %t"); - gtk_entry_set_text(GTK_ENTRY(title_entry),c); - - c = cfg_Read("options","print debug info","0"); - if (atoi(c)) { - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(enablelogging_button),TRUE); - gtk_spin_button_set_value(GTK_SPIN_BUTTON(logsize_spin),atoi(c)); - } else { - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(enablelogging_button),FALSE); - active_button_Toggled((GtkToggleButton*)enablelogging_button,(gpointer)logsize_spin); - } - - c = cfg_Read("options","user supplied id","0"); - if (atoi(c)) { - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(changeid_button),TRUE); - } else { - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(changeid_button),FALSE); - active_button_Toggled((GtkToggleButton*)changeid_button,(gpointer)frame2); - } - - gtk_entry_set_text(GTK_ENTRY(productid_entry),cfg_Read("options","supplied product id","0006")); - gtk_entry_set_text(GTK_ENTRY(vendor_entry),cfg_Read("options","supplied vendor id","0a62")); - - gtk_window_resize(GTK_WINDOW(dialog),400,200); - gtk_dialog_set_has_separator (GTK_DIALOG(dialog),FALSE); - gtk_container_foreach(GTK_CONTAINER(GTK_DIALOG(dialog)->action_area), - ButtonRelief,(gpointer)GTK_RELIEF_NONE); - - gtk_widget_show_all(dialog); - gtk_dialog_run(GTK_DIALOG(dialog)); - - - if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(tooltext_button))) { - cfg_Write("options","tool bar text","1"); - gtk_toolbar_set_style(GTK_TOOLBAR(MW_GET("left_toolbar")), - GTK_TOOLBAR_BOTH); - gtk_toolbar_set_style(GTK_TOOLBAR(MW_GET("right_toolbar")), - GTK_TOOLBAR_BOTH); - - } - else { - cfg_Write("options","tool bar text","0"); - gtk_toolbar_set_style(GTK_TOOLBAR(MW_GET("left_toolbar")), - GTK_TOOLBAR_ICONS); - gtk_toolbar_set_style(GTK_TOOLBAR(MW_GET("right_toolbar")), - GTK_TOOLBAR_ICONS); - } - - if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(startconnect_button))) - cfg_Write("options","startup connect","1"); - else - cfg_Write("options","startup connect","0"); - - if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(listload_button))) - cfg_Write("options","startup load list","1"); - else - cfg_Write("options","startup load list","0"); - - if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(unplugexit_button))) - cfg_Write("options","exit on unplugged","1"); - else - cfg_Write("options","exit on unplugged","0"); - - - cfg_Write("options","mp3 play command",(gchar*)gtk_entry_get_text(GTK_ENTRY(play_entry))); - - cfg_Write("options","mp3 stop command",(gchar*)gtk_entry_get_text(GTK_ENTRY(stop_entry))); - - if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(customtitle_button))) - cfg_Write("options","use custom titles","1"); - else - cfg_Write("options","use custom titles","0"); - - cfg_Write("options","title format",(gchar*)gtk_entry_get_text(GTK_ENTRY(title_entry))); - - if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(enablelogging_button))) { - snprintf(convert,5,"%d",gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(logsize_spin))); - cfg_Write("options","print debug info",convert); - mpl_PrintDebugInfo(gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(logsize_spin))); - } - else { - cfg_Write("options","print debug info","0"); - mpl_PrintDebugInfo(0); - } - - if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(changeid_button))) { - cfg_Write("options","user supplied id","1"); - cfg_Write("options","supplied vendor id", c = (gchar*)gtk_entry_get_text(GTK_ENTRY(vendor_entry))); - cfg_Write("options","supplied product id",b = (gchar*)gtk_entry_get_text(GTK_ENTRY(productid_entry))); - mpl_set_device_id(1,c,b); - } - else { - cfg_Write("options","user supplied id","0"); - mpl_set_device_id(0,"0000","0000"); - } - - - gtk_widget_destroy(dialog); - - -} - -GtkWidget* da; -GdkPixbuf* buffer; - -gint expose_cb (GtkWidget *widget, - GdkEventExpose *event, - gpointer data) +#include +#include +#include + +#include +#include "mp3util.h" +#include "mplinux.h" + +void ButtonRelief (GtkWidget *widget,gpointer data) { + + gtk_button_set_relief(GTK_BUTTON(widget),(GtkReliefStyle)data); + +} + + +void left_treeview_GetSelectedInfo (GtkTreeModel *model, + GtkTreePath *path, + GtkTreeIter *iter, + PlayListEntry** p) { + PlayListEntry* get; + + gtk_tree_model_get(model,iter,0,&get,-1); + *p = get; +} + + + +void create_file_info_window() { + GtkWidget* tv; + GtkTreeModel* model; + GtkTreeSelection* selection; + PlayListEntry* p = NULL; + struct mp3_info* m; + GtkWidget* dialog; + GtkWidget* temp; + GtkWidget* temp2; + GtkWidget* temp3; + GtkWidget* temp4; + gchar text[128]; + gint i; + gsize bytes_read; + gsize bytes_written; + + tv = MW_GET("left_treeview"); + + model = gtk_tree_view_get_model(GTK_TREE_VIEW(tv)); + selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(tv)); + gtk_tree_selection_selected_foreach (selection, + (GtkTreeSelectionForeachFunc)left_treeview_GetSelectedInfo , + &p); + + if (p == NULL) + return; + m = pl_GetMp3Info(p->name->str); + if (m == NULL) + return; + + //strncpy(text,_("File Info "),12); + dialog = gtk_dialog_new_with_buttons(_("File Info "),MainWindow, + GTK_DIALOG_MODAL & + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_STOCK_CLOSE,GTK_RESPONSE_OK,NULL); +#ifdef NLS + temp2 = gtk_label_new(convert_if_needed(p->name->str)); +#else + temp2 = gtk_label_new(p->name->str); +#endif + gtk_label_set_line_wrap(GTK_LABEL(temp2),TRUE); + gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox),temp2,FALSE,FALSE,5); + temp = gtk_hbox_new(FALSE,0); + gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox),temp,TRUE,TRUE,5); + +// gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox),temp); + temp2 = gtk_table_new(5,3,FALSE); + gtk_table_set_col_spacings(GTK_TABLE(temp2),3); + temp4 = gtk_frame_new(_("ID3 Tag")); + gtk_frame_set_shadow_type(GTK_FRAME(temp4),GTK_SHADOW_NONE); + gtk_container_set_border_width(GTK_CONTAINER(temp4),5); + gtk_box_pack_start(GTK_BOX(temp),temp4,TRUE,TRUE,0); + gtk_container_add(GTK_CONTAINER(temp4),temp2); + + temp3 = gtk_table_new(8,2,TRUE); + gtk_table_set_row_spacings(GTK_TABLE(temp2),3); + temp4 = gtk_frame_new(_("MPEG Info")); + gtk_container_set_border_width(GTK_CONTAINER(temp4),5); + gtk_box_pack_start(GTK_BOX(temp),temp4,FALSE,FALSE,0); + gtk_container_add(GTK_CONTAINER(temp4),temp3); + gtk_frame_set_shadow_type(GTK_FRAME(temp4),GTK_SHADOW_NONE); + + for(i=0;i<4;i++) { + GtkWidget* l; + GtkWidget* e; + gchar* labels[] = {_("Title"),_("Artist"),_("Album"),_("Comment")}; + gchar* values[] = {m->title,m->artist,m->album,m->comment}; + + l = gtk_label_new(labels[i]); + e = gtk_entry_new(); + if (m->hastag) +#ifdef NLS + gtk_entry_set_text(GTK_ENTRY(e),convert_if_needed(values[i])); +#else + gtk_entry_set_text(GTK_ENTRY(e),values[i]); +#endif + gtk_table_attach_defaults(GTK_TABLE(temp2),l,0,1,i,i+1); + gtk_table_attach_defaults(GTK_TABLE(temp2),e,1,2,i,i+1); + } + + for(i=0;i<7;i++) { + GtkWidget* l; + GtkWidget* l2; + gchar* labels[] = {_("Version"),_("layer"),_("Bitrate"),_("Samplerate"),_("stereo"),_("copyright"),_("size")}; + gint values[] = {m->version,m->layer,m->bitrate,m->samplerate,m->channels, + m->copyright,m->filesize}; + gchar c[15]; + + l = gtk_label_new(labels[i]); + gtk_misc_set_alignment(GTK_MISC(l),0,0.5); + + if (i == 2) + sprintf(c,"%d kbps",values[i]/1000); + else if (i == 3) + sprintf(c,"%.1f kHz",(float) values[i]/ (float)1000); + else if (i == 4) + sprintf(c,"%s",values[i] == 3 ? _("no"):_("yes")); + else if (i == 5) + sprintf(c,"%s",values[i] ? _("yes"):_("no")); + else if (i == 6) + sprintf(c,"%d KB",values[i] / 1024); + else + sprintf(c,"%d",values[i]); + l2 = gtk_label_new(c); + gtk_table_attach_defaults(GTK_TABLE(temp3),l,0,1,i,i+1); + gtk_table_attach_defaults(GTK_TABLE(temp3),l2,1,2,i,i+1); + } + + + g_signal_connect_swapped (GTK_OBJECT (dialog), "response", + G_CALLBACK (gtk_widget_destroy), + GTK_OBJECT (dialog)); + + gtk_dialog_set_has_separator (GTK_DIALOG(dialog),FALSE); + gtk_container_foreach(GTK_CONTAINER(GTK_DIALOG(dialog)->action_area), + ButtonRelief,(gpointer)GTK_RELIEF_NONE); + + gtk_widget_show_all(dialog); +} + + +void sensitive_callback(GtkWidget* widget,gpointer data) { + if (GTK_WIDGET_TYPE(widget) == GTK_TYPE_CONTAINER) + gtk_container_foreach(GTK_CONTAINER(widget),sensitive_callback,data); + gtk_widget_set_sensitive(widget,(gboolean)data); +} + +void active_button_Toggled (GtkToggleButton *togglebutton, + gpointer user_data) { + + GtkWidget* container; + gboolean checked; + + checked = gtk_toggle_button_get_active(togglebutton); + container = (GtkWidget*) user_data; + gtk_widget_set_sensitive(container,checked); + if (GTK_WIDGET_TYPE(container) == GTK_TYPE_CONTAINER) + gtk_container_foreach(GTK_CONTAINER(container),sensitive_callback,(gpointer) checked); + +} + +extern GtkTooltips* tooltips; + +void create_options_window() { + GtkWidget* dialog; + GtkWidget* vbox; + GtkWidget* table; + GtkWidget* hbox; + GtkWidget* tabs; + GtkWidget* tooltext_button; + GtkWidget* startconnect_button; + GtkWidget* listload_button; + GtkWidget* unplugexit_button; + GtkWidget* play_entry; + GtkWidget* stop_entry; + GtkWidget* title_entry; + GtkWidget* label; + GtkWidget* customtitle_button; + GtkWidget* enablelogging_button; + GtkWidget* changeid_button; + GtkWidget* logsize_spin; + GtkWidget* frame; + GtkWidget* frame2; + GtkWidget* vendor_entry; + GtkWidget* productid_entry; + gchar convert[8]; + gchar* c; + gchar* b; + + dialog = gtk_dialog_new_with_buttons(_("Options"),MainWindow, + GTK_DIALOG_MODAL & + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_STOCK_CLOSE,GTK_RESPONSE_CLOSE,NULL); + + + tabs = gtk_notebook_new(); + gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox),tabs,TRUE,TRUE,0); + gtk_container_set_border_width(GTK_CONTAINER(tabs),5); + vbox = gtk_vbox_new(FALSE,5); + gtk_notebook_append_page(GTK_NOTEBOOK(tabs),vbox,gtk_label_new(_("Interface"))); + tooltext_button = gtk_check_button_new_with_label(_("Show toolbar text labels")); + gtk_box_pack_start(GTK_BOX(vbox),tooltext_button,FALSE,FALSE,5); + startconnect_button = gtk_check_button_new_with_label(_("Try to connect to device on startup")); + gtk_box_pack_start(GTK_BOX(vbox),startconnect_button,FALSE,FALSE,5); + listload_button = gtk_check_button_new_with_label(_("Load default playlist on startup")); + gtk_box_pack_start(GTK_BOX(vbox),listload_button,FALSE,FALSE,5); + unplugexit_button = gtk_check_button_new_with_label(_("Exit program when device is unplugged\nrequires hotplug support (/sbin/hotplug)")); + gtk_box_pack_start(GTK_BOX(vbox),unplugexit_button,FALSE,FALSE,5); + + vbox = gtk_table_new(3,7,FALSE); + gtk_container_set_border_width(GTK_CONTAINER(vbox),5); + gtk_notebook_append_page(GTK_NOTEBOOK(tabs),vbox,gtk_label_new(_("MP3 player"))); + label = gtk_label_new(_("Command to play mp3 (%f = selected filenames)")); + gtk_misc_set_alignment(GTK_MISC(label),0,1); + gtk_table_attach_defaults(GTK_TABLE(vbox),label,0,1,0,1); + play_entry = gtk_entry_new(); + gtk_table_attach_defaults(GTK_TABLE(vbox),play_entry,0,2,1,2); + gtk_table_attach_defaults(GTK_TABLE(vbox),gtk_hseparator_new(),0,2,2,3); + label = gtk_label_new(_("Command to stop playing mp3")); + gtk_misc_set_alignment(GTK_MISC(label),0,1); + gtk_table_attach_defaults(GTK_TABLE(vbox),label,0,1,4,5); + stop_entry = gtk_entry_new(); + gtk_table_attach_defaults(GTK_TABLE(vbox),stop_entry,0,2,5,6); + + vbox = gtk_vbox_new(FALSE,0); + gtk_container_set_border_width(GTK_CONTAINER(vbox),5); + gtk_notebook_append_page(GTK_NOTEBOOK(tabs),vbox,gtk_label_new(_("Title"))); + customtitle_button = gtk_check_button_new_with_label(_("Use customized track title format")); + gtk_box_pack_start(GTK_BOX(vbox),customtitle_button,FALSE,FALSE,0); + frame = gtk_frame_new(_("Title format")); + gtk_box_pack_start(GTK_BOX(vbox),frame,TRUE,TRUE,5); + vbox = gtk_table_new(3,6,FALSE); + gtk_container_set_border_width(GTK_CONTAINER(vbox),5); + gtk_container_add(GTK_CONTAINER(frame),vbox); + title_entry = gtk_entry_new(); + gtk_table_attach_defaults(GTK_TABLE(vbox),title_entry,0,2,0,1); + label = gtk_label_new(_("%f File name")); + gtk_misc_set_alignment(GTK_MISC(label),0,1); + gtk_table_attach_defaults(GTK_TABLE(vbox),label,0,1,1,2); + label = gtk_label_new(_("%p Performer/artist")); + gtk_misc_set_alignment(GTK_MISC(label),0,1); + gtk_table_attach_defaults(GTK_TABLE(vbox),label,0,1,2,3); + label = gtk_label_new(_("%a Album")); + gtk_misc_set_alignment(GTK_MISC(label),0,1); + gtk_table_attach_defaults(GTK_TABLE(vbox),label,0,1,3,4); + label = gtk_label_new(_("%t Track name")); + gtk_misc_set_alignment(GTK_MISC(label),0,1); + gtk_table_attach_defaults(GTK_TABLE(vbox),label,1,2,1,2); + label = gtk_label_new(_("%c Comment")); + gtk_misc_set_alignment(GTK_MISC(label),0,1); + gtk_table_attach_defaults(GTK_TABLE(vbox),label,1,2,2,3); + g_signal_connect(customtitle_button,"toggled",G_CALLBACK(active_button_Toggled),frame); + + vbox = gtk_vbox_new(FALSE,0); + gtk_container_set_border_width(GTK_CONTAINER(vbox),5); + gtk_notebook_append_page(GTK_NOTEBOOK(tabs),vbox,gtk_label_new(_("Advanced"))); + changeid_button = gtk_check_button_new_with_label(_("Specify vendor / product ID")); + gtk_tooltips_set_tip(tooltips,changeid_button,"USE THIS AT YOUR OWN RISK!",""); + gtk_box_pack_start(GTK_BOX(vbox),changeid_button,FALSE,FALSE,0); + frame2 = gtk_frame_new(_("Device ID")); + gtk_box_pack_start(GTK_BOX(vbox),frame2,TRUE,TRUE,5); + table = gtk_table_new(3,3,FALSE); + gtk_container_set_border_width(GTK_CONTAINER(table),5); + gtk_container_add(GTK_CONTAINER(frame2),table); + label = gtk_label_new("Vendor ID"); + gtk_misc_set_alignment(GTK_MISC(label),.8,.5); + gtk_table_attach_defaults(GTK_TABLE(table),label,0,1,0,1); + vendor_entry = gtk_entry_new_with_max_length(4); + gtk_table_attach_defaults(GTK_TABLE(table),vendor_entry,1,2,0,1); + label = gtk_label_new("Product ID"); + gtk_misc_set_alignment(GTK_MISC(label),.8,.5); + gtk_table_attach_defaults(GTK_TABLE(table),label,0,1,1,2); + productid_entry = gtk_entry_new_with_max_length(4); + gtk_table_attach_defaults(GTK_TABLE(table),productid_entry,1,2,1,2); + hbox = gtk_hbox_new(FALSE,0); + gtk_box_pack_start(GTK_BOX(vbox),hbox,FALSE,FALSE,0); + enablelogging_button = gtk_check_button_new_with_label(_("Enable logging")); + gtk_box_pack_start(GTK_BOX(hbox),enablelogging_button,FALSE,FALSE,0); + logsize_spin = gtk_spin_button_new_with_range(1,1000,10); + gtk_tooltips_set_tip(tooltips,logsize_spin,"maximum number of bytes to log in each message",""); + gtk_spin_button_set_value(GTK_SPIN_BUTTON(logsize_spin),50); + gtk_box_pack_start(GTK_BOX(hbox),logsize_spin,FALSE,FALSE,5); + g_signal_connect(changeid_button,"toggled",G_CALLBACK(active_button_Toggled),frame2); + g_signal_connect(enablelogging_button,"toggled",G_CALLBACK(active_button_Toggled),logsize_spin); + + + c = cfg_Read("options","tool bar text","1"); + if (atoi(c)) + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(tooltext_button),TRUE); + c = cfg_Read("options","startup connect","1"); + if (atoi(c)) + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(startconnect_button),TRUE); + c = cfg_Read("options","startup load list","1"); + if (atoi(c)) + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(listload_button),TRUE); + + c = cfg_Read("options","exit on unplugged","0"); + if (atoi(c)) + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(unplugexit_button),TRUE); + + c = cfg_Read("options","mp3 play command","mpg123 %f"); + gtk_entry_set_text(GTK_ENTRY(play_entry),c); + c = cfg_Read("options","mp3 stop command","killall mpg123"); + gtk_entry_set_text(GTK_ENTRY(stop_entry),c); + + c = cfg_Read("options","use custom titles","0"); + if (atoi(c)) { + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(customtitle_button),TRUE); + } else { + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(customtitle_button),FALSE); + active_button_Toggled((GtkToggleButton*)customtitle_button,(gpointer)frame); + } + c = cfg_Read("options","title format","%p - %t"); + gtk_entry_set_text(GTK_ENTRY(title_entry),c); + + c = cfg_Read("options","print debug info","0"); + if (atoi(c)) { + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(enablelogging_button),TRUE); + gtk_spin_button_set_value(GTK_SPIN_BUTTON(logsize_spin),atoi(c)); + } else { + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(enablelogging_button),FALSE); + active_button_Toggled((GtkToggleButton*)enablelogging_button,(gpointer)logsize_spin); + } + + c = cfg_Read("options","user supplied id","0"); + if (atoi(c)) { + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(changeid_button),TRUE); + } else { + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(changeid_button),FALSE); + active_button_Toggled((GtkToggleButton*)changeid_button,(gpointer)frame2); + } + + gtk_entry_set_text(GTK_ENTRY(productid_entry),cfg_Read("options","supplied product id","0006")); + gtk_entry_set_text(GTK_ENTRY(vendor_entry),cfg_Read("options","supplied vendor id","0a62")); + + gtk_window_resize(GTK_WINDOW(dialog),400,200); + gtk_dialog_set_has_separator (GTK_DIALOG(dialog),FALSE); + gtk_container_foreach(GTK_CONTAINER(GTK_DIALOG(dialog)->action_area), + ButtonRelief,(gpointer)GTK_RELIEF_NONE); + + gtk_widget_show_all(dialog); + gtk_dialog_run(GTK_DIALOG(dialog)); + + + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(tooltext_button))) { + cfg_Write("options","tool bar text","1"); + gtk_toolbar_set_style(GTK_TOOLBAR(MW_GET("left_toolbar")), + GTK_TOOLBAR_BOTH); + gtk_toolbar_set_style(GTK_TOOLBAR(MW_GET("right_toolbar")), + GTK_TOOLBAR_BOTH); + + } + else { + cfg_Write("options","tool bar text","0"); + gtk_toolbar_set_style(GTK_TOOLBAR(MW_GET("left_toolbar")), + GTK_TOOLBAR_ICONS); + gtk_toolbar_set_style(GTK_TOOLBAR(MW_GET("right_toolbar")), + GTK_TOOLBAR_ICONS); + } + + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(startconnect_button))) + cfg_Write("options","startup connect","1"); + else + cfg_Write("options","startup connect","0"); + + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(listload_button))) + cfg_Write("options","startup load list","1"); + else + cfg_Write("options","startup load list","0"); + + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(unplugexit_button))) + cfg_Write("options","exit on unplugged","1"); + else + cfg_Write("options","exit on unplugged","0"); + + + cfg_Write("options","mp3 play command",(gchar*)gtk_entry_get_text(GTK_ENTRY(play_entry))); + + cfg_Write("options","mp3 stop command",(gchar*)gtk_entry_get_text(GTK_ENTRY(stop_entry))); + + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(customtitle_button))) + cfg_Write("options","use custom titles","1"); + else + cfg_Write("options","use custom titles","0"); + + cfg_Write("options","title format",(gchar*)gtk_entry_get_text(GTK_ENTRY(title_entry))); + + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(enablelogging_button))) { + snprintf(convert,5,"%d",gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(logsize_spin))); + cfg_Write("options","print debug info",convert); + mpl_PrintDebugInfo(gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(logsize_spin))); + } + else { + cfg_Write("options","print debug info","0"); + mpl_PrintDebugInfo(0); + } + + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(changeid_button))) { + cfg_Write("options","user supplied id","1"); + cfg_Write("options","supplied vendor id", c = (gchar*)gtk_entry_get_text(GTK_ENTRY(vendor_entry))); + cfg_Write("options","supplied product id",b = (gchar*)gtk_entry_get_text(GTK_ENTRY(productid_entry))); + mpl_set_device_id(1,c,b); + } + else { + cfg_Write("options","user supplied id","0"); + mpl_set_device_id(0,"0000","0000"); + } + + + gtk_widget_destroy(dialog); + + +} + +GtkWidget* da; +GdkPixbuf* buffer; + +gint expose_cb (GtkWidget *widget, + GdkEventExpose *event, + gpointer data) +{ + GdkPixbuf* frame; + guchar *pixels; + int rowstride; + + frame = (GdkPixbuf*)data; + + rowstride = gdk_pixbuf_get_rowstride (frame); + pixels = gdk_pixbuf_get_pixels (frame) + rowstride * event->area.y + event->area.x * 4; + + gdk_draw_rgb_32_image_dithalign (widget->window, + widget->style->black_gc, + event->area.x, event->area.y, + event->area.width, event->area.height, + GDK_RGB_DITHER_NORMAL, + pixels, rowstride, + event->area.x, event->area.y); + return TRUE; +} + +gint timeout (gpointer data) { + GdkPixbuf* frame; + guchar *pixels; + guchar *source; + gint i,j; + int rowstride; + float para; + static float multiplier = 0.0; + static unsigned char lcolor = 1; + frame = (GdkPixbuf*)data; + + rowstride = gdk_pixbuf_get_rowstride (frame); + pixels = gdk_pixbuf_get_pixels(frame); + source = gdk_pixbuf_get_pixels(buffer); + + para = 2.0f * ((multiplier - 0.4) * (multiplier - 0.4)) + 0.1; + + for(i=0;i<400;i++) + for(j=0;j 4) lcolor = 2; + } + + if (multiplier > 1.0) { + multiplier = 0.0; + } + + gtk_widget_queue_draw (da); + return TRUE; +} + +guint timeout_id; + +static void +cleanup_callback (GtkObject *object, + gpointer data) +{ + GdkPixbuf* frame; + + g_source_remove (timeout_id); + timeout_id = 0; + + frame = (GdkPixbuf*) data; + g_object_unref(frame); + g_object_unref(buffer); + gtk_widget_destroy(GTK_WIDGET(object)); +} + +void create_easteregg_window() { + GtkWidget* window; + GdkPixbuf* frame; + GdkPixbuf* i; + GtkWidget* vbox; + + i = MW_GET("mp_icon"); + window = gtk_window_new (GTK_WINDOW_TOPLEVEL); + gtk_window_set_resizable (GTK_WINDOW (window), FALSE); + gtk_widget_set_size_request (window, 400,400); + frame = gdk_pixbuf_new (GDK_COLORSPACE_RGB, gdk_pixbuf_get_has_alpha(i) + , gdk_pixbuf_get_bits_per_sample(i) , 400,400); + + g_signal_connect (window, "destroy", G_CALLBACK (cleanup_callback), frame); + + buffer = gdk_pixbuf_scale_simple(i,400,400,GDK_INTERP_HYPER); + da = gtk_drawing_area_new(); + g_signal_connect(da,"expose_event",G_CALLBACK(expose_cb),frame); + + vbox = gtk_vbox_new(FALSE,5); + gtk_container_add (GTK_CONTAINER (window), vbox); + gtk_box_pack_start(GTK_BOX(vbox),da,TRUE,TRUE,0); + gtk_box_pack_start(GTK_BOX(vbox),gtk_label_new("mild7@users.sourceforge.net"),FALSE,FALSE,5); + gtk_window_set_transient_for (GTK_WINDOW(window),GTK_WINDOW(MainWindow)); + gtk_window_set_title(GTK_WINDOW(window),_("Contgratulations you found an easter egg!")); + + timeout_id = gtk_timeout_add (50, timeout, frame); + gtk_widget_show_all(window); +} + +gboolean image_button_event (GtkWidget *widget, + GdkEventButton *event, + gpointer user_data) { + + if (event->type == GDK_2BUTTON_PRESS) { + gtk_dialog_response(GTK_DIALOG(user_data),1); + create_easteregg_window(); + return TRUE; + } + + return FALSE; +} + +void unset_can_focus(GtkWidget* widget,gpointer data) { + + g_object_set(widget,"can-focus",FALSE,NULL); +} + +void create_about_window() { - GdkPixbuf* frame; - guchar *pixels; - int rowstride; - - (gpointer) frame = data; - - rowstride = gdk_pixbuf_get_rowstride (frame); - pixels = gdk_pixbuf_get_pixels (frame) + rowstride * event->area.y + event->area.x * 4; - - gdk_draw_rgb_32_image_dithalign (widget->window, - widget->style->black_gc, - event->area.x, event->area.y, - event->area.width, event->area.height, - GDK_RGB_DITHER_NORMAL, - pixels, rowstride, - event->area.x, event->area.y); - return TRUE; -} - -gint timeout (gpointer data) { - GdkPixbuf* frame; - guchar *pixels; - guchar *source; - gint i,j; - int rowstride; - float para; - static float multiplier = 0.0; - static unsigned char lcolor = 1; - - (gpointer) frame = data; - - rowstride = gdk_pixbuf_get_rowstride (frame); - pixels = gdk_pixbuf_get_pixels(frame); - source = gdk_pixbuf_get_pixels(buffer); - - para = 2.0f * ((multiplier - 0.4) * (multiplier - 0.4)) + 0.1; - - for(i=0;i<400;i++) - for(j=0;j 4) lcolor = 2; - } - - if (multiplier > 1.0) { - multiplier = 0.0; - } - - gtk_widget_queue_draw (da); - return TRUE; -} - -guint timeout_id; - -static void -cleanup_callback (GtkObject *object, - gpointer data) -{ - GdkPixbuf* frame; - - g_source_remove (timeout_id); - timeout_id = 0; - - (gpointer) frame = data; - g_object_unref(frame); - g_object_unref(buffer); - gtk_widget_destroy(GTK_WIDGET(object)); -} - -void create_easteregg_window() { - GtkWidget* window; - GdkPixbuf* frame; - GdkPixbuf* i; - GtkWidget* vbox; - - i = MW_GET("mp_icon"); - window = gtk_window_new (GTK_WINDOW_TOPLEVEL); - gtk_window_set_resizable (GTK_WINDOW (window), FALSE); - gtk_widget_set_size_request (window, 400,400); - frame = gdk_pixbuf_new (GDK_COLORSPACE_RGB, gdk_pixbuf_get_has_alpha(i) - , gdk_pixbuf_get_bits_per_sample(i) , 400,400); - - g_signal_connect (window, "destroy", G_CALLBACK (cleanup_callback), frame); - - buffer = gdk_pixbuf_scale_simple(i,400,400,GDK_INTERP_HYPER); - da = gtk_drawing_area_new(); - g_signal_connect(da,"expose_event",G_CALLBACK(expose_cb),frame); - - vbox = gtk_vbox_new(FALSE,5); - gtk_container_add (GTK_CONTAINER (window), vbox); - gtk_box_pack_start(GTK_BOX(vbox),da,TRUE,TRUE,0); - gtk_box_pack_start(GTK_BOX(vbox),gtk_label_new("mild7@users.sourceforge.net"),FALSE,FALSE,5); - gtk_window_set_transient_for (GTK_WINDOW(window),GTK_WINDOW(MainWindow)); - gtk_window_set_title(GTK_WINDOW(window),_("Contgratulations you found an easter egg!")); - - timeout_id = gtk_timeout_add (50, timeout, frame); - gtk_widget_show_all(window); -} - -gboolean image_button_event (GtkWidget *widget, - GdkEventButton *event, - gpointer user_data) { - - if (event->type == GDK_2BUTTON_PRESS) { - gtk_dialog_response(GTK_DIALOG(user_data),1); - create_easteregg_window(); - return TRUE; - } - - return FALSE; -} - -void unset_can_focus(GtkWidget* widget,gpointer data) { - - g_object_set(widget,"can-focus",FALSE,NULL); -} - -void create_about_window() { - GtkWidget* window1; - GtkWidget *image1; - GtkWidget *label1; - GtkWidget* hbox; - GtkWidget* ebox; - GtkWidget* scroller; - GtkTextBuffer* textbuffer; - GtkWidget* textview; - GtkTextMark* mark; - GtkTextIter end; - GString* text = g_string_new(""); - - window1 = gtk_dialog_new_with_buttons("Mplinuxman",MainWindow, - GTK_DIALOG_MODAL & - GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_STOCK_CLOSE,GTK_RESPONSE_OK,NULL); - - hbox = gtk_hbox_new(FALSE,0); - gtk_widget_show(hbox); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(window1)->vbox),hbox,FALSE,FALSE,5); -// gtk_container_add (GTK_CONTAINER(GTK_DIALOG(window1)->vbox), hbox); - //gtk_dialog_set_has_separator (GTK_DIALOG(window1),FALSE); - gtk_container_set_border_width(GTK_CONTAINER(window1),5); - gtk_window_set_default_size(GTK_WINDOW(window1),400,300); - image1 = gtk_image_new_from_pixbuf(MW_GET("mp_icon")); - gtk_misc_set_alignment(GTK_MISC(image1),0,0); - ebox = gtk_event_box_new(); - gtk_container_add(GTK_CONTAINER(ebox),image1); - g_signal_connect(ebox,"button-press-event",G_CALLBACK(image_button_event),window1); - gtk_widget_show (image1); - gtk_widget_show (ebox); - gtk_box_pack_end(GTK_BOX(hbox),ebox,FALSE,FALSE,0); - g_string_printf(text, "Mplinuxman version %s\n" - ,MP_VERSION); - label1 = gtk_label_new(""); - gtk_label_set_markup(GTK_LABEL(label1), text->str); - - gtk_widget_show (label1); - gtk_box_pack_start(GTK_BOX(hbox),label1,FALSE,FALSE,0); - - scroller = gtk_scrolled_window_new(NULL,NULL); - gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroller), - GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); - gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scroller), - GTK_SHADOW_IN); - textbuffer = gtk_text_buffer_new(NULL); - gtk_text_buffer_create_tag(GTK_TEXT_BUFFER(textbuffer),"bold", "weight", - PANGO_WEIGHT_BOLD, NULL); - gtk_text_buffer_create_tag(GTK_TEXT_BUFFER(textbuffer),"blue", "foreground", - "blue", NULL); - - gtk_text_buffer_get_iter_at_offset (GTK_TEXT_BUFFER(textbuffer), &end, -1); - - gtk_text_buffer_insert(GTK_TEXT_BUFFER(textbuffer), &end , "URL: ",-1); - gtk_text_buffer_insert_with_tags_by_name (GTK_TEXT_BUFFER(textbuffer), &end, - "http://mplinuxman.sourceforge.net\n\n",-1, "blue" ,NULL); - gtk_text_buffer_insert(GTK_TEXT_BUFFER(textbuffer), &end , "Help: ",-1); - gtk_text_buffer_insert_with_tags_by_name (GTK_TEXT_BUFFER(textbuffer), &end, - "http://mplinuxman.sourceforge.net/index.php?page=2\n\n",-1, "blue" ,NULL); - gtk_text_buffer_insert_with_tags_by_name (GTK_TEXT_BUFFER(textbuffer), &end, - "Languages\n",-1, "bold" ,NULL); - gtk_text_buffer_insert(GTK_TEXT_BUFFER(textbuffer), &end , - "If you would like to contribute a translation to your " - "native language, please email the translation file " - "to me.\n\n",-1); - gtk_text_buffer_insert_with_tags_by_name (GTK_TEXT_BUFFER(textbuffer), &end, - "Credits\n",-1, "bold" ,NULL); - gtk_text_buffer_insert(GTK_TEXT_BUFFER(textbuffer), &end , - "Written by Tim O'Brien ",-1); - gtk_text_buffer_insert_with_tags_by_name (GTK_TEXT_BUFFER(textbuffer), &end, - "mild7@users.sourceforge.net\n\n",-1, "blue" ,NULL); - gtk_text_buffer_insert_with_tags_by_name (GTK_TEXT_BUFFER(textbuffer), &end, - "Testing and patches\n",-1, "bold" ,NULL); - gtk_text_buffer_insert(GTK_TEXT_BUFFER(textbuffer), &end , - "Kazutaka Manabe\nChristian von Eichel-Streiber\n" - "Tholom Kiely\nKris Meeusen\n\n",-1); - gtk_text_buffer_insert_with_tags_by_name (GTK_TEXT_BUFFER(textbuffer), &end, - "Translations\n",-1, "bold" ,NULL); - gtk_text_buffer_insert(GTK_TEXT_BUFFER(textbuffer), &end , - "French Thomas Jost\n" - "Spanish Marcos Mainar\n" - "Dutch Bosko Andjelkovic\n" - "German Thomas Ritter\n" - "Japanese Shimada Hirofumi\n",-1); - - textview = gtk_text_view_new_with_buffer(GTK_TEXT_BUFFER(textbuffer)); - gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(textview), GTK_WRAP_WORD); -// gtk_text_view_set_right_margin(GTK_TEXT_VIEW(textview), 80); - gtk_text_view_set_editable(GTK_TEXT_VIEW(textview), FALSE); - - gtk_container_add(GTK_CONTAINER(scroller), textview); - //gtk_box_pack_start(GTK_BOX(GTK_DIALOG(window1)->vbox),gtk_hseparator_new(),FALSE,FALSE,0); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(window1)->vbox),scroller,TRUE,TRUE,0); - gtk_dialog_set_has_separator (GTK_DIALOG(window1),FALSE); - gtk_container_foreach(GTK_CONTAINER(GTK_DIALOG(window1)->action_area), - ButtonRelief,(gpointer)GTK_RELIEF_NONE); - gtk_container_foreach(GTK_CONTAINER(GTK_DIALOG(window1)->action_area), - unset_can_focus,(gpointer)NULL); - - gtk_widget_show_all(window1); - - gtk_text_buffer_get_iter_at_offset (GTK_TEXT_BUFFER(textbuffer), &end, 0); - gtk_text_buffer_place_cursor(GTK_TEXT_BUFFER(textbuffer), &end); - mark = gtk_text_buffer_create_mark(GTK_TEXT_BUFFER(textbuffer),"start_mark", - &end, FALSE); - gtk_text_view_scroll_to_mark(GTK_TEXT_VIEW(textview), mark, 0, TRUE, 0, 0); + const char **tem; + const char *authors[] = { + "", + "Tim O'Brien ", + "Boško Andjelković ", + "", + NULL, + "Tholom Kiely", + "Kazutaka Manabe", + "Kris Meeusen", + "Christian von Eichel-Streiber", + "", + NULL + }; - gtk_dialog_run(GTK_DIALOG(window1)); - gtk_widget_destroy(window1); - g_string_free(text,TRUE); + authors[0] = _("Lead developers:"); + for (tem = authors; *tem != NULL; tem++) + ; + *tem = _("Testing and patches:"); + + static const gchar copyright[] = \ + "Copyright \xc2\xa9 2002-2006 Tim O'Brien\n" + "Copyright \xc2\xa9 2006 Boško Andjelković\n"; + + gtk_show_about_dialog (GTK_WINDOW (MainWindow), + "authors", (const char **) authors, + "comments", _("Mplinuxman is a file manager program for the MPMan F60,F55,F50, and d-link dmp-220 USB portable MP3 players."), + "copyright", copyright, + "logo", MW_GET("mp_icon"), + "translator-credits", "Boško Andjelković\nShimada Hirofumi\nThomas Jost\nMarcos Mainar\nThomas Ritter\n", + "version", MP_VERSION, + "website", "http://mplinuxman.sourceforge.net", + "name", "Mplinuxman", + NULL); } diff -Nru mplinuxman-1.4/mplinuxman.desktop mplinuxman-1.5/mplinuxman.desktop --- mplinuxman-1.4/mplinuxman.desktop 1969-12-31 21:00:00.000000000 -0300 +++ mplinuxman-1.5/mplinuxman.desktop 2006-12-21 11:18:39.000000000 -0300 @@ -0,0 +1,14 @@ +[Desktop Entry] +Version=1.0 +Encoding=UTF-8 +Name=Mplinuxman +Name[nl]=Mplinuxman +Comment=Manage your MPMan portable mp3 player +Comment[nl]=Beheer uw MPMan draagbare mp3 speler +Exec=mplinuxman +Icon=/usr/local/share/pixmaps/mplinuxman.xpm +Terminal=false +Type=Application +StartupNotify=true +Categories=GNOME;Application;Utility; +GenericName[nl_NL]= diff -Nru mplinuxman-1.4/open.xpm mplinuxman-1.5/open.xpm --- mplinuxman-1.4/open.xpm 2003-05-21 18:34:40.000000000 -0300 +++ mplinuxman-1.5/open.xpm 1969-12-31 21:00:00.000000000 -0300 @@ -1,30 +0,0 @@ -/* XPM */ -static char * open_xpm[] = { -"16 14 13 1", -" c None", -". c #FFFFFF", -"+ c #808080", -"@ c #E0E0D0", -"# c #4F484F", -"$ c #909000", -"% c #FFF8EF", -"& c #CFC860", -"* c #003090", -"= c #7F7800", -"- c #FFC890", -"; c #FFF890", -"> c #2F3000", -".......+@#......", -"...$$$+%%@#.....", -"..$&&+%%%%@#....", -"..$&+%%%*%%@#==.", -"..$+@@@*@*@@@#=.", -"$$$$$$$$$$$$@@#.", -"$%%%%%%%%%-&$@@#", -"$%;;;;;;;-;-$@>.", -".$;;;-;;-;--&$>.", -".$;;;;;-;-;--$>.", -".$;-;;-;-;-;-$>.", -"..$-;-;-;-;--$>.", -"..$$$$$$$$$$$$>.", -"...>>>>>>>>>>>.."}; diff -Nru mplinuxman-1.4/po/CVS/Entries mplinuxman-1.5/po/CVS/Entries --- mplinuxman-1.4/po/CVS/Entries 2004-01-11 10:16:39.000000000 -0300 +++ mplinuxman-1.5/po/CVS/Entries 1969-12-31 21:00:00.000000000 -0300 @@ -1,7 +0,0 @@ -/es.po/1.3/Sun Jan 11 12:51:33 2004// -/fr.po/1.2/Sun Jan 11 12:51:33 2004// -D/german compiled//// -/install.sh/1.1.1.1/Wed May 21 21:34:46 2003// -/ja.po/1.1/Sun Jan 11 12:50:29 2004// -/mplinuxman.pot/1.2/Sun Jan 11 12:51:33 2004// -/nl.po/1.2/Sun Jan 11 12:51:33 2004// diff -Nru mplinuxman-1.4/po/CVS/Repository mplinuxman-1.5/po/CVS/Repository --- mplinuxman-1.4/po/CVS/Repository 2004-01-11 10:16:39.000000000 -0300 +++ mplinuxman-1.5/po/CVS/Repository 1969-12-31 21:00:00.000000000 -0300 @@ -1 +0,0 @@ -mplinuxman/po diff -Nru mplinuxman-1.4/po/CVS/Root mplinuxman-1.5/po/CVS/Root --- mplinuxman-1.4/po/CVS/Root 2004-01-11 10:16:39.000000000 -0300 +++ mplinuxman-1.5/po/CVS/Root 1969-12-31 21:00:00.000000000 -0300 @@ -1 +0,0 @@ -:ext:mild7@cvs.sourceforge.net:/cvsroot/mplinuxman diff -Nru mplinuxman-1.4/po/de.po mplinuxman-1.5/po/de.po --- mplinuxman-1.4/po/de.po 1969-12-31 21:00:00.000000000 -0300 +++ mplinuxman-1.5/po/de.po 2004-12-07 08:43:09.000000000 -0300 @@ -0,0 +1,615 @@ +# translation of de.po to +# translation of de.po to +# Copyright (C) 2004 Free Software Foundation, Inc. +# Thomas Ritter , 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: de\n" +"POT-Creation-Date: 2004-01-12 01:29+1300\n" +"PO-Revision-Date: 2004-12-05 17:08+0100\n" +"Last-Translator: Thomas Ritter \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.9.1\n" + +#: main.c:156 +msgid "Mplinuxman is already running\n" +msgstr "Mplinuxman läuft bereits\n" + +#: main.c:161 +msgid "" +"Found /tmp/mplinuxman.pid. Mplinuxman might be already running.\n" +"\n" +"If the program crashed before. Please report it to\n" +"http://mplinuxman.sourceforge.net\n" +"\n" +"Do you want to continue loading anyway?" +msgstr "" +"/tmp/mplinuxman.pid wurde gefunden. Mplinuxman könnte bereits gestartet sein\n" +"\n" +"Wenn das Programm zuvor abstürzte, schreiben Sie bitte an\n" +"http://mplinuxman.sourceforge.net\n" +"\n" +"Wollen Sie trotzdem weiter machen?" + +#: main.c:171 +msgid "gthreads not supported\n" +msgstr "gthreads werden nicht unterstützt\n" + +#: dirdialog.c:388 +msgid "Select directory" +msgstr "Wähle einen Ordner aus" + +#: dirdialog.c:413 +msgid "Show Hidden Directories" +msgstr "Zeige versteckte Ordner" + +#: miscwindow.c:59 +msgid "File Info " +msgstr "Datei-Info" + +#: miscwindow.c:76 +msgid "ID3 Tag" +msgstr "ID3 Tag" + +#: miscwindow.c:84 +msgid "MPEG Info" +msgstr "MPEG Info" + +#: miscwindow.c:93 miscwindow.c:234 +msgid "Title" +msgstr "Titel" + +#: miscwindow.c:93 +msgid "Artist" +msgstr "Interpret" + +#: miscwindow.c:93 +msgid "Album" +msgstr "Album" + +#: miscwindow.c:93 +msgid "Comment" +msgstr "Kommentar" + +#: miscwindow.c:111 +msgid "Version" +msgstr "Version" + +#: miscwindow.c:111 +msgid "layer" +msgstr "layer" + +#: miscwindow.c:111 +msgid "Bitrate" +msgstr "Bit-Rate" + +#: miscwindow.c:111 +msgid "Samplerate" +msgstr "Sample-Rate" + +#: miscwindow.c:111 +msgid "stereo" +msgstr "Stereo" + +#: miscwindow.c:111 +msgid "copyright" +msgstr "Copyright" + +#: mainwindow.c:1689 mainwindow.c:1759 mainwindow.c:1796 miscwindow.c:111 +msgid "size" +msgstr "Grösse" + +#: miscwindow.c:124 miscwindow.c:126 +msgid "no" +msgstr "Nein" + +#: miscwindow.c:124 miscwindow.c:126 +msgid "yes" +msgstr "Ja" + +#: miscwindow.c:197 +msgid "Options" +msgstr "Optionen" + +#: miscwindow.c:207 +msgid "Interface" +msgstr "Interface" + +#: miscwindow.c:208 +msgid "Show toolbar text labels" +msgstr "Zeige Toolbar Text-Beschriftungen" + +#: miscwindow.c:210 +msgid "Try to connect to device on startup" +msgstr "Versuche, das Gerät beim Programmstart zu verbinden" + +#: miscwindow.c:212 +msgid "Load default playlist on startup" +msgstr "Lade Standard-Playlist beim Programmstart" + +#: miscwindow.c:214 +msgid "" +"Exit program when device is unplugged\n" +"requires hotplug support (/sbin/hotplug)" +msgstr "" +"Beende das Programm, wenn das Gerät nicht angeschlossen ist\n" +"benötigt hotplug-Unterstützung (/sbin/hotplug)" + +#: miscwindow.c:219 +msgid "MP3 player" +msgstr "MP3-Player" + +#: miscwindow.c:220 +#, c-format +msgid "Command to play mp3 (%f = selected filenames)" +msgstr "Befehl um MP3s abzuspielen (%F = ausgewählte Dateinamen)" + +#: miscwindow.c:226 +msgid "Command to stop playing mp3" +msgstr "Befehl, um das abspielende MP3 zu stoppen" + +#: miscwindow.c:235 +msgid "Use customized track title format" +msgstr "Benutze eigenes Track-Titel-Format" + +#: miscwindow.c:237 +msgid "Title format" +msgstr "Titel-Format" + +#: miscwindow.c:244 +#, c-format +msgid "%f File name" +msgstr "%f Dateiname" + +#: miscwindow.c:247 +#, c-format +msgid "%p Performer/artist" +msgstr "%p Interpret" + +#: miscwindow.c:250 +msgid "%a Album" +msgstr "%a Album" + +#: miscwindow.c:253 +msgid "%t Track name" +msgstr "%t Dateiname" + +#: miscwindow.c:256 +#, c-format +msgid "%c Comment" +msgstr "%c Kommentar" + +#: miscwindow.c:263 +msgid "Advanced" +msgstr "Fortgeschritten" + +#: miscwindow.c:264 +msgid "Specify vendor / product ID" +msgstr "Spezifiziere Verkäufer / Produkt-ID" + +#: miscwindow.c:267 +msgid "Device ID" +msgstr "Geräte-ID" + +#: miscwindow.c:284 +msgid "Enable logging" +msgstr "Aktiviere Aufzeichnung" + +#: miscwindow.c:528 +msgid "Contgratulations you found an easter egg!" +msgstr "Herzlichen Glückwunsch, du hast ein Osterei gefunden!" + +#: mainwindow.c:116 +msgid "Error Connecting Device " +msgstr "Fehler beim Verbinden des Geräts" + +#: mainwindow.c:117 +#, c-format +msgid "" +"%s\n" +"\n" +"Make sure the device is plugged into the USB port, or try reloading the USB " +"module" +msgstr "" +"%s\n" +"\n" +"Stellen Sie sicher, dass das Gerät am USB-Port angeschlossen ist, oder versuchen Sie, das USB-Modul erneut zu laden" + +#: mainwindow.c:122 +msgid "No device detected" +msgstr "Kein Gerät gefunden" + +#: mainwindow.c:125 +msgid "Error From Device" +msgstr "Fehler vom Gerät" + +#: mainwindow.c:126 +#, c-format +msgid "" +"%s\n" +"\n" +"The device reported an error" +msgstr "" +"%s\n" +"\n" +"Das Gerät schickte eine Fehlermeldung" + +#: mainwindow.c:129 mainwindow.c:144 +msgid "Error" +msgstr "Fehler" + +#: mainwindow.c:130 +#, c-format +msgid "" +"%s\n" +"\n" +"Make sure the requested directory or temporary directory is accessible" +msgstr "" +"%s\n" +"\n" +"Stellen Sie sicher, dass Sie auf den betreffenden Ordner zugreifen können" + +#: mainwindow.c:133 +msgid "USB Error" +msgstr "USB Fehler" + +#: mainwindow.c:134 +#, c-format +msgid "" +"%s\n" +"\n" +"Make sure the USB device is working properly" +msgstr "" +"%s\n" +"\n" +"Stellen Sie sicher, dass das Gerät funktionstüchtig ist" + +#: mainwindow.c:137 +msgid "Error Copying File" +msgstr "Fehler beim Kopieren der Datei" + +#: mainwindow.c:138 +#, c-format +msgid "" +"%s\n" +"\n" +"Make the device is not full" +msgstr "" +"%s\n" +"\n" +"Stellen Sie sicher, dass das Gerät nicht voll ist" + +#: mainwindow.c:145 +msgid "An unkown error occurred" +msgstr "Ein unbekannter Fehler trat auf" + +#: mainwindow.c:175 mainwindow.c:1512 +msgid "Reading Directory" +msgstr "Durchsuche Verzeichnis" + +#: mainwindow.c:236 +msgid "sending file" +msgstr "Schicke Datei" + +#: mainwindow.c:307 +#, c-format +msgid "%d File(s) selected %d,%03d k" +msgstr "%d Datei(en) ausgewählt %d,%30d KB" + +#: mainwindow.c:389 +msgid "free" +msgstr "frei" + +#: mainwindow.c:389 +msgid "total" +msgstr "gesamt" + +#: mainwindow.c:389 +msgid "used" +msgstr "gefüllt" + +#: mainwindow.c:487 +msgid "Internal memory selected" +msgstr "Geräte-Speicher ausgewählt" + +#: mainwindow.c:508 +msgid "SmartMedia card selected" +msgstr "SmartMedia-Karte ausgewählt" + +#: mainwindow.c:546 mainwindow.c:575 +msgid "Select File" +msgstr "Ausgewählte Datei" + +#: mainwindow.c:689 mainwindow.c:1525 +#, c-format +msgid "sending %s" +msgstr "sende %s" + +#: mainwindow.c:1054 +msgid "Select Playlist" +msgstr "Wähle Playlist aus" + +#: mainwindow.c:1069 +msgid "Loading Playlist" +msgstr "Lade Playlist" + +#: mainwindow.c:1089 +msgid "Loaded Playlist" +msgstr "Geladene Playlist" + +#: mainwindow.c:1092 +msgid "Error Loading Playlist" +msgstr "Fehler beim Laden der Playlist" + +#: mainwindow.c:1112 +msgid "Save Playlist" +msgstr "Speichere Playlist" + +#: mainwindow.c:1143 +msgid "Saved Playlist" +msgstr "Gespeicherte Playlist" + +#: mainwindow.c:1146 +msgid "Error Saving Playlist" +msgstr "Fehler beim Speichern der Playlist" + +#: mainwindow.c:1186 +msgid "" +"This will delete all data in Flash Memory\n" +"Would you like to continue?" +msgstr "" +"Dies wird alle Daten im Geräte-Speicher löschen\n" +"Möchten Sie weiterfahren?" + +#: mainwindow.c:1189 +msgid "" +"This will delete all data in SmartMedia\n" +"Would you like to continue?" +msgstr "" +"Dies wird alle Daten auf der SmartMedia-Karte löschen\n" +"Möchten Sie weiterfahren?" + +#: mainwindow.c:1194 +msgid "Formatting Internal Memory" +msgstr "Lösche Geräte-Speicher" + +#: mainwindow.c:1206 +msgid "/_File" +msgstr "/_Datei" + +#: mainwindow.c:1207 +msgid "/File/_Add" +msgstr "/Datei/_Hinzufügen" + +#: mainwindow.c:1208 +msgid "/File/Add/Directory" +msgstr "/Datei/Hinzufügen/Ordner" + +#: mainwindow.c:1209 +msgid "/File/Add/File" +msgstr "/Datei/Hinzufügen/Datei" + +#: mainwindow.c:1210 mainwindow.c:1214 mainwindow.c:1216 +msgid "/File/sep1" +msgstr "/Datei/sep1 " + +#: mainwindow.c:1211 +msgid "/File/_Send" +msgstr "/Datei/_Senden" + +#: mainwindow.c:1212 +msgid "/File/_Remove" +msgstr "/Datei/_Entfernen" + +#: mainwindow.c:1213 +msgid "/File/_Properties" +msgstr "/Datei/_Eigenschaften" + +#: mainwindow.c:1215 +msgid "/File/Send non mp3 file" +msgstr "/Datei/Senden sonstiger Daten" + +#: mainwindow.c:1217 +msgid "/File/_Quit" +msgstr "/Datei/_Beenden" + +#: mainwindow.c:1218 +msgid "/_Mpman" +msgstr "/_Mpman" + +#: mainwindow.c:1219 +msgid "/Mpman/_Rfresh" +msgstr "/Mpman/_Aktualisieren" + +#: mainwindow.c:1220 +msgid "/Mpman/_Get" +msgstr "/Mpman/_Holen" + +#: mainwindow.c:1221 +msgid "/Mpman/_Delete" +msgstr "/Mpman/_Löschen" + +#: mainwindow.c:1222 +msgid "/Mpman/sep1" +msgstr "/Mpman/sep1" + +#: mainwindow.c:1223 +msgid "/Mpman/Format Internal Memory" +msgstr "/Mpman/Geräte-Speicher löschen" + +#: mainwindow.c:1224 +msgid "/Mpman/Format SmartMedia card" +msgstr "/Mpman/SmartMedia-Karte löschen" + +#: mainwindow.c:1225 +msgid "/_Edit" +msgstr "/_Bearbeiten" + +#: mainwindow.c:1226 +msgid "/Edit/Select _All Ctrl+A" +msgstr "/Bearbeiten/Alles auswählen Ctrl+A" + +#: mainwindow.c:1227 +msgid "/Edit/sep1" +msgstr "/Bearbeiten/sep1" + +#: mainwindow.c:1228 +msgid "/Edit/_Options" +msgstr "/Bearbeiten/_Einstellungen" + +#: mainwindow.c:1229 +msgid "/_Playlist" +msgstr "/_Playlist" + +#: mainwindow.c:1230 +msgid "/Playlist/_Load" +msgstr "/Playlist/_Laden" + +#: mainwindow.c:1231 +msgid "/Playlist/_Add" +msgstr "/Playlist/_Hinzufügen" + +#: mainwindow.c:1232 +msgid "/Playlist/sep1" +msgstr "/Playlist/sep1 " + +#: mainwindow.c:1233 +msgid "/Playlist/Sa_ve as" +msgstr "/Playlist/Speichern unter" + +#: mainwindow.c:1234 +msgid "/Playlist/Save as Default" +msgstr "/Playlist/Speichern unter Standard" + +#: mainwindow.c:1235 +msgid "/Help" +msgstr "/Hilfe" + +#: mainwindow.c:1236 +msgid "/Help/About" +msgstr "/Hilfe/Über" + +#: mainwindow.c:1271 mainwindow.c:1336 +msgid "Send" +msgstr "Schicken" + +#: mainwindow.c:1272 +msgid "Send selected files to Mpman F60" +msgstr "Schicke ausgewählte Dateien auf den Mpman F60" + +#: mainwindow.c:1280 +msgid "Add Directory" +msgstr "Ordner hinzufügen" + +#: mainwindow.c:1284 +msgid "Add File" +msgstr "Datei hinzufügen" + +#: mainwindow.c:1291 +msgid "Add" +msgstr "Hinzufügen" + +#: mainwindow.c:1292 +msgid "Add files to list" +msgstr "Dateien zur Liste hinzufügen" + +#: mainwindow.c:1302 +msgid "Remove" +msgstr "Entfernen" + +#: mainwindow.c:1303 +msgid "Remove selected files from list" +msgstr "Ausgewählte Dateien von der Liste entfernen" + +#: mainwindow.c:1311 +msgid "Properties" +msgstr "Eigenschaften" + +#: mainwindow.c:1312 +msgid "Show file properties" +msgstr "Zeige Datei-Eigenschaften" + +#: mainwindow.c:1323 +msgid "Random" +msgstr "Zufallsliste" + +#: mainwindow.c:1324 +msgid "Create random list to fill available memory" +msgstr "Erzeuge Zufallsliste, die den noch freien Platz auffüllt" + +#: mainwindow.c:1337 +msgid "Send selected files to PC" +msgstr "Sende die ausgewählten Dateien auf den PC" + +#: mainwindow.c:1345 +msgid "Refresh List" +msgstr "Aktualisiere Liste" + +#: mainwindow.c:1346 +msgid "Connect/Refresh index" +msgstr "Verbinde/Aktualisiere Index" + +#: mainwindow.c:1354 +msgid "Reorder" +msgstr "Ordne neu" + +#: mainwindow.c:1355 +msgid "Update MP3 player with reordered list" +msgstr "Erneuere den MP3-Player mit der neu geordneten Liste" + +#: mainwindow.c:1363 +msgid "Delete" +msgstr "Löschen" + +#: mainwindow.c:1364 +msgid "Delete selected files" +msgstr "Lösche ausgewählte Dateien" + +#: mainwindow.c:1585 +msgid "Flash Memory" +msgstr "Geräte-Speicher" + +#: mainwindow.c:1588 +msgid "Select internal flash memory" +msgstr "Wähle den Geräte-Speicher aus" + +#: mainwindow.c:1621 +msgid "SmartMedia" +msgstr "SmartMedia-Karte" + +#: mainwindow.c:1624 +msgid "Select SmartMedia card memory" +msgstr "Wähle die SmartMedia-Karte aus" + +#: mainwindow.c:1675 mainwindow.c:1748 mainwindow.c:1785 +msgid "Name" +msgstr "Name" + +#: mainwindow.c:1709 +msgid "Play Files" +msgstr "Spiele Dateien ab" + +#: mainwindow.c:1713 +msgid "Stop playing" +msgstr "Abspielen stoppen" + +#: mainwindow.c:1717 +msgid "Send Files to Mpman" +msgstr "Sende Dateien zum Mpman" + +#: mainwindow.c:1721 +msgid "Remove Files" +msgstr "Entferne Dateien" + +#: mainwindow.c:1725 +msgid "File Properties" +msgstr "Datei-Eigenschaften" + +#: waitdialog.c:84 +msgid "Minimize" +msgstr "Minimiere" + diff -Nru mplinuxman-1.4/po/german compiled/CVS/Entries mplinuxman-1.5/po/german compiled/CVS/Entries --- mplinuxman-1.4/po/german compiled/CVS/Entries 2004-01-11 10:16:39.000000000 -0300 +++ mplinuxman-1.5/po/german compiled/CVS/Entries 1969-12-31 21:00:00.000000000 -0300 @@ -1 +0,0 @@ -/mplinuxman.mo/1.1/Sun Jan 11 12:53:22 2004// diff -Nru mplinuxman-1.4/po/german compiled/CVS/Repository mplinuxman-1.5/po/german compiled/CVS/Repository --- mplinuxman-1.4/po/german compiled/CVS/Repository 2004-01-11 10:16:39.000000000 -0300 +++ mplinuxman-1.5/po/german compiled/CVS/Repository 1969-12-31 21:00:00.000000000 -0300 @@ -1 +0,0 @@ -mplinuxman/po/german compiled diff -Nru mplinuxman-1.4/po/german compiled/CVS/Root mplinuxman-1.5/po/german compiled/CVS/Root --- mplinuxman-1.4/po/german compiled/CVS/Root 2004-01-11 10:16:39.000000000 -0300 +++ mplinuxman-1.5/po/german compiled/CVS/Root 1969-12-31 21:00:00.000000000 -0300 @@ -1 +0,0 @@ -:ext:mild7@cvs.sourceforge.net:/cvsroot/mplinuxman diff -Nru mplinuxman-1.4/po/mplinuxman.pot mplinuxman-1.5/po/mplinuxman.pot --- mplinuxman-1.4/po/mplinuxman.pot 2004-01-11 09:51:33.000000000 -0300 +++ mplinuxman-1.5/po/mplinuxman.pot 2006-10-25 18:03:52.000000000 -0300 @@ -1,12 +1,14 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR Free Software Foundation, Inc. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2004-01-12 01:29+1300\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2006-10-25 23:01+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -32,14 +34,6 @@ msgid "gthreads not supported\n" msgstr "" -#: dirdialog.c:388 -msgid "Select directory" -msgstr "" - -#: dirdialog.c:413 -msgid "Show Hidden Directories" -msgstr "" - #: miscwindow.c:59 msgid "File Info " msgstr "" @@ -92,7 +86,7 @@ msgid "copyright" msgstr "" -#: mainwindow.c:1689 mainwindow.c:1759 mainwindow.c:1796 miscwindow.c:111 +#: miscwindow.c:111 mainwindow.c:1740 mainwindow.c:1810 mainwindow.c:1847 msgid "size" msgstr "" @@ -162,6 +156,7 @@ msgstr "" #: miscwindow.c:250 +#, c-format msgid "%a Album" msgstr "" @@ -190,15 +185,30 @@ msgid "Enable logging" msgstr "" -#: miscwindow.c:528 +#: miscwindow.c:527 msgid "Contgratulations you found an easter egg!" msgstr "" -#: mainwindow.c:116 +#: miscwindow.c:555 +msgid "Lead developers:" +msgstr "" + +#: miscwindow.c:560 +msgid "Testing and patches:" +msgstr "" + +#: miscwindow.c:575 +msgid "" +"Mplinuxman is a file manager program for the MPMan F60,F55,F50, and d-link " +"dmp-220 USB portable MP3 players." +msgstr "" + +#: mainwindow.c:139 +#, c-format msgid "Error Connecting Device " msgstr "" -#: mainwindow.c:117 +#: mainwindow.c:140 #, c-format msgid "" "%s\n" @@ -207,15 +217,16 @@ "module" msgstr "" -#: mainwindow.c:122 +#: mainwindow.c:145 msgid "No device detected" msgstr "" -#: mainwindow.c:125 +#: mainwindow.c:148 +#, c-format msgid "Error From Device" msgstr "" -#: mainwindow.c:126 +#: mainwindow.c:149 #, c-format msgid "" "%s\n" @@ -223,11 +234,12 @@ "The device reported an error" msgstr "" -#: mainwindow.c:129 mainwindow.c:144 +#: mainwindow.c:152 mainwindow.c:167 +#, c-format msgid "Error" msgstr "" -#: mainwindow.c:130 +#: mainwindow.c:153 #, c-format msgid "" "%s\n" @@ -235,11 +247,12 @@ "Make sure the requested directory or temporary directory is accessible" msgstr "" -#: mainwindow.c:133 +#: mainwindow.c:156 +#, c-format msgid "USB Error" msgstr "" -#: mainwindow.c:134 +#: mainwindow.c:157 #, c-format msgid "" "%s\n" @@ -247,11 +260,12 @@ "Make sure the USB device is working properly" msgstr "" -#: mainwindow.c:137 +#: mainwindow.c:160 +#, c-format msgid "Error Copying File" msgstr "" -#: mainwindow.c:138 +#: mainwindow.c:161 #, c-format msgid "" "%s\n" @@ -259,325 +273,364 @@ "Make the device is not full" msgstr "" -#: mainwindow.c:145 +#: mainwindow.c:168 +#, c-format msgid "An unkown error occurred" msgstr "" -#: mainwindow.c:175 mainwindow.c:1512 -msgid "Reading Directory" -msgstr "" - -#: mainwindow.c:236 -msgid "sending file" -msgstr "" - -#: mainwindow.c:307 +#: mainwindow.c:246 #, c-format msgid "%d File(s) selected %d,%03d k" msgstr "" -#: mainwindow.c:389 +#: mainwindow.c:328 msgid "free" msgstr "" -#: mainwindow.c:389 +#: mainwindow.c:328 msgid "total" msgstr "" -#: mainwindow.c:389 +#: mainwindow.c:328 msgid "used" msgstr "" -#: mainwindow.c:487 +#: mainwindow.c:426 msgid "Internal memory selected" msgstr "" -#: mainwindow.c:508 +#: mainwindow.c:447 msgid "SmartMedia card selected" msgstr "" -#: mainwindow.c:546 mainwindow.c:575 -msgid "Select File" +#: mainwindow.c:469 +msgid "Add directory..." +msgstr "" + +#: mainwindow.c:486 mainwindow.c:1562 +msgid "Reading Directory" +msgstr "" + +#: mainwindow.c:531 +msgid "Add file..." +msgstr "" + +#: mainwindow.c:534 +msgid "Music Files" +msgstr "" + +#: mainwindow.c:586 +msgid "Send non-Mp3 file..." msgstr "" -#: mainwindow.c:689 mainwindow.c:1525 +#: mainwindow.c:596 +msgid "sending file" +msgstr "" + +#: mainwindow.c:702 mainwindow.c:1576 #, c-format msgid "sending %s" msgstr "" -#: mainwindow.c:1054 -msgid "Select Playlist" +#: mainwindow.c:894 +msgid "Select save directory..." +msgstr "" + +#: mainwindow.c:1066 +msgid "Select playlist..." msgstr "" -#: mainwindow.c:1069 +#: mainwindow.c:1068 mainwindow.c:1132 +msgid "Playlists" +msgstr "" + +#: mainwindow.c:1085 msgid "Loading Playlist" msgstr "" -#: mainwindow.c:1089 +#: mainwindow.c:1106 msgid "Loaded Playlist" msgstr "" -#: mainwindow.c:1092 +#: mainwindow.c:1110 msgid "Error Loading Playlist" msgstr "" -#: mainwindow.c:1112 -msgid "Save Playlist" +#: mainwindow.c:1130 +msgid "Save playlist..." msgstr "" -#: mainwindow.c:1143 +#: mainwindow.c:1168 msgid "Saved Playlist" msgstr "" -#: mainwindow.c:1146 +#: mainwindow.c:1171 msgid "Error Saving Playlist" msgstr "" -#: mainwindow.c:1186 +#: mainwindow.c:1215 msgid "" "This will delete all data in Flash Memory\n" "Would you like to continue?" msgstr "" -#: mainwindow.c:1189 +#: mainwindow.c:1219 +msgid "Formatting Internal Memory" +msgstr "" + +#: mainwindow.c:1223 msgid "" "This will delete all data in SmartMedia\n" "Would you like to continue?" msgstr "" -#: mainwindow.c:1194 -msgid "Formatting Internal Memory" +#: mainwindow.c:1228 +msgid "Formatting SmartMedia" msgstr "" -#: mainwindow.c:1206 +#: mainwindow.c:1232 +msgid "" +"This will format SmartMedia for camera\n" +"Would you like to continue?" +msgstr "" + +#: mainwindow.c:1237 +msgid "Formatting SmartMedia for camera" +msgstr "" + +#: mainwindow.c:1255 msgid "/_File" msgstr "" -#: mainwindow.c:1207 +#: mainwindow.c:1256 msgid "/File/_Add" msgstr "" -#: mainwindow.c:1208 -msgid "/File/Add/Directory" +#: mainwindow.c:1257 +msgid "/File/Add/Directory..." msgstr "" -#: mainwindow.c:1209 -msgid "/File/Add/File" +#: mainwindow.c:1258 +msgid "/File/Add/File..." msgstr "" -#: mainwindow.c:1210 mainwindow.c:1214 mainwindow.c:1216 +#: mainwindow.c:1259 mainwindow.c:1263 mainwindow.c:1265 msgid "/File/sep1" msgstr "" -#: mainwindow.c:1211 -msgid "/File/_Send" +#: mainwindow.c:1260 +msgid "/File/_Send..." msgstr "" -#: mainwindow.c:1212 +#: mainwindow.c:1261 msgid "/File/_Remove" msgstr "" -#: mainwindow.c:1213 +#: mainwindow.c:1262 msgid "/File/_Properties" msgstr "" -#: mainwindow.c:1215 -msgid "/File/Send non mp3 file" +#: mainwindow.c:1264 +msgid "/File/Send non mp3 file..." msgstr "" -#: mainwindow.c:1217 +#: mainwindow.c:1266 msgid "/File/_Quit" msgstr "" -#: mainwindow.c:1218 +#: mainwindow.c:1267 msgid "/_Mpman" msgstr "" -#: mainwindow.c:1219 +#: mainwindow.c:1268 msgid "/Mpman/_Rfresh" msgstr "" -#: mainwindow.c:1220 -msgid "/Mpman/_Get" +#: mainwindow.c:1269 +msgid "/Mpman/_Get..." msgstr "" -#: mainwindow.c:1221 +#: mainwindow.c:1270 msgid "/Mpman/_Delete" msgstr "" -#: mainwindow.c:1222 +#: mainwindow.c:1271 msgid "/Mpman/sep1" msgstr "" -#: mainwindow.c:1223 +#: mainwindow.c:1272 msgid "/Mpman/Format Internal Memory" msgstr "" -#: mainwindow.c:1224 +#: mainwindow.c:1273 msgid "/Mpman/Format SmartMedia card" msgstr "" -#: mainwindow.c:1225 +#: mainwindow.c:1274 +msgid "/Mpman/Format SmartMedia for camera" +msgstr "" + +#: mainwindow.c:1275 msgid "/_Edit" msgstr "" -#: mainwindow.c:1226 +#: mainwindow.c:1276 msgid "/Edit/Select _All Ctrl+A" msgstr "" -#: mainwindow.c:1227 +#: mainwindow.c:1277 msgid "/Edit/sep1" msgstr "" -#: mainwindow.c:1228 +#: mainwindow.c:1278 msgid "/Edit/_Options" msgstr "" -#: mainwindow.c:1229 +#: mainwindow.c:1279 msgid "/_Playlist" msgstr "" -#: mainwindow.c:1230 -msgid "/Playlist/_Load" +#: mainwindow.c:1280 +msgid "/Playlist/_Load..." msgstr "" -#: mainwindow.c:1231 -msgid "/Playlist/_Add" +#: mainwindow.c:1281 +msgid "/Playlist/_Add..." msgstr "" -#: mainwindow.c:1232 +#: mainwindow.c:1282 msgid "/Playlist/sep1" msgstr "" -#: mainwindow.c:1233 -msgid "/Playlist/Sa_ve as" +#: mainwindow.c:1283 +msgid "/Playlist/Sa_ve as..." msgstr "" -#: mainwindow.c:1234 +#: mainwindow.c:1284 msgid "/Playlist/Save as Default" msgstr "" -#: mainwindow.c:1235 +#: mainwindow.c:1285 msgid "/Help" msgstr "" -#: mainwindow.c:1236 +#: mainwindow.c:1286 msgid "/Help/About" msgstr "" -#: mainwindow.c:1271 mainwindow.c:1336 +#: mainwindow.c:1321 mainwindow.c:1386 msgid "Send" msgstr "" -#: mainwindow.c:1272 +#: mainwindow.c:1322 msgid "Send selected files to Mpman F60" msgstr "" -#: mainwindow.c:1280 +#: mainwindow.c:1330 msgid "Add Directory" msgstr "" -#: mainwindow.c:1284 +#: mainwindow.c:1334 msgid "Add File" msgstr "" -#: mainwindow.c:1291 +#: mainwindow.c:1341 msgid "Add" msgstr "" -#: mainwindow.c:1292 +#: mainwindow.c:1342 msgid "Add files to list" msgstr "" -#: mainwindow.c:1302 +#: mainwindow.c:1352 msgid "Remove" msgstr "" -#: mainwindow.c:1303 +#: mainwindow.c:1353 msgid "Remove selected files from list" msgstr "" -#: mainwindow.c:1311 +#: mainwindow.c:1361 msgid "Properties" msgstr "" -#: mainwindow.c:1312 +#: mainwindow.c:1362 msgid "Show file properties" msgstr "" -#: mainwindow.c:1323 +#: mainwindow.c:1373 msgid "Random" msgstr "" -#: mainwindow.c:1324 +#: mainwindow.c:1374 msgid "Create random list to fill available memory" msgstr "" -#: mainwindow.c:1337 +#: mainwindow.c:1387 msgid "Send selected files to PC" msgstr "" -#: mainwindow.c:1345 +#: mainwindow.c:1395 msgid "Refresh List" msgstr "" -#: mainwindow.c:1346 +#: mainwindow.c:1396 msgid "Connect/Refresh index" msgstr "" -#: mainwindow.c:1354 +#: mainwindow.c:1404 msgid "Reorder" msgstr "" -#: mainwindow.c:1355 +#: mainwindow.c:1405 msgid "Update MP3 player with reordered list" msgstr "" -#: mainwindow.c:1363 +#: mainwindow.c:1413 msgid "Delete" msgstr "" -#: mainwindow.c:1364 +#: mainwindow.c:1414 msgid "Delete selected files" msgstr "" -#: mainwindow.c:1585 +#: mainwindow.c:1636 msgid "Flash Memory" msgstr "" -#: mainwindow.c:1588 +#: mainwindow.c:1639 msgid "Select internal flash memory" msgstr "" -#: mainwindow.c:1621 +#: mainwindow.c:1672 msgid "SmartMedia" msgstr "" -#: mainwindow.c:1624 +#: mainwindow.c:1675 msgid "Select SmartMedia card memory" msgstr "" -#: mainwindow.c:1675 mainwindow.c:1748 mainwindow.c:1785 +#: mainwindow.c:1726 mainwindow.c:1799 mainwindow.c:1836 msgid "Name" msgstr "" -#: mainwindow.c:1709 +#: mainwindow.c:1760 msgid "Play Files" msgstr "" -#: mainwindow.c:1713 +#: mainwindow.c:1764 msgid "Stop playing" msgstr "" -#: mainwindow.c:1717 +#: mainwindow.c:1768 msgid "Send Files to Mpman" msgstr "" -#: mainwindow.c:1721 +#: mainwindow.c:1772 msgid "Remove Files" msgstr "" -#: mainwindow.c:1725 +#: mainwindow.c:1776 msgid "File Properties" msgstr "" diff -Nru mplinuxman-1.4/po/nl.po mplinuxman-1.5/po/nl.po --- mplinuxman-1.4/po/nl.po 2004-01-11 09:51:33.000000000 -0300 +++ mplinuxman-1.5/po/nl.po 2006-10-27 16:41:56.000000000 -0300 @@ -1,15 +1,15 @@ # Nederlandse vertaling van MpLinuxMan -# Copyright (C) 2003 Free Software Foundation, Inc. -# Bosko Andjelkovic , 2003. +# This file is distributed under the same license as the mplinuxman package. +# Boško Andjelković , 2006. # #, fuzzy msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2004-01-12 01:29+1300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: Bosko Andjelkovic \n" -"Language-Team: LANGUAGE \n" +"Project-Id-Version: 1.4\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2006-10-25 23:01+0200\n" +"PO-Revision-Date: 2006-10-27 19:45+1\n" +"Last-Translator: Boško Andjelković \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -19,7 +19,6 @@ msgstr "Mplinuxman draait reeds\n" #: main.c:161 -#, fuzzy msgid "" "Found /tmp/mplinuxman.pid. Mplinuxman might be already running.\n" "\n" @@ -38,14 +37,6 @@ msgid "gthreads not supported\n" msgstr "gthreads is niet ondersteund\n" -#: dirdialog.c:388 -msgid "Select directory" -msgstr "Selecteer map" - -#: dirdialog.c:413 -msgid "Show Hidden Directories" -msgstr "Toon Verborgen Mappen" - #: miscwindow.c:59 msgid "File Info " msgstr "Bestands Informatie" @@ -80,7 +71,7 @@ #: miscwindow.c:111 msgid "layer" -msgstr "layer" +msgstr "laag" #: miscwindow.c:111 msgid "Bitrate" @@ -98,7 +89,7 @@ msgid "copyright" msgstr "copyright" -#: mainwindow.c:1689 mainwindow.c:1759 mainwindow.c:1796 miscwindow.c:111 +#: miscwindow.c:111 mainwindow.c:1740 mainwindow.c:1810 mainwindow.c:1847 msgid "size" msgstr "grootte" @@ -112,7 +103,7 @@ #: miscwindow.c:197 msgid "Options" -msgstr "Opties" +msgstr "Voorkeuren" #: miscwindow.c:207 msgid "Interface" @@ -120,7 +111,7 @@ #: miscwindow.c:208 msgid "Show toolbar text labels" -msgstr "Toon werkbalk tekst labels" +msgstr "Toon werkbalk tekst" #: miscwindow.c:210 msgid "Try to connect to device on startup" @@ -145,69 +136,86 @@ #: miscwindow.c:220 #, c-format msgid "Command to play mp3 (%f = selected filenames)" -msgstr "Commando om mp3 af te spelen (%f = geselecteerde bestanden)" +msgstr "Opdracht om mp3 af te spelen (%f = geselecteerde bestanden)" #: miscwindow.c:226 msgid "Command to stop playing mp3" -msgstr "Commando om te stoppen met het afspelen van mp3" +msgstr "Opdracht om te stoppen met het afspelen van mp3" #: miscwindow.c:235 msgid "Use customized track title format" -msgstr "" +msgstr "Gebruik aangepast nummer titel formaat" #: miscwindow.c:237 msgid "Title format" -msgstr "" +msgstr "Titel formaat" #: miscwindow.c:244 #, c-format msgid "%f File name" -msgstr "" +msgstr "%f Bestandsnaam" #: miscwindow.c:247 #, c-format msgid "%p Performer/artist" -msgstr "" +msgstr "%p Artiest" #: miscwindow.c:250 -#, fuzzy +#, c-format msgid "%a Album" -msgstr "Album" +msgstr "%a Album" #: miscwindow.c:253 msgid "%t Track name" -msgstr "" +msgstr "%t Nummer naam" #: miscwindow.c:256 -#, fuzzy, c-format +#, c-format msgid "%c Comment" -msgstr "Commentaar" +msgstr "%c Commentaar" #: miscwindow.c:263 msgid "Advanced" -msgstr "" +msgstr "Geavanceerd" #: miscwindow.c:264 msgid "Specify vendor / product ID" -msgstr "" +msgstr "Specificeer fabrikant /product ID" #: miscwindow.c:267 msgid "Device ID" -msgstr "" +msgstr "Apparaat ID" #: miscwindow.c:284 msgid "Enable logging" -msgstr "" +msgstr "Houd logboek bij" -#: miscwindow.c:528 +#: miscwindow.c:527 msgid "Contgratulations you found an easter egg!" msgstr "Gefeliciteerd, u heeft een easter egg gevonden!" -#: mainwindow.c:116 +#: miscwindow.c:555 +msgid "Lead developers:" +msgstr "Hoofd ontwikkelaars:" + +#: miscwindow.c:560 +msgid "Testing and patches:" +msgstr "Testen en patches:" + +#: miscwindow.c:575 +msgid "" +"Mplinuxman is a file manager program for the MPMan F60,F55,F50, and d-link " +"dmp-220 USB portable MP3 players." +msgstr "" +"Mplinuxman is een bestandsbeheer programma voor de MPMan F60,F55,F50, en d-link " +"dmp-220 USB draagbare MP3 spelers." + +#: mainwindow.c:139 +#, c-format msgid "Error Connecting Device " msgstr "Fout tijdens het verbinden met het apparaat" -#: mainwindow.c:117 +#: mainwindow.c:140 #, c-format msgid "" "%s\n" @@ -217,18 +225,19 @@ msgstr "" "%s\n" "\n" -"Kijk of het apparaat aangesloten is op de USB poort, of probeer de USB " +"Controleer of het apparaat aangesloten is op de USB poort, of probeer de USB " "module opnieuwte laden" -#: mainwindow.c:122 +#: mainwindow.c:145 msgid "No device detected" -msgstr "Apparaat niet gedetecteerd" +msgstr "Apparaat niet gevonden" -#: mainwindow.c:125 +#: mainwindow.c:148 +#, c-format msgid "Error From Device" -msgstr "Apparaat fout" +msgstr "Fout van apparaat" -#: mainwindow.c:126 +#: mainwindow.c:149 #, c-format msgid "" "%s\n" @@ -239,11 +248,12 @@ "\n" "Het apparaat heeft een fout gemeld" -#: mainwindow.c:129 mainwindow.c:144 +#: mainwindow.c:152 mainwindow.c:167 +#, c-format msgid "Error" msgstr "Fout" -#: mainwindow.c:130 +#: mainwindow.c:153 #, c-format msgid "" "%s\n" @@ -252,13 +262,14 @@ msgstr "" "%s\n" "\n" -"Kijk of de geselecteerde map of tijdelijke map toegankelijk is." +"Controleer of de geselecteerde map of tijdelijke map toegankelijk is." -#: mainwindow.c:133 +#: mainwindow.c:156 +#, c-format msgid "USB Error" msgstr "USB fout" -#: mainwindow.c:134 +#: mainwindow.c:157 #, c-format msgid "" "%s\n" @@ -267,13 +278,14 @@ msgstr "" "%s\n" "\n" -"Kijk of het USB apparaat correct werkt" +"Controleer of het USB apparaat correct werkt" -#: mainwindow.c:137 +#: mainwindow.c:160 +#, c-format msgid "Error Copying File" msgstr "Fout bij kopiëren van bestand" -#: mainwindow.c:138 +#: mainwindow.c:161 #, c-format msgid "" "%s\n" @@ -282,84 +294,104 @@ msgstr "" "%s\n" "\n" -"Kijk of het apparaat niet vol is" +"Controleer of het apparaat niet vol is" -#: mainwindow.c:145 -#, fuzzy +#: mainwindow.c:168 +#, c-format msgid "An unkown error occurred" -msgstr "Onbekende fout heeft plaatsgevonden" +msgstr "Een onbekende fout heeft plaatsgevonden" -#: mainwindow.c:175 mainwindow.c:1512 -msgid "Reading Directory" -msgstr "Map aan het lezen" - -#: mainwindow.c:236 -msgid "sending file" -msgstr "bestand aan het verzenden" - -#: mainwindow.c:307 +#: mainwindow.c:246 #, c-format msgid "%d File(s) selected %d,%03d k" -msgstr "%d File(s) geselecteerd %d,%03d k" +msgstr "%d Bestand(en) geselecteerd %d,%03d k" -#: mainwindow.c:389 +#: mainwindow.c:328 msgid "free" msgstr "vrij" -#: mainwindow.c:389 +#: mainwindow.c:328 msgid "total" msgstr "totaal" -#: mainwindow.c:389 +#: mainwindow.c:328 msgid "used" msgstr "gebruikt" -#: mainwindow.c:487 +#: mainwindow.c:426 msgid "Internal memory selected" msgstr "Intern geheugen geselecteerd" -#: mainwindow.c:508 +#: mainwindow.c:447 msgid "SmartMedia card selected" msgstr "SmartMedia kaart geselecteerd" -#: mainwindow.c:546 mainwindow.c:575 -msgid "Select File" -msgstr "Selecteer bestand" +#: mainwindow.c:469 +msgid "Add directory..." +msgstr "Map toevoegen..." -#: mainwindow.c:689 mainwindow.c:1525 +#: mainwindow.c:486 mainwindow.c:1562 +msgid "Reading Directory" +msgstr "Map aan het lezen" + +#: mainwindow.c:531 +msgid "Add file..." +msgstr "Bestand toevoegen..." + +#: mainwindow.c:534 +msgid "Music Files" +msgstr "Muziek bestanden" + +#: mainwindow.c:586 +msgid "Send non-Mp3 file..." +msgstr "Non-mp3 bestand verzenden..." + +#: mainwindow.c:596 +msgid "sending file" +msgstr "bestand aan het verzenden" + +#: mainwindow.c:702 mainwindow.c:1576 #, c-format msgid "sending %s" msgstr "%s aan het verzenden" -#: mainwindow.c:1054 -msgid "Select Playlist" -msgstr "Selecteer Afspeellijst" +#: mainwindow.c:894 +msgid "Select save directory..." +msgstr "Selecteer map voor opslag..." + +#: mainwindow.c:1066 +msgid "Select playlist..." +msgstr "Selecteer afspeellijst..." + +#: mainwindow.c:1068 mainwindow.c:1132 +msgid "Playlists" +msgstr "Afspeellijsten" -#: mainwindow.c:1069 +#: mainwindow.c:1085 msgid "Loading Playlist" msgstr "Afspeellijst aan het laden" -#: mainwindow.c:1089 +#: mainwindow.c:1106 msgid "Loaded Playlist" msgstr "Afspeellijst geladen" -#: mainwindow.c:1092 +#: mainwindow.c:1110 msgid "Error Loading Playlist" -msgstr "Fout bij laden Afspeelijst" +msgstr "Fout bij het van laden afspeelijst" -#: mainwindow.c:1112 -msgid "Save Playlist" -msgstr "Afspeellijst opslaan" +#: mainwindow.c:1130 +msgid "Save playlist..." +msgstr "Afspeellijst opslaan..." -#: mainwindow.c:1143 +#: mainwindow.c:1168 msgid "Saved Playlist" msgstr "Afspeellijst opgeslagen" -#: mainwindow.c:1146 +#: mainwindow.c:1171 msgid "Error Saving Playlist" -msgstr "Fout bij opslaan afspeellijst" +msgstr "Fout bij het opslaan van afspeellijst" -#: mainwindow.c:1186 +#: mainwindow.c:1215 msgid "" "This will delete all data in Flash Memory\n" "Would you like to continue?" @@ -367,7 +399,11 @@ "Dit zal alle data in het Flash Geheugen wissen\n" "Wilt u doorgaan?" -#: mainwindow.c:1189 +#: mainwindow.c:1219 +msgid "Formatting Internal Memory" +msgstr "Intern geheugen aan het formateren" + +#: mainwindow.c:1223 msgid "" "This will delete all data in SmartMedia\n" "Would you like to continue?" @@ -375,240 +411,255 @@ "Dit zal alle data in de SmartMedia kaart wifssen\n" "Wilt u doorgaan?" -#: mainwindow.c:1194 -msgid "Formatting Internal Memory" -msgstr "Intern geheugen aan het formateren" +#: mainwindow.c:1228 +msgid "Formatting SmartMedia" +msgstr "SmartMedia aan het formateren" + +#: mainwindow.c:1232 +msgid "" +"This will format SmartMedia for camera\n" +"Would you like to continue?" +msgstr "" +"Dit zal SmartMedia formateren voor een camera\n" +"Wilt u doorgaan?" + +#: mainwindow.c:1237 +msgid "Formatting SmartMedia for camera" +msgstr "SmartMedia aan het formateren voor een camera" -#: mainwindow.c:1206 +#: mainwindow.c:1255 msgid "/_File" msgstr "/_Bestand" -#: mainwindow.c:1207 +#: mainwindow.c:1256 msgid "/File/_Add" msgstr "/Bestand/_Toevoegen" -#: mainwindow.c:1208 -msgid "/File/Add/Directory" -msgstr "/Bestand/Toevoegen/Map" - -#: mainwindow.c:1209 -msgid "/File/Add/File" -msgstr "/Bestand/Toevoegen/Bestand" +#: mainwindow.c:1257 +msgid "/File/Add/Directory..." +msgstr "/Bestand/Toevoegen/Map toevoegen..." + +#: mainwindow.c:1258 +msgid "/File/Add/File..." +msgstr "/Bestand/Toevoegen/Bestand toevoegen..." -#: mainwindow.c:1210 mainwindow.c:1214 mainwindow.c:1216 +#: mainwindow.c:1259 mainwindow.c:1263 mainwindow.c:1265 msgid "/File/sep1" msgstr "/Bestand/sep1" -#: mainwindow.c:1211 -msgid "/File/_Send" -msgstr "/Bestand/_Verzenden" +#: mainwindow.c:1260 +msgid "/File/_Send..." +msgstr "/Bestand/_Verzenden..." -#: mainwindow.c:1212 +#: mainwindow.c:1261 msgid "/File/_Remove" msgstr "/Bestand/Ve_rwijderen" -#: mainwindow.c:1213 +#: mainwindow.c:1262 msgid "/File/_Properties" msgstr "/Bestand/_Eigenschappen" -#: mainwindow.c:1215 -msgid "/File/Send non mp3 file" -msgstr "/Bestand/Non mp3 bestand verzenden" +#: mainwindow.c:1264 +msgid "/File/Send non mp3 file..." +msgstr "/Bestand/Non-mp3 bestand verzenden..." -#: mainwindow.c:1217 +#: mainwindow.c:1266 msgid "/File/_Quit" -msgstr "/Bestand/Afsluiten" +msgstr "/Bestand/_Afsluiten" -#: mainwindow.c:1218 +#: mainwindow.c:1267 msgid "/_Mpman" msgstr "/_Mpman" -#: mainwindow.c:1219 -msgid "/Mpman/_Rfresh" +#: mainwindow.c:1268 +msgid "/Mpman/_Refresh" msgstr "/Mpman/_Verversen" -#: mainwindow.c:1220 -msgid "/Mpman/_Get" -msgstr "" +#: mainwindow.c:1269 +msgid "/Mpman/_Get..." +msgstr "/Mpman/_Overzetten..." -#: mainwindow.c:1221 +#: mainwindow.c:1270 msgid "/Mpman/_Delete" msgstr "/Mpman/Ve_rwijderen" -#: mainwindow.c:1222 +#: mainwindow.c:1271 msgid "/Mpman/sep1" msgstr "/Mpman/sep1" -#: mainwindow.c:1223 +#: mainwindow.c:1272 msgid "/Mpman/Format Internal Memory" msgstr "/Mpman/Intern Geheugen formateren" -#: mainwindow.c:1224 +#: mainwindow.c:1273 msgid "/Mpman/Format SmartMedia card" msgstr "/Mpman/SmartMedia kaart formateren" -#: mainwindow.c:1225 +#: mainwindow.c:1274 +msgid "/Mpman/Format SmartMedia for camera" +msgstr "/Mpman/SmartMedia formateren voor camera" + +#: mainwindow.c:1275 msgid "/_Edit" msgstr "/Be_werken" -#: mainwindow.c:1226 +#: mainwindow.c:1276 msgid "/Edit/Select _All Ctrl+A" -msgstr "/Bewerken/_Alles selecteren" +msgstr "/Bewerken/_Alles selecteren Ctrl+A" -#: mainwindow.c:1227 +#: mainwindow.c:1277 msgid "/Edit/sep1" msgstr "/Bewerken/sep1" -#: mainwindow.c:1228 +#: mainwindow.c:1278 msgid "/Edit/_Options" -msgstr "/Bewerken/_Opties" +msgstr "/Bewerken/_Voorkeuren" -#: mainwindow.c:1229 +#: mainwindow.c:1279 msgid "/_Playlist" msgstr "/_Afspeellijst" -#: mainwindow.c:1230 -msgid "/Playlist/_Load" +#: mainwindow.c:1280 +msgid "/Playlist/_Load..." msgstr "/Afspeellijst/_Laden" -#: mainwindow.c:1231 -msgid "/Playlist/_Add" +#: mainwindow.c:1281 +msgid "/Playlist/_Add..." msgstr "/Afspeellijst/_Toevoegen" -#: mainwindow.c:1232 +#: mainwindow.c:1282 msgid "/Playlist/sep1" msgstr "/Afspeellijst/sep1" -#: mainwindow.c:1233 -msgid "/Playlist/Sa_ve as" -msgstr "/Afspeellijst/O_pslaan als" +#: mainwindow.c:1283 +msgid "/Playlist/Sa_ve as..." +msgstr "/Afspeellijst/O_pslaan als..." -#: mainwindow.c:1234 +#: mainwindow.c:1284 msgid "/Playlist/Save as Default" msgstr "/Afspeellijst/Opslaan als standaard" -#: mainwindow.c:1235 +#: mainwindow.c:1285 msgid "/Help" msgstr "/_Hulp" -#: mainwindow.c:1236 +#: mainwindow.c:1286 msgid "/Help/About" msgstr "/Hulp/Over" -#: mainwindow.c:1271 mainwindow.c:1336 +#: mainwindow.c:1321 mainwindow.c:1386 msgid "Send" msgstr "Verzenden" -#: mainwindow.c:1272 +#: mainwindow.c:1322 msgid "Send selected files to Mpman F60" msgstr "Geselecteerde bestanden verzenden naar de Mpman F60" -#: mainwindow.c:1280 +#: mainwindow.c:1330 msgid "Add Directory" msgstr "Map toevoegen" -#: mainwindow.c:1284 +#: mainwindow.c:1334 msgid "Add File" -msgstr "Bestanden toevoegen" +msgstr "Map toevoegen" -#: mainwindow.c:1291 +#: mainwindow.c:1341 msgid "Add" msgstr "Toevoegen" -#: mainwindow.c:1292 +#: mainwindow.c:1342 msgid "Add files to list" msgstr "Bestanden toevoegen aan de lijst" -#: mainwindow.c:1302 +#: mainwindow.c:1352 msgid "Remove" msgstr "Verwijderen" -#: mainwindow.c:1303 +#: mainwindow.c:1353 msgid "Remove selected files from list" msgstr "Geselecteerde bestanden verwijderen uit de lijst" -#: mainwindow.c:1311 +#: mainwindow.c:1361 msgid "Properties" msgstr "Eigenschappen" -#: mainwindow.c:1312 +#: mainwindow.c:1362 msgid "Show file properties" msgstr "Toon bestands eigenschappen" -#: mainwindow.c:1323 +#: mainwindow.c:1373 msgid "Random" msgstr "Willekeurig" -#: mainwindow.c:1324 +#: mainwindow.c:1374 msgid "Create random list to fill available memory" msgstr "Creër willekeurige lijst om het beschikbare geheugen te vullen" -#: mainwindow.c:1337 +#: mainwindow.c:1387 msgid "Send selected files to PC" msgstr "Verzend geselecteerde bestanden naar de PC" -#: mainwindow.c:1345 +#: mainwindow.c:1395 msgid "Refresh List" msgstr "Ververs lijst" -#: mainwindow.c:1346 +#: mainwindow.c:1396 msgid "Connect/Refresh index" msgstr "Verbind/Ververs index" -#: mainwindow.c:1354 +#: mainwindow.c:1404 msgid "Reorder" msgstr "Opnieuw ordenen" -#: mainwindow.c:1355 -#, fuzzy +#: mainwindow.c:1405 msgid "Update MP3 player with reordered list" -msgstr "MP3 speler updaten met de opnieuw geordende lijst" +msgstr "MP3 speler bijwerken met de opnieuw geordende lijst" -#: mainwindow.c:1363 +#: mainwindow.c:1413 msgid "Delete" msgstr "Verwijderen" -#: mainwindow.c:1364 +#: mainwindow.c:1414 msgid "Delete selected files" msgstr "Verwijder geselecteerde bestanden" -#: mainwindow.c:1585 +#: mainwindow.c:1636 msgid "Flash Memory" msgstr "Flash Geheugen" -#: mainwindow.c:1588 +#: mainwindow.c:1639 msgid "Select internal flash memory" msgstr "Selecteer intern flash geheugen" -#: mainwindow.c:1621 +#: mainwindow.c:1672 msgid "SmartMedia" msgstr "SmartMedia" -#: mainwindow.c:1624 +#: mainwindow.c:1675 msgid "Select SmartMedia card memory" msgstr "Selecteer SmartMedia kaart geheugen" -#: mainwindow.c:1675 mainwindow.c:1748 mainwindow.c:1785 +#: mainwindow.c:1726 mainwindow.c:1799 mainwindow.c:1836 msgid "Name" msgstr "Naam" -#: mainwindow.c:1709 +#: mainwindow.c:1760 msgid "Play Files" msgstr "Speel bestanden af" -#: mainwindow.c:1713 +#: mainwindow.c:1764 msgid "Stop playing" msgstr "Stop met afspelen" -#: mainwindow.c:1717 +#: mainwindow.c:1768 msgid "Send Files to Mpman" msgstr "Verzend bestanden naar de Mpman" -#: mainwindow.c:1721 +#: mainwindow.c:1772 msgid "Remove Files" msgstr "Verwijder bestanden" -#: mainwindow.c:1725 +#: mainwindow.c:1776 msgid "File Properties" msgstr "Bestands Eigenschappen"