AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi ASIO Callback nur bei Mausbewegung
Thema durchsuchen
Ansicht
Themen-Optionen

ASIO Callback nur bei Mausbewegung

Ein Thema von TomyN · begonnen am 4. Mai 2024 · letzter Beitrag vom 6. Mai 2024
Antwort Antwort
TomyN

Registriert seit: 8. Nov 2006
Ort: Bayreuth
265 Beiträge
 
Delphi 10.3 Rio
 
#1

ASIO Callback nur bei Mausbewegung

  Alt 4. Mai 2024, 14:30
Hallo,
Hier tritt mit einem ASIO Gerät der folgende Fehler auf , dass ich nicht verstehe.

Es ist eine kleine Testanwendung, in der nur die vom Treiber zurückgemeldeten Werte (Sampleposition und -Zeit) angezeigt werden.
Mit vielen Treibern (u.a. ASIO4ALL) läuft das wunderbar.
Mit einem Treiber passiert aber folgendes:
Es kommt ein Callback, dann passiert erstmal nix mehr.

Bewegt man nun die Maus, dann läuft die Anzeige ganz normal hoch, aber nur solange man die Maus wirklich bewegt.

Die Anzeige läuft dann kontinuierlich, auch springt sie nicht, d.h. die erste Vermutung des fehlenden Updates der Anzeige ist es nicht.
Das wirklich verrückte (finde ich) ist, dass der Effekt auch auftritt, wenn die Anwendung nicht den Focus hat, d.h. bei einer Mausbewegung in einem anderen Fenster läuft es, solange man die Maus bewegt.

Mein System ist win10/64, Delphi 10.3
Thomas Neumann
Meine Projekte
www.satlive.audio
www.levelcheck.de
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.332 Beiträge
 
Delphi 12 Athens
 
#2

AW: ASIO Callback nur bei Mausbewegung

  Alt 4. Mai 2024, 14:46
Wie/Wo kommt der Callback an?

* im Hauptthread
* im einem eigenen Thread
* falls im Thread, wird und wenn ja wie wird synchronisiert?

Wenn die Anzeige/Verarbeitung im Haupthread ankommt/verarbeitet

Wenn etwas in den Hauptthread synchronisiert wird, aber das Benachrictigungsevent nicht annkommt / nicht gesendet wird, und der hauptthread ist grade im Idle, dann wartet er bis zur nächsten Message (z.B. von der Maus).
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
TomyN

Registriert seit: 8. Nov 2006
Ort: Bayreuth
265 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: ASIO Callback nur bei Mausbewegung

  Alt 4. Mai 2024, 17:17
Dem Treiber wird eine Callbackfunktion übergeben, die dann vom Treiber aufgerufen wird (werden soll) wenn er Daten hat bzw. braucht.
In der konkreten Situation sieht das ganze so aus

Code:
procedure TMainForm.BufferSwitchTimeInfo(index: integer; const params: TAsioTime);
begin
  // tell the interface that the sample position has changed
  PostMessage(Handle, PM_UpdateSamplePos, params.timeInfo.samplePosition.hi,
                params.timeInfo.samplePosition.lo);
  Driver.OutputReady;   // some asio drivers require this
end;
Was mich eben verwirrt, ist das die Sampleposition sich immer um die Buffergröße erhöht. Wenn es ein Problem mit der Synchronisation / Nachricht wäre, dann müsste der Zähler ja 'hupfen'.
Thomas Neumann
Meine Projekte
www.satlive.audio
www.levelcheck.de
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.892 Beiträge
 
Delphi 12 Athens
 
#4

AW: ASIO Callback nur bei Mausbewegung

  Alt 4. Mai 2024, 17:22
Du hast aber schon geprüft, ob der Callback nicht aufgerufen wird oder die Message danach nicht verarbeitet wird, oder? (z.B. mit OutputDebugString)
Das geht aus deinem Post leider nicht hervor, da du nur den Effekt in der Anzeige beschreibst.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
TomyN

Registriert seit: 8. Nov 2006
Ort: Bayreuth
265 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: ASIO Callback nur bei Mausbewegung

  Alt 4. Mai 2024, 18:49
Ja, hab ich. Das Callback wird nicht aufgerufen.
Thomas Neumann
Meine Projekte
www.satlive.audio
www.levelcheck.de
  Mit Zitat antworten Zitat
TomyN

Registriert seit: 8. Nov 2006
Ort: Bayreuth
265 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: ASIO Callback nur bei Mausbewegung

  Alt 4. Mai 2024, 19:34
Extrem komisch... jetzt läuft es wie es soll .. obwohl ich nix geändert hab...
Thomas Neumann
Meine Projekte
www.satlive.audio
www.levelcheck.de
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz