Delphi-PRAXiS
Seite 5 von 8   « Erste     345 67     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   SmallTune [0.3.1] (https://www.delphipraxis.net/143339-smalltune-%5B0-3-1%5D.html)

R2009 7. Dez 2009 13:19

Re: SmallTune [0.3.1]
 
Hi,

ich hab mit nett, das gemeint was nett ausdrückt (und unterstelle mir bitte nichts zwischen den Zeilen).
Sieht geil aus (geile Oberfläche), funktioniert anständig, reisst mich aber nicht vom Hocker!

Zum auswählen eines Titels solltest du dir etwas einfallen lassen. Über die Datenbank und
dort mit der Liste find ich nicht sehr schön.
Das ganze Datenbankgeraffel ist an der Stelle überflüssig. Eine XML Datei oder sogar Ini hätte es auch getan. Das wird sehr schnell unübersichtlich und wer wird schon auf die Idee kommen in deinem Tool mehr als 100 Songs abzulegen.

Modularer Aufbau hin und her dll's und wenn sie dann noch "hook" heissen stören mich enorm.
Stell dir vor du hast die bass.dll noch drei mal auf dem Rechner (und die gibts in x Versionen) womöglich in c:\windows\..
Woher soll dein Progrämmchen dann noch wissen wo hernehmen?
Mein Rechner ist mittlerweile ein "Bass.dll" Grab.

Nimms mir nicht übel aber das ist meine Meinung zu deinem Tool.
Grüsse
rainer

Mithrandir 7. Dez 2009 15:26

Re: SmallTune [0.3.1]
 
Zitat:

Zitat von R2009
Zum auswählen eines Titels solltest du dir etwas einfallen lassen. Über die Datenbank und
dort mit der Liste find ich nicht sehr schön.

Nochmal: Was genau würdest du dir denn wünschen? Dir muss doch irgendeine Idee vorschweben. "Gefällt mir nicht, mach anders" gibts in der Open-Source-Welt nicht, wir sind hier nicht in der Arbeitswelt. ;)
Eine Idee wäre Folgende: Klickt man nur auf Play, kann man in folgendes Schema springen:
a) Playlist gefüllt: Spiele zuletzt gespieltes Lied. Noch kein Lied gespielt: Spiele Erstes in der Liste.
b) Playlist leer: Öffne Dialog zur Dateiauswahl.
Zitat:

Zitat von R2009
Das ganze Datenbankgeraffel ist an der Stelle überflüssig. Eine XML Datei oder sogar Ini hätte es auch getan.

Ini? Autsch. XML wäre eine Möglichkeit, allerdings fehlt mir da eine "leichte" Alternative.
Zitat:

Zitat von R2009
Das wird sehr schnell unübersichtlich und wer wird schon auf die Idee kommen in deinem Tool mehr als 100 Songs abzulegen.

Ich selbst. Und es soll mal Zeiten gegeben haben, da hat einem die Playlist von Winamp auch gereicht... Nein, die Datenbank bleibt erstmal.
Zitat:

Zitat von R2009
Modularer Aufbau hin und her dll's und wenn sie dann noch "hook" heissen stören mich enorm.

Dann lösch die "st_hook.dll". Das Programm arbeitet auch anstandslos ohne. ;)
Zitat:

Zitat von R2009
Stell dir vor du hast die bass.dll noch drei mal auf dem Rechner (und die gibts in x Versionen) womöglich in c:\windows\..
Woher soll dein Progrämmchen dann noch wissen wo hernehmen?
Mein Rechner ist mittlerweile ein "Bass.dll" Grab.

Das wiederum ist nicht mein Problem. Mein Programm weiß ganz genau, welche DLL ihm gehört. Das hätte dir übrigens auch ein Blick in den SourceCode verraten:
Delphi-Quellcode:
Load_BASSDLL(ExtractFilePath(paramstr(0)) + 'libs\bass.dll');
Und Programme, die ihre DLLs nach C:\Windows schreiben gehören eh geschreddert. :wall:


