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
Seite 1 von 2  1 2      
TomyN

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

ASIO Callback nur bei Mausbewegung

  Alt 4. Mai 2024, 13: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
43.201 Beiträge
 
Delphi 12 Athens
 
#2

AW: ASIO Callback nur bei Mausbewegung

  Alt 4. Mai 2024, 13: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).
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
TomyN

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

AW: ASIO Callback nur bei Mausbewegung

  Alt 4. Mai 2024, 16: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.367 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: ASIO Callback nur bei Mausbewegung

  Alt 4. Mai 2024, 16: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
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
TomyN

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

AW: ASIO Callback nur bei Mausbewegung

  Alt 4. Mai 2024, 17: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
166 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: ASIO Callback nur bei Mausbewegung

  Alt 4. Mai 2024, 18: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
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.179 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: ASIO Callback nur bei Mausbewegung

  Alt 5. Mai 2024, 15:39
Ich weiß nicht, ob das was beiträgt. Aber ich hatte genau dieses Phänomen letztens bei einem Server, den ich mit TeamViewer steuern wollte: Screen wurde nur aktualisiert, wenn ich die Maus bewegt habe. Abhilfe war, die Hardwarebeschleunigung zu deaktivieren.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: ASIO Callback nur bei Mausbewegung

  Alt 5. Mai 2024, 18:26
Zitat:
Teamviewer
War das ein Monitor am Rechner?

Ich hatte das bei einem MiniPC, wenn nichts am HDMI hängt.
Hatte es nicht ausprobiert, aber dafür gibt es so FakeMonitore.

https://www.amazon.de/Headless-Emula.../dp/B06XT1Z9TF
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
TomyN

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

AW: ASIO Callback nur bei Mausbewegung

  Alt 5. Mai 2024, 21:06
Ich weiss nicht, fehlendes Update / Synchronisation eines Controls oder einer Anzeige kann ich mir vorstellen. Aber das der Treiber die Callbacks nur dann aufruft, wenn die Maus bewegt wird und dann die Samples/Zeit entsprechend erhöht finde ich extrem seltsam.
Thomas Neumann
Meine Projekte
www.satlive.audio
www.levelcheck.de
  Mit Zitat antworten Zitat
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.179 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: ASIO Callback nur bei Mausbewegung

  Alt 6. Mai 2024, 06:24
Zitat:
Teamviewer
War das ein Monitor am Rechner?
Nein, kein Monitor dran. Virtualisierter Rechner auf VMWare.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 16:11 Uhr.
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