Support Request #2747
closedRetrieve name of dat file
Description
Supportanfrage:
Hallo,
habe Probleme bei der Verwendung der cMacroResolver Klasse. Ich möchte den DAT-Dateinamen aus dem Macro $HD_PLAYER_FILE$ innerhalb eines Filters auslesen, bekomme aber immer nur einen leeren String zurück. Habe auch die Variante mit $(HD_PLAYER_FILE) versucht ohne Erfolg. Verwendet wird der cMacroResolver innerhalb der Run(...) Methode des Filters, im speziellen dann wenn der Harddiskplayer das EC_PlayPreFileOpen Event feuert. Auch die Registrierung eines eigenen Macros funktioniert nicht. Hierfür habe ich die Beispiel Implementation cMacroResolverImpl aus den ADTF Examples verwendet.
Init Funktion des Filters
if (eStage == StageFirst) { RETURN_IF_FAILED(_kernel->SignalRegister(static_cast<IRunnable*>(this))); pResolver = new cMacroResolverImpl; RETURN_IF_FAILED(_runtime->RegisterObject(pResolver, OID_MACRORESOLVER, IRuntime::RL_Kernel)); }
Run Funktion des Filters
if (code == IEvent::EC_PlayPreFileOpen) { const tChar* MACRO_HD_PLAYER_FILE_NAME = "$HD_PLAYER_FILE_NAME$"; const tChar* MACRO_USS_HD_PLAYER_FILE_NAME = "$USS_HD_PLAYER_FILE_NAME$"; tChar filename[265]; tChar ussFilename[256]; RETURN_IF_FAILED(pResolver->ResolveMacros(MACRO_HD_PLAYER_FILE_NAME, filename, 256)); RETURN_IF_FAILED(pResolver->RegisterMacro(MACRO_USS_HD_PLAYER_FILE_NAME, "abcd", IMacroResolver::MRF_Overwrite)); }
Ziel: Ich möchte den Namen der Aufnahme-DAT-Datei vom Playback-DAT-Dateinamen abhängig machen, aber nicht exakt verwenden z.B. abcd_split_000.dat -> abcd.dat
Vielen Dank für eure Hilfe.
Mit freundlichen Grüßen,
Rick Vogel
Lösung:
Möglicherweise wird es im falschen runlevel aufgerufen, wodurch es dann leer ist.
Weitere Informationen zu Macros:
https://support.digitalwerk.net/adtf/v2/adtf_sdk_html_docs/page_adtf_macros.html
Related issues
Updated by hidden almost 6 years ago
- Description updated (diff)
- Status changed from New to In Progress
- Topic set to ADTF::FilterSDK
- Customer set to AUDI
Hallo Rick,
Grundsätzlich wäre es vlt sinnvoller, den Namen über das Macro $HD_PLAYER_FILE_NAME$ abzurufen.
In welchem Runlevel rufst du das Macro auf? Möglicherweise wird es im falschen runlevel aufgerufen, wodurch es dann leer ist.
Informationen dazu findest du unter
https://support.digitalwerk.net/adtf/v2/adtf_sdk_html_docs/page_adtf_macros.html
Ohne deinen Filter können wir leider nicht genau sagen, woran es liegen könnte.
Kannst du uns deinen Filter zur Verfügung stellen?
Gib uns bitte Feedback bis 01.6.2018
Updated by hidden almost 6 years ago
- Status changed from In Progress to Customer Feedback Required
Updated by hidden almost 6 years ago
Hallo Rick,
bitte gib uns Feedback bis spätestens 06.06.2018.
Gruß,
Michael
Updated by hidden almost 6 years ago
Hi Michael,
danke für die Vorschläge. Das Ticket kann geschlossen werden, werde es aus Zeitgründen anders realisieren.
Gruß,
Rick
Updated by hidden almost 6 years ago
- Description updated (diff)
- Status changed from Customer Feedback Required to To Be Closed
- Resolution set to Solved Issue
Updated by hidden almost 6 years ago
- Subject changed from cMacroResolver / $HD_PLAYER_FILE$ etc. to Retrieve name of dat file
- Status changed from To Be Closed to Closed
- Private changed from Yes to No
Updated by hidden about 5 years ago
- Related to Support Request #6181: HD_PLAYER_FILE could not be resolved added