Zitat:

Zitat von R2009
Nimms mir nicht übel aber das ist meine Meinung zu deinem Tool.

Keineswegs, konstruktive Kritik ist gerne gesehen. Ich vermisse nur etwas das Konstruktive. ;)

mleyen 7. Dez 2009 21:17

Re: SmallTune [0.3.1]
 
Zitat:

Zitat von Daniel G
Keineswegs, konstruktive Kritik ist gerne gesehen. Ich vermisse nur etwas das Konstruktive. ;)

Na dann will ich mal: :wink:

[Bugs]
# Playlist:
- Wenn ich per Drag & Drop Musikdateien in das Fenster dragge und ich dann ein Lied per "entf" aus der Playliste entferne werden plötzlich 2 entfernt.
- Wenn ich per "entf" versuche mehrere selektierte Dateien zu entfernen wird nur eine entfernt. Bei dem "Auswahl entfernen"-Button werden jedoch alle entfernt.
- Man kann 2 mal den Entfernen Dialog aufrufen. Nachdem man den ersten bestätigt hat und dann den zweiten bestätigt wird eine falsche Datei rausgeschmissen.
# Sonstiges
- MediaKeyHook scheint immer noch nicht zu funktionieren. Es funktionierte keine MM-Taste, auch nach neustart des Programms nicht.
- Kann es sein, dass die Hotkeys "Playlist" und "Zufall" nicht funktionieren?
- "Position speichern" unter "Fenster verschiebbar machen" funktioniert nicht.
- Wenn ich die Maus ganz schnell aus dem Fenster bewege, während ich das Main-Fenster bewege, und dann die Maus loslasse, scheint nicht die normale Form OnMouseUp-Prozedur aufgerufen zu werden. Wenn ich dann zurück in´s Fenster gehe, bewegt sich das Fenster immernoch, obwohl ich die Maus gar nicht drücke.

[Requested Features]
- Die HotKeys "Nächstes Lied" und "Play/Pause" sollten funktionieren, wenn nach einem Neustart des Programms Lieder in der Playlist vorhanden sind, aber noch keins gestartet wurde.
- Drag & Drop von Ordnern sollte möglich sein.
- "Wiederholen" sollte evtl. unterteil oder umbenannt werden in "Playlist wiederholen" und "aktuelles Lied wiederholen".
- Im "Zufalls"-Modus sollte nicht das gleiche Lied mehrmals hintereinander drankommen.


Das ist eigentlich das was mir auf die schnelle aufgefallen ist. :zwinker:

Mithrandir 8. Dez 2009 09:52

Re: SmallTune [0.3.1]
 
Danke: :thumb:

Ich werde im neuen Jahr dem Code nochmal einer Review unterziehen. Einfach mal ein paar Stunden einschließen und lesen. :P

Die Multimediatasten treiben mich allerdings zur Weißglut. Mein Laptop hat leider keine solchen Tasten. Könntest du die Anwendung mal mit "-xdebug" starten, und mal ein paar der Tasten drücken und gucken, ob das Programm auf die Drücke reagiert? Hast du nebenbei vielleicht ein anderes Programm offen, was die Multimediatasten ebenfalls nutzt?

R2009 8. Dez 2009 11:10

Re: SmallTune [0.3.1]
 
Hi Daniel,

meine Aussage: die Auswahl der Titel, so wie du das gelöst hast, gefällt mir nicht.
Dies impliziert doch aber nicht, dass ich eine bessere Idee habe.

Zu Ini und autsch:
Wir nutzen, für unsere Language Dateien nach wie vor Ini's und sind absolut zufrieden damit. Für (ganz) kleine Titelsammlungen reicht das auf jeden Fall vollkommen aus.
Für XML benötigst du auch nur Tclientdataset (allerdings glaub ich wird die Midas.dll) benötigt.
Nutze ich eine Ini brauche ich nichts ausser den Standardcontrols von Delphi.

