Heinrich_Schwietering
Wikiteam
Anmeldungsdatum: 12. November 2005
Beiträge: 11288
|
Hi! Linux-Fan schrieb: Hallo, wer hat - nachdem jetzt die neue Version raus ist - es geschafft, sie zu patchen und kann eine Anleitung geben (Vielleicht auch für Intrepid)? Und wann könnte man mit einer gepatchten Version von Vagalume 0.7 für Hardy und auch für Intrepid rechnen?
Immer langsam mit die jungen Pferde... Bin zwar am Basteln; aber es ist nicht ganz so einfach... Bekomme die gepatchte Version inzwischen ja kompiliert und gestartet; allerdings erfolgt keine Wiedergabe; ergo wird auch nichts gespeichert... Die Veränderungen von mainwin.c zu vgl-main-window.c, und parallel dazu mainwin.h zu vgl-main-window.h scheinen der Knackpunkt zu sein; die Teile des "alten" Patches, die in commander.c im Rückgriff auf mainwin.c das Anlegen der Temporär-Datei sowie das Ausführen des Autodownload geregelt hatten, fassen noch nicht (aber vielleicht fehlt auch noch ganz was anderes... 😐 ) Also: noch etwas Geduld - oder selbst mal versuchen! so long hank
|
Heinrich_Schwietering
Wikiteam
Anmeldungsdatum: 12. November 2005
Beiträge: 11288
|
Hi! Hänge leider fest... Inzwischen habe ich den Player zwar zwischenzeitlich schon so weit gehabt, dass er "lief" und auch eine Temporärdatei angelegt wurde, aber das tatsächliche Speicher erfolgt nicht... Ich denke, es liegt an der Umstrukturierung von vgl-main-window.c und .h; in der bisherigen Struktur (mainwin.c bzw .h in Version 0.6) erfolgte die Definition der GtkWidgets in mainwin.h mit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 | typedef struct {
GtkWindow *window;
GtkWidget *play, *stop;
GtkWidget *playbutton, *stopbutton, *skipbutton;
GtkWidget *lovebutton, *banbutton, *recommendbutton;
GtkWidget *dloadbutton, *tagbutton, *addplbutton;
GtkWidget *playlist, *artist, *track, *album;
GtkWidget *radiomenu, *actionsmenu, *settings, *love, *dload;
GtkWidget *addtopls, *stopafter;
GtkWidget *album_cover;
GtkProgressBar *progressbar;
GString *progressbar_text;
gboolean is_fullscreen;
gboolean is_hidden;
gboolean showing_msg;
guint lastmsg_id;
int x_pos, y_pos;
} lastfm_mainwin;
|
in der neuen (0.7) in vgl-main-window.c; zusätzlich noch "verschachtelt" als VglMainWindowPrivate mit "parent" VglMainWindow;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 | #define VGL_MAIN_WINDOW_GET_PRIVATE(object) \
(G_TYPE_INSTANCE_GET_PRIVATE ((object), VGL_TYPE_MAIN_WINDOW, \
VglMainWindowPrivate))
G_DEFINE_TYPE (VglMainWindow, vgl_main_window, PARENT_CLASS_TYPE);
typedef struct _VglMainWindowPrivate VglMainWindowPrivate;
struct _VglMainWindowPrivate {
GtkWidget *play, *stop;
GtkWidget *playbutton, *stopbutton, *skipbutton;
GtkWidget *lovebutton, *banbutton, *recommendbutton;
GtkWidget *dloadbutton, *tagbutton, *addplbutton;
GtkWidget *playlist, *artist, *track, *album;
GtkWidget *radiomenu, *actionsmenu, *settings, *love, *dload;
GtkWidget *addtopls, *stopafter, *bmkmenu, *bmkartist, *bmktrack;
GtkWidget *album_cover;
GtkProgressBar *progressbar;
GString *progressbar_text;
gboolean is_fullscreen;
gboolean is_hidden;
gboolean showing_msg;
guint lastmsg_id;
int x_pos, y_pos;
};
|
somit werden die in controller.c durch den patch aufgerufenen Elemente dloadbutton und dload in den Passagen
| if (usercfg->auto_recording == TRUE) {
gtk_widget_set_sensitive (mainwin->dloadbutton, FALSE);
gtk_toggle_button_set_active (mainwin->dloadbutton, FALSE);
gtk_widget_set_sensitive (mainwin->dload, FALSE);
gtk_check_menu_item_set_active (mainwin->dload, FALSE);
} else {
gtk_widget_set_sensitive (mainwin->dloadbutton, TRUE);
gtk_toggle_button_set_active (mainwin->dloadbutton, FALSE);
gtk_widget_set_sensitive (mainwin->dload, TRUE);
gtk_check_menu_item_set_active (mainwin->dload, FALSE);
}
|
und
| if (usercfg->auto_recording != TRUE) {
if (recording == 0 || recording == NULL) {
gtk_toggle_button_set_active (mainwin->dloadbutton, TRUE);
gtk_check_menu_item_set_active (mainwin->dload, TRUE);
recording = 1;
} else {
gtk_check_menu_item_set_active (mainwin->dload, FALSE);
gtk_toggle_button_set_active (mainwin->dloadbutton, FALSE);
recording = 0;
}
|
nicht gefunden.... Meine Versuche, das so umzumodeln, (z.B. entsprechende Definition nach controller.h verschoben, widgets in controller.c neu definiert etc. pp.) dass die Elemente wieder gefunden werden, endeten bisher entweder in Nicht-Wiedergabe (Player zwar gestartet; Verbindung zu last-fm auch hergestellt; sogar Einblendung des gerade angeblich "wiedergegebenen" Titels, aber keine tatsächlche Wiedergabe, geschweige denn Abspeicherung) oder in "segementation faults" nach dem Start, spätestens beim Versuch, den downloadbutton anzuklicken. Wenn ich testweise die beiden code-Teile weggelassen habe, gab's das Ergebnis: Player läuft, Temporär-Datei wird angelegt, und bei Ende des Tracks auch ordnungsgemäß wieder gelöscht, aber auch da keine Umbenennung/Speicherung, teilweise auch Crashes bei dem Versuch, downzuloaden /autodownload-box anzuklicken... Ich hänge mal die nach bisherigem patch bearbeitete Version an; vielleicht findet ja jemand raus, was da falsch läuft (ist die Rohversion, ohne meine "Ummodel-Versuche, die beim kompilieren eben wegen der nicht gefundenen Elemente abbricht)... so long hank
- vagalume-0.7-newpatched.tar.gz (721.7 KiB)
- Download vagalume-0.7-newpatched.tar.gz
|
Linux-Fan
Anmeldungsdatum: 26. November 2007
Beiträge: 2170
|
Jetzt ist eine Woche vergangen! Hat jemand daran weitergearbeitet? Über neue Informationen zum Stand der Dinge wäre ich sehr dankbar!! ☺
|
mtron
(Themenstarter)
Anmeldungsdatum: 21. Mai 2005
Beiträge: 182
|
ich hab ehrlich gesagt noch nicht mal die neue Version herunter geladen ☹ Aber da sowohl der alte patch, alsauch vagalume im source code vorliegt, ist es nur eine frage der Zeit bis jemand von der Community Zeit und Muse findet den patch auf die neue Version zu porten. Hank hat ja dankenswerterweise schon angefangen ☺
|
Heinrich_Schwietering
Wikiteam
Anmeldungsdatum: 12. November 2005
Beiträge: 11288
|
Hi! Ja, angefangen... Genau genommen sitze ich schon etwas länger daran fest; leider gelingt es mir noch nicht, wenn anscheinend (oder vielleicht eher hoffentlich?) auch nicht mehr viel fehlt... Ich bekomme leider immer wieder nur segmentation faults; wenn ich die verschiedenen Kombinationen für sink und decoder durchspiele, gibt's auch mal Verbindungen; allerdings keine echte Wiedergabe, sondern "durchrauschende" Titeleinblendungen ohne Wiedergabe, bis dann vagalume mit "connection error" abbricht; oder (immerhin!) ein interner "Datanfluss"-Fehler ( tatsächlich mit "an") angzeigt wird, beliebt sind auch Meldungen dieser Art:
** (vagalume:16607): CRITICAL **: lastfm_track_ref: assertion `track != NULL' failed Ein Fehler scheint (auch?) in der Implementierug der automatic-download-Checkbox zu liegen - jedenfalls stürzt der Player mir spätestens bei Betätigung der selben ab. Ich weiß, wenig konkret; mir fehlt aber das Wissen, das z.B. mal mit debuging-symbols zu kompilieren bzw. dann damit ein brauchbares "Ergebnis" zu bekommen. Und ich hatte da auch auf dich gehofft, mtron... Naja, kommt Zeit, kommt Rat (oder so) so long hank
|
mtron
(Themenstarter)
Anmeldungsdatum: 21. Mai 2005
Beiträge: 182
|
knock yourself out ☺ der patch fügt jetzt auch ein dl button im tray icon hinzu. Herzlichen dank an zeobob der den Patch für die tricky private Function angepasst hat. Er ließt zwar höchst wahrscheinlich hier nicht mit, trotzdem DANKE. Hank, falls du Zeit hast, wäre es schön den patch um einige Kleinigkeiten zu erweitern. Vor allem den filecheck + bugfix, sowie den advancedckeck patch wäre im standard build super. Noch eine Frage: in der jetzigen stabilen Ubuntu Version ist vagalume bereits in den apt-quellen, oder? (verwende selbst debian) Dies würde die patch prozedur ziemlich vereinfachen, oder findet ihr es einfacher wieder ein vorbereitetes vagalume source paket anzubieten? PS: Weiters wären noch b ,c ,f, & g von der todo liste (1) offen ☺ (1) http://mtrons.googlepages.com/vagalume-dev
- save-song-v5.patch (33.1 KiB)
- Download save-song-v5.patch
|
Heinrich_Schwietering
Wikiteam
Anmeldungsdatum: 12. November 2005
Beiträge: 11288
|
Hi!
knock yourself out ☺
Ja, werd' ich machen... 😀 Wo kommt das denn jetzt her? Zebobs Werk?!!! 😲 😇 ; na, besser, wenn da die echten Spezialisten rangehen...(und ich dachte, schon er wäre "out of business") Herzlichen dank an zeobob der den Patch für die tricky private Function angepasst hat.
Er ließt zwar höchst wahrscheinlich hier nicht mit, trotzdem DANKE.
Ja, da kann ich mich nur anschließen... und "druckfrisch" das Ganze! ☺ Hank, falls du Zeit hast, wäre es schön den patch um einige Kleinigkeiten zu erweitern. Vor allem den filecheck + bugfix, sowie den advancedckeck patch wäre im standard build super.
Ja klar, aber dann wieder als "extra-patches", die dann in das "vorbereitete" Archiv kommen, oder? Sollten wir ggf. mit zebob klären - hast du Kontakt zu ihm? Er hat auf meine Mails seit April nicht mehr reagiert 😢
Noch eine Frage: in der jetzigen stabilen Ubuntu Version ist vagalume bereits in den apt-quellen, oder? (verwende selbst debian)
Nein, erst ab intrepid ipex (8.10). Dies würde die patch prozedur ziemlich vereinfachen, oder findet ihr es einfacher wieder ein vorbereitetes vagalume source paket anzubieten?
Zum jetzigen Zeitpunkt sicher einfacher; insbesondere für die weiteren patches (mache mich denmnächst daran) - aber mir ist bei der To-Do Liste nicht klar: Hast du schon einen 02_filecheck-bugfix.patch gebaut? Oder ist er nur noch nicht in den "standard-patch" implementiert? Eine Frage tauchte letztens noch zum artist-title-safety.patch auf: Für Last-Exit legt der "Künstler"-Ordner an, in denen dann die Künstler-Titel.mp3s landen; für Vagalume hab' ich das anders gebaut (ist mir letztens erst aufgefallen) - was wird gewünscht? (Kann auch beides basteln...) so long hank
|
Linux-Fan
Anmeldungsdatum: 26. November 2007
Beiträge: 2170
|
Für Vagalume wünsche ich mir: Künstler-Ordner/Album-Ordner/Künstler-Album-Titel.mp3s mit Künstler-Album-Titel-ID3-Tag's!
|
Heinrich_Schwietering
Wikiteam
Anmeldungsdatum: 12. November 2005
Beiträge: 11288
|
Hi! Linux-Fan schrieb: Für Vagalume wünsche ich mir: Künstler-Ordner/Album-Ordner/Künstler-Album-Titel.mp3s mit Künstler-Album-Titel-ID3-Tag's!
Jaja, kein Problem.... nur die Tags musst du leider EasyTAG o.ä. schreiben lassen... Scherz beiseite: Willst du im Album-Ordner tatsächlich den Lang-Namen? Und was für'n Separator zwischen den Tracks? (Ich persönlich fänd' das ja zu lang- sprengt jede Playlist-Anzeige in allen gängigen Playern; du siehst bei den Titelnamen dann nur den Künstler, ggf noch das Album - aber "Degustibus non disputandum esse", wie der Lateiner zu sagen pflegt...) Ansonsten läuft die gepatchte Version trotz ein paar Warnungen beim Kompilieren gut (um den patch anzuwenden, ggf im patch vagalume/src durch vagalume-0.7/src ersetzen (oder den vagalume-0.7-Ordner umbenennen)😉 auch die filecheck-bugfix-Version läuft hier schon; überspringt auch die schon existierenden Titel - wird also wohl was (trotz erweiterter Warn-Meldungen gegenüber Version 0.6). so long hank
|
zebob
Anmeldungsdatum: 23. März 2008
Beiträge: Zähle...
|
Hi guys, I'm currently implementing an option to customize path and filename like {artist}/{album}/{artist} - {title}.
I've also rewritten the "no overwrite" function. Cheers, ps: sorry to speak english here, my german is pretty bad
|
Heinrich_Schwietering
Wikiteam
Anmeldungsdatum: 12. November 2005
Beiträge: 11288
|
Hi! Oh, you're still around! Thanks for the great work - saves me a lot of trouble trying to fit the patch to vagalume-0.7!
I'm currently implementing an option to customize path and filename like {artist}/{album}/{artist} - {title}. I've also rewritten the "no overwrite" function.
Even better; mtron was asking for that feature in his To-Do-list; and it would save me further hazzle (well, my patches are quite simple to adept, once the main work is done...) Perhaps you could have a look at my bugfix to eliminate "/"-signs in artist, album or track; const char *delimiters = ("/");
const char *new_delimiter = ('_');
g_strdelimit (t->title, delimiters, new_delimiter);
g_strdelimit (t->album, delimiters, new_delimiter);
g_strdelimit (t->artist, delimiters, new_delimiter);
It is rather crude, I'm sure it could be improved using some kind of "g_regex_replace"-function - but I can't do it... I know you've used another routine in the Last-Exit-Patch, for player.cs, lines 183 ff.
if (current_song.Artist != null) { this.GetArtist = current_song.Artist.Replace("/","-"); }
if (current_song.Album != null) { this.GetAlbum = current_song.Album.Replace("/","-"); }
this.GetTrack = current_song.Track.Replace("/","-");
I've changed that to
this.GetArtist = current_song.Artist.Replace('/','_');
if (current_song.Album != null) { this.GetAlbum = current_song.Album.Replace('/','_'); } else {
this.GetAlbum = "unknown"; }
this.GetTrack = current_song.Track.Replace('/','_');
which took care of missing album-names, too, and made the routine for the filenames a little easier.
Perhaps it could be applied here, too? But I wouldn't know where to add it... Any development with the id3-tag-issue?... Great to hear from you! so long hank
|
Heinrich_Schwietering
Wikiteam
Anmeldungsdatum: 12. November 2005
Beiträge: 11288
|
Hi! So, war fleißig (Frau schimpft schon...) Neue Patches füe Version 0.7 - der movetemploc.patch fehlt, weil er nicht mehr gebraucht wird - Vagalume 0.7 läuft nur noch in einer Instanz.... Die Patche müssen noch "oldfashioned" mit
patch -p0 < 01_save-song-v5.patch
patch -p0 < 02_filecheck+bugfix.patch
etc.
angewendet werden. Viel Spaß beim Testen...(hänge noch meine Lieblingsversion für 32-bit dran; "advancedcheck", erstellt Verzeichnise und eine Sicherheitskopie bei existierendem Dateinamen) so long hank EDIT: Hatte das README vergessen! Jetzt als 3. Anhang.
- vagalume-0.7-Patches.tar.gz (8.2 KiB)
- Download vagalume-0.7-Patches.tar.gz
- vagalume_0.7-1_i386_advancedcheck.deb (161.8 KiB)
- Download vagalume_0.7-1_i386_advancedcheck.deb
- README-0.7-v5 (1.4 KiB)
- Download README-0.7-v5
|
zebob
Anmeldungsdatum: 23. März 2008
Beiträge: Zähle...
|
I had a similar problem with bands with a “/” in their name (AC/DC). It created directory wth the nws code : AC/DC - Back in Black.mp3 for example. I use a regex replace on artist, album and title. I still need to rework the patch to use gio instead the deprecated gvfs. I've made test to implement tags, but still not working, I need to go deeper into the doc.
- vagalume_save_tags.patch (44.8 KiB)
- Download vagalume_save_tags.patch
|
zebob
Anmeldungsdatum: 23. März 2008
Beiträge: 10
|
Okay rewritten with Gio (I have not tested it, but it should work with ftp:// and other protocol supported by Gio).
So now it can :
specify directory/filename like {artist} ; {album} ; {title} handle previous files (they are not overwritten as before, now a suffix like (version n) is added at the end of the file) handle tags
Have fun ! Tschüss NB : this patch is "heavier" in size because it reimplements a glib function which is only supported in GLib 2.18. If you want, I can provide a specific patch for the next Ubuntu version that ships GLib 2.18.
NB2 : To apply it, got to the root directory of the source code and type : patch -p1 < vagalume_save_tags.patch
- vagalume_save_tags.patch (0 Bytes)
- Download vagalume_save_tags.patch
|
Heinrich_Schwietering
Wikiteam
Anmeldungsdatum: 12. November 2005
Beiträge: 11288
|
Hi! Whow, this is awesome!! 😎 ♥ 😎 No more compiling for different filenames, directories - and even id3-tags are added automatically! I'm flabbergasted; this is just like birthday and christmas at the same time... 😀 I'm really impressed!! ☺ (Just one thing - you don't mind me building one or two little patch changing the behavior with existing filenames - I would like a version that doesn't overwrite existing files and just to add none or just one extra version of songs when the name is already in use - or would it be possible to implement that, too? Not that I would mind the trouble do build the patches - and my meager efforts aren't completly superfluous; but an inclusion like yours for the filname/directory would be like adding easter to the christmas and birthday 😉 ) Thanks a lot! Merci beaucoup - so long hank
|