0 Members and 1 Guest are viewing this topic.
1. There is no way to add custom group to playlist programatically2. Some of IAIMPFileInfo properties are not saved in playlist file (e.g. I can't save comment, url or AIMP_FILEINFO_PROPID_CUSTOM)3. There is no way to know the result of confirmation for AIMP_MSG_CMD_PLS_DELETE_PLAYING_FROM_HDD. I can only intercept the call, but I don't know if user clicked OK or Cancel4. Internet API doesn't allow to send request with custom method like PUT or DELETE5. The track duration is not displayed even if it is explicitly set in IAIMPFileInfo (it is also not saved in playlist file)6. There is no way to intercept the drag and drop to windows explorer. Or better, it should possible right in AIMP to also drag the radio stream (it should just download stream to file, only it it is not live of course)7. There is no information in the docs that IAIMPExtensionPlaylistManagerListener should be registered as IID_IAIMPServicePlaylistManager. An intuitive thing to do for me was to try to register it as RegisterExtension(IID_IAIMPExtensionPlaylistManagerListener, ...8. There is no way to handle custom Open File Location9. There is no way to handle Copy selected files to clipboard10. (Bonus for AIMP4) API to load custom waveform image or data11. Should IAIMPString *ContentType be released in OnAccept handler?12. AIMP4 insists that there is memory leak after any of my HTTP requests, even though I'm pretty sure I'm releasing all streams and handles. Is that my fault or AIMP's? (code)13. What is the procedure of adding plugin to aimp.ru addons catalog?
Russian translate in attach. The length of the lines does not depend on the length of the text, so little has changed phrases.
If possible, make the connection with the transferred key account (You can refer to the figure "<lang>_connect.png"\"<lang>_disconnect.png") in a folder with the languages.
2. Yes, because playlist file format does not allow save multiline values or custom data.8-9. What you want to do for this command? Open the browser with information about the file/stream?11. I think no, if you dont call the AddRef method13. I need small preview (200x150 px) for publishing the plugin. Optionally, you can provide to me large preview too (it appears when user clicking the small preview).
Dialog add url is not very convenient. It would be better to use a mini-browser
11. Exactly what I thought but from the AIMP4 memory leak log it looks like content type is leaking.
Hm, so try to release it
So, I have checked the plugin, looks like plugin does not release refereneces of interfaced objects in some cases. I think, this happend because of difference between C++ and Delphi when working with interfaces.
13 - 20 bytes: TACLCriticalSection x 137 - 52 bytes: TAIMPStringAdapter x 153 - 68 bytes: UnicodeString x 1
{pseudo-code}ContentType.refCount := 0;OnAccept();- ContentType.Release();--- refCount := refCount - 1; { 0 - 1 = 0xFFFFFFFF }--- if refCount = 0 then { At this point, refCount = 0xFFFFFFFF so this condition is never met! }--- free the memory---
ContentType->AddRef(); // refCount = 1ContentType->Release(); // refCount = 0 and free the memory
This is however counter-intuitive and I think there should be AddRef in AIMP before OnAccept, and Release after the call.Let me know your thoughts about this.