Bevor ich jedoch SQLite und ähnliches nutze überlege ich ob ich nicht vielleicht mit einem
Delphi-record ebenfalls ans Ziel komme.
So wie ich das sehe ist die einzige SQL Funktionalität die du nutzt die Sucherei!

Grüsse
Rainer

Mithrandir 8. Dez 2009 12:03

Re: SmallTune [0.3.1]
 
Zitat:

Zitat von R2009
meine Aussage: die Auswahl der Titel, so wie du das gelöst hast, gefällt mir nicht.
Dies impliziert doch aber nicht, dass ich eine bessere Idee habe.

Ich habe auch nirgends behauptet, dass deine Aussage dies impliziert. Es wäre nur wünschenswert gewesen. Und auf meinen Vorschlag bist du auch nicht eingegangen.
Zitat:

Zitat von R2009
Zu Ini und autsch:
Wir nutzen, für unsere Language Dateien nach wie vor Ini's und sind absolut zufrieden damit. Für (ganz) kleine Titelsammlungen reicht das auf jeden Fall vollkommen aus.

Das mag für Sprachdateien ja zutreffen. Aber eine Playlist, aus der der User öfters Dinge löscht, hinzufügt, ändert... Da ist in meinen Augen das eleganteste, wenn man auf eine "echte" DB verzichtet, XML.
Zitat:

Zitat von R2009
Für XML benötigst du auch nur Tclientdataset (allerdings glaub ich wird die Midas.dll) benötigt.
Nutze ich eine Ini brauche ich nichts ausser den Standardcontrols von Delphi.

Welche alle irgendwie wieder die SysUtils.pas einbauen. Und somit habe ich wieder einen Rattenschwanz an Units, die ich nicht brauche, und die das Programm nur aufblähen. Da bleibe ich lieber bei meiner SQLite.dll, da weiß ich wenigstens, wo ich dran bin.
Zitat:

Zitat von R2009
So wie ich das sehe ist die einzige SQL Funktionalität die du nutzt die Sucherei!

Die Suchfunktion benutzt den LIKE-Operator, korrekt. Uniqe IDs und Primary Keys werden für die Zuordnung Genre <> URL benutzt. GROUP BY findet auch häufiger Verwendung. Ich könnte das auch alles manuell implementieren, damit ich auf die sqlite.dll verzichten kann. Nenn mir einen vernünftigen Grund, warum ich das sollte.
In Zukunft kommen vielleicht noch Features hinzu, die mit einer SQL-Datenbank einfacher von der Hand gehen. Ich müsste jetzt einen Konverter schreiben, der die Datenbank in eine XML-DB konvertiert. Dann müsste ich diverse Funktionalitäten von SQL nachbilden. Und wozu das Ganze? Um dann vielleicht in einem Jahr wieder einen Konverter schreiben zu können, der die XML-Datenbank in eine SQLite-Datenbank umwandelt. Nö, tut mir Leid, da habe ich keinen Bock drauf.

Ich bin nicht Kritik-resistent, aber wenn das nur in bloßes Herumnörgeln ausartet, weil man sich an der Verwendung einer SQL-Datenbank und ein paar DLLs hochziehen muss, dann ist mir die Sache zu blöd.
Niemand zwingt dich, das Programm zu nutzen. Wenn es dir nicht gefällt, lass es bleiben.

R2009 8. Dez 2009 13:30

Re: SmallTune [0.3.1]
 
Hi,

mir ist ein Rattenschwanz an Units eben lieber als ein Rattenschwanz an DLL's!
Keine Sorge ich werde dein Programm nicht verwenden!
Ich habe meine Meinung, du hast deine Meinung. Am besten wir belassen es dabei!

Grüsse
Rainer

mleyen 8. Dez 2009 18:19

Re: SmallTune [0.3.1]
 
Bei -xdebug steht nur, dass die hook.dll erfolgreich geladen wurde.

Jetzt habe ich mal gaaanz schnell selbst kompiliert und ein bisschen debugged.

