comparison src/audacious/main.c @ 2605:1ceaf00f9c6d trunk

[svn] - fix handling of multiple files on the command line.
author nenolod
date Sat, 03 Mar 2007 22:34:27 -0800
parents 40407b7363f3
children 67082557b2c4
comparison
equal deleted inserted replaced
2604:11ed1827fe10 2605:1ceaf00f9c6d
888 888
889 if (filenames != NULL) 889 if (filenames != NULL)
890 { 890 {
891 gint pos = 0; 891 gint pos = 0;
892 gint i = 0; 892 gint i = 0;
893 GList *fns = NULL;
893 894
894 for (i = 0; filenames[i] != NULL; i++) 895 for (i = 0; filenames[i] != NULL; i++)
895 { 896 {
896 gchar *filename; 897 gchar *filename;
897 gchar *current_dir = g_get_current_dir(); 898 gchar *current_dir = g_get_current_dir();
899 if (filenames[i][0] == '/' || strstr(filenames[i], "://")) 900 if (filenames[i][0] == '/' || strstr(filenames[i], "://"))
900 filename = g_strdup(filenames[i]); 901 filename = g_strdup(filenames[i]);
901 else 902 else
902 filename = g_build_filename(current_dir, filenames[i], NULL); 903 filename = g_build_filename(current_dir, filenames[i], NULL);
903 904
904 if (options->load_skins) 905 fns = g_list_prepend(fns, filename);
905 { 906
906 xmms_remote_set_skin(session, filename);
907 skin_install_skin(filename);
908 }
909 else
910 {
911 if (options->enqueue_to_temp)
912 xmms_remote_playlist_enqueue_to_temp(session, filename);
913
914 if (options->enqueue && options->play)
915 pos = xmms_remote_get_playlist_length(session);
916
917 if (!options->enqueue)
918 {
919 xmms_remote_playlist_clear(session);
920 xmms_remote_stop(session);
921 }
922
923 xmms_remote_playlist_add_url_string(session, filename);
924
925 if (options->enqueue && options->play &&
926 xmms_remote_get_playlist_length(session) > pos)
927 xmms_remote_set_playlist_pos(session, pos);
928
929 if (!options->enqueue)
930 xmms_remote_play(session);
931 }
932
933 g_free(filename);
934 g_free(current_dir); 907 g_free(current_dir);
935 } 908 }
909
910 fns = g_list_reverse(fns);
911
912 if (options->load_skins)
913 {
914 xmms_remote_set_skin(session, filenames[0]);
915 skin_install_skin(filenames[0]);
916 }
917 else
918 {
919 if (options->enqueue_to_temp)
920 xmms_remote_playlist_enqueue_to_temp(session, filenames[0]);
921
922 if (options->enqueue && options->play)
923 pos = xmms_remote_get_playlist_length(session);
924
925 if (!options->enqueue)
926 {
927 xmms_remote_playlist_clear(session);
928 xmms_remote_stop(session);
929 }
930
931 xmms_remote_playlist_add(session, fns);
932
933 if (options->enqueue && options->play &&
934 xmms_remote_get_playlist_length(session) > pos)
935 xmms_remote_set_playlist_pos(session, pos);
936
937 if (!options->enqueue)
938 xmms_remote_play(session);
939 }
940
941 g_list_foreach(fns, (GFunc) g_free, NULL);
942 g_list_free(fns);
936 943
937 g_strfreev(filenames); 944 g_strfreev(filenames);
938 } 945 }
939 946
940 if (options->rew) 947 if (options->rew)