PDA

View Full Version : Scripting: Entry for "Encoded with" ?


laserflor
08-23-2004, 06:10 PM
Hello to all,
I readed the article: http://www.dbpoweramp.com/developer-scripting.htm So I know, that I am able to "remote control" the dbPowerAMP Audio Player :smile2: i.e. with Delphi.
I know, that the dbPowerAMP Musik Converter installs an explorer extension. After that, a tooltip is shown, when I mark a mp3-file.
This tooltip shows among other things an entry called "Encoded with".
Can I get this information within a dbPoweramp.Multiplayer object?
Nice Greetings
laserflor alias Rolf

Spoon
08-24-2004, 08:19 AM
Not possible, sorry.

Unregistered
08-24-2004, 05:09 PM
Hello Spoon,
thank you for your quick answer.
It's a pity, that I can't get this information.
But.. Do you know, how the explorer extension gets this information from within the mp3-file, that I can fit this feature in my program?
Nice greetings
laserflor alias Rolf

Spoon
08-25-2004, 06:09 AM
It is held within the decoding dll, the result is not passed out independantly, in theory it is possible with 'getpopupinfo.exe', what is your program?

laserflor
08-25-2004, 07:35 PM
I am programming an application in Delphi, to catalogue my mp3-files. I know, there are many apps for that, but I wanted "mine". To play the mp3s, I use mpegdll.dll (http://www.delphimania.de/cgi-bin/countdown/countdown.cgi?mpegdll.zip) by Eugene Mayevski. I'm afraid, that the code doesn't work with mp3s from any encoders and causes general protection faults :( or invalid timecodes :( or doesn't play it :( . That's the reason, because I want to know, wich encoder did it. If it is not in the list, that works with mpegdll.dll, I would "convert" it with the dbPowerAMP converter.
Nice greetings
laserflor

Spoon
08-26-2004, 08:21 AM
Here is how I call get popup:

//------get a temp file-----
STempFile TempFile("dBP");
SFile File(TempFile.c(), GENERIC_WRITE | GENERIC_READ, CREATE_ALWAYS);
if (File.IsOpen())
{
char writeFileName[MAX_PATH];
strcpy(writeFileName, Filename);
File.WriteXBytesToFile(writeFileName, MAX_PATH);
//------run popup get info-----
char ToRun[MAX_PATH * 2];
char PathMulti[MAX_PATH];
GetApplicationPath(PathMulti);
wsprintf(ToRun, "\"%sGetPopupInfo.exe\" <tempF>%s", PathMulti, TempFile.c());
if (RunApplicationSpecial (ToRun, true))
{
File.SetFilePos(0);
Found = true;
int Need = (int)File.GetThisFileSize();
if (Need)
{
char *pText = new char[Need];
if (File.ReadXBytesFromFile(pText, Need))
wSetString.SetStringUni8(pText);
delete []pText;
}
} else {
Found = true;
wSetString.SetString("Error GetPopupInfo.exe Not Found");
}
}


Then pull out the encoded by string.