Ein Fehler steckt hier schonmal drin:
Delphi-Quellcode:
//Load Hook
if Settings.GetSetting('multimedia_keys_activated') = '1' then
begin
  lib := LoadLibrary('plugins\core\st_hook.dll');
  if lib <> INVALID_HANDLE_VALUE // mlAdd: Lib hat der Wert: 41287680
  then begin
    SetHook := GetProcAddress(lib, 'SetHook'); // mlAdd: Ab hier gibt GetLastError 127 zurück ("ERROR_PROC_NOT_FOUND 127 (0x7F) The specified procedure could not be found.")
    RemoveHook := GetProcAddress(lib, 'RemoveHook');
    lg.WriteLog('st_hook.dll sucessfully loaded', 'dgstMain');
  end;
  if Assigned(SetHook) then // mlAdd: Soweit ich weiß musst du hier wiefolgt prüfen: "if @SetHook <> nil then"
    SetHook(wnd, 0);
end;
Leider habe ich momentan zu wenig Freizeit um danach weiter zu schauen, aber ich hoffe das hilft schonmal.
Evtl. kann ich mir das in den nächsten Berufsschultagen mal genauer anschauen.
(Dann hab ich dort wenigstens mal etwas Forderndes. Soviel NonVcl :cyclops: :stupid: )

Btw:
Gabs nicht einmal eine Version, die ohne die "bass.dll" auskam?
Und wo ist mein #MusikExtreme in der Default-Playlist hin? :zwinker:

Edit:
Und mir fällt gerade sogar auf:
Die MediaKeys funktionieren, wenn das Mainfenster den Fokus hat. Sogar wenn dies in den Einstellungen deaktiviert wurde.

Mithrandir 8. Dez 2009 19:28

Re: SmallTune [0.3.1]
 
Liste der Anhänge anzeigen (Anzahl: 1)
Aua... :wall: :wall: :wall:

Danke :thumb:

Probier mal bitte die angehängte DLL aus... einfach die alte ersetzen.

Zitat:

Zitat von mleyen
Gabs nicht einmal eine Version, die ohne die "bass.dll" auskam?

Ja, war aber nur eine Version zum Experimentieren. Mit der BASS-Lib geht es einfacher, ich hätte quasi nochmal das Rad neu erfinden müssen. Das war es mir nicht wert, vor allem die Internetunterstützung. ;)

Zitat:

Zitat von mleyen
Und wo ist mein #MusikExtreme in der Default-Playlist hin? :zwinker:

Hmm.. Wurde leider wegrationalisiert... :oops:
Zitat:

Zitat von mleyen
Und mir fällt gerade sogar auf:
Die MediaKeys funktionieren, wenn das Mainfenster den Fokus hat. Sogar wenn dies in den Einstellungen deaktiviert wurde.

Sieh es einfach als Feature. :mrgreen:
Nein, das Problem ist, dass die Nachrichten zwei unterschiedliche sind, die die Multimediakeys absetzen. Einmal gibts ne ganz bestimmte, nur für die Keys. Die bekommt das Fenster, das im Vordergrund ist. Sollte das nicht bearbeitet worden sein, wird das nächste Fenster abgearbeitet usw... Und wenn kein Fenster die Nachricht haben will, bekommt sie ein eventueller Hook.

Ich hatte in der einen Bearbeitung der Nachrichten vergessen, die Einstellungen abzufragen. Behebe ich in der nächsten Version...

mleyen 8. Dez 2009 19:41

Re: SmallTune [0.3.1]
 
Soweit ich das sehe funktionierts.
Nur jetzt gibts einen neuen Bug:
Du prüfst im MediaKey-Event wahrscheinlich nicht auf KeyUp -/ down. D.h. alle Mediakeys kommen anscheinend doppelt an.
(zB: 2 Tracks nach vorne. Oder Ich drücke "Play / Pause" und das Lied hält an, und wenn ich es loslasse gehts weiter :lol: )


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:14 Uhr.
Seite 5 von 8   « Erste     345 67     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz