AIMP Forum
AIMP for PC => Skin Editor, Skin Engine => Вопросы / Questions => Topic started by: 12costa on January 20, 2026, 20:20:43
-
Hello community and congratulation developers! This AIMP rocks truly!
I played with it only recently and find it a good player, expecially on its 64bit release.
However now i am trying some skinning and cannot get the right way to obtain data from provider through bindings. I have this two issues:
1) i copied properties from mwitrackartist to mwi track title and now obviously the textdisplay shows the artist name instead of title BUT when going into properties/bindings it shows the data provider as fileinfo. SO how to get the right metadata or tag field from fileinfo (cannot find any way to send the right query or request)
2) i would find useful to add a clock to the player so i have tried with a timedisplay object binding displayvalue with systemtime provider BUT it returns a number like 1099:- (it seems to count minutes of activity?).
how it should be done correctly?
i will be happy with any (right) suggestion you could give me
thanks,
Filippo
-
just a brief addition:
now trying to see how to use well the editor i made this attempt: changed the bindings link from fileinfo to duration (so from displayvalue -> fileinfo to displayvalue -> duration) with same access point (mwitracktitle) -> provider (prvPlayingfileinfo) and as a result, when running the skin i see %usertemplate2 ... I know i am missing something but cannot figure out what exactly...
thanks for help
-
going forward:
setting %usertemplate1to template property brings back the title as well as putting %title so i guess it works the same for other metadata too.
I will keep trying with other fields
BUT then where (from which provider) to get the time (hh:mm of the day) and in which element to display it (text display with appropriate template or time display -wnich doesn't have template property ?)
so i think my questions are half solved at the moment...Honestly I am doing my best to scroll through the help files provided with the skin editor but given the amount of elements and of property and of bindings i am a bit lost...
If someone has at least a starting point to show the hour i will be grateful...
I have seen somewhere there is an option to query %today that returns date and time (but cannot find out in which element/access point/provider combination
thank you
filippo
Thank you
-
Ok now i got here -and sorry if i bother the whole forum with my experiment-
calling system time provider from a textdisplay element returns the actual time of the day (19 18 :ss) WHILE calling the same from a time display element returns something else (1158-)
Ok for me using always text display elements BUT where/how can I use string formatting functions (to cut out seconds) in property (i have tried %hh:ss in template but doesn't work)
ALSO where can i get the date from (to put together with the time -if available)
Thank if you want to read all my attempts so far... but you can just read this last to figure out my question
thanks
Filippo
-
just a brief addition:
now trying to see how to use well the editor i made this attempt: changed the bindings link from fileinfo to duration (so from displayvalue -> fileinfo to displayvalue -> duration) with same access point (mwitracktitle) -> provider (prvPlayingfileinfo) and as a result, when running the skin i see %usertemplate2 ... I know i am missing something but cannot figure out what exactly...
thanks for help
Please, refer to SkinEditor's Manual (exactly to prvPlayingfileinfo description).
%UserTemplateXXX - are special macros that takes real template from app's settings (so, end user can change it format as it wants).
In your case, you should set %AlbumArtist (or any other template you want) to Template property of Label element. List of all macros are available in the Manual.
-
Many thanks for putting attention to my post, I really appreciate it!
I have reviewed extensively (i.e. three to four times) the skin editor guide for what concern my question AND i got to this point:
prvsystemtime only return time but not date SO i can create a custom provider that read the date somewhere with function Date : TDateTime or even DateToStr (DateTime : TDateTime) : string and read from this provider with a text display element. Is this correct?
If this is correct could you PLEASE share an example script on how to set up the custom provider with the right syntax (I'm not really a coder honestly, but i can understand it)
ALSO what is the custom provider template to start from? i may guess a scriptableeventhandler or a stringoperatorconcatenator but get really lost at this point...
PLUS is there a way of retrieving computername somewhere through a script/provider or also as a custom variable definition?
Thanks for any hint you will share..
-
Here you have my understanding so far:
i tried to create a custom provider by a simple script that is
procedure decodeDate (DateTime : TDateTime; var year, month, day: word); //from help guide
var ddate : word;
begin
ddate = Month;
end;
BUT the script validator expects a ; after ddate
ALSO when creating a dummy provider just to make tests it DOESN'T APPEAR on provider list for binding to displayvalue
SORRY I am lost....
-
Если Вам нужно получить текущую дату, можете посмотреть здесь: https://www.aimp.ru/forum/index.php?topic=27831.msg384690#msg384690
-
thank you black avp
i did so:
create a custom provider scriptable event handler
put code you provided on your link,
build code, validate,
Like this i don't see any custom provider to bind to textdisplay (also if I name textdisplay to datedisplay in element property and in script)
If i link the custom provider scriptable event handler to prvsystemtime i get the following error: list index out of bound
Don't understand really what goes what...
Is it possible to set a var that reads date (maybe formatted as string so to get it nice) from custom variables?
Thanks
-
Посмотрите пример во вложении.
Скрипт можно тактировать и от таймера (второй пример).
-
Hello black avp
I have just had a look at what you suggest, but in this a way you should send me a new project every day or it would not work...
If this is good enough for you i will go ahead with it but i believe there is better to do. Don't you?
thank you
-
Maybe i decoded too fast... sorry
but this is what I understand :
in project 1
you create a new scriptable operator counter with decode date function and send it outcomes to template property of a txt display element
(it triggers at program start i believe)
in project 2
you create also a timer with a logical operation timer that run the function of the scriptable operator counter every x milliseconds so it is updated the template field of the txt display
BUT then you link
in project 1
prvsystemtime-time to newscriptableoperatorcounter-position
and
txtdisplay-displayvalue to prvsystemtime-time
in project 2
newlogicaloperatortimer-action to newscriptableoperatorcounter-position
newscriptableoperatorcounter to no other provider
txtdisplay-displayvalue to prvsystemtime-time
BUT them 2 works also without any binding from dsplayvalue to prvsystemtime-time because i think the script in custom provider update the template property anyway
ALSO the first project changes the date also while it is running (not only at startup) so seems better to me than 2nd -at a first sight-
SO I am still lost in custom provider creation... and may be in need of more of your projects... maybe next days...
MEANWHILE thanks a lot for this one here.. i will copy in my skin project and let you know if anything wrong...
NEW QUESTIONS for your evaluation:
- so to format the output a Tase digit display or a Tase time display would you use this same way with a customs criptableoperatorncounter?
- what is the use of TDateTime type ?
- do you think it will cause some conflict if i run two instances of AIMP, one just to have a clock on my desktop? Would you then reccomend which version? 32bit/64bit portable or resident?
Thanks again,
i will wait your sights while i skin (hope to finish soon with this trick of yours!)
Filippo
-
В обоих вариантах данные обновляются с периодом в 1 секунду, можете убедится в этом подогнав время в системе ближе к полуночи.
Если у Вас задача создать свой скин, изучайте справку к редактору и встроенные в него скины.
Если время не нужно отображать, то эту связь в примерах нужно удалить.
(https://www.aimp.ru/forum/index.php?action=dlattach;topic=77119.0;attach=76749)
-
thank you,
maybe i understand, but in case you want to display date AND time in same txtdisplay element what to put in template field of txtdisplay to format the time output of prvsystemtime to displayvalue if the property 'template' is overwritten every 1 second by the custom provider?
let's say you don't need seconds...
--this just for talking/chatting...--
-
hello again black avp,
i am progressing with my skin design but still struggling with bindings..
To cut it short I spent couple of hours trying to get the values 0 to 100 integer from prvVolume/progress to a txtdisplay/displayvalue instead than in percentage 100.00% [who is setting volume at 0,0x% intervals is fool to me ;] BUT i only made it through a custom string concatenator that cuts out the first 2 or 3 digits from prvVolume/progress and send it to txtdisplay/displayvalue. Is this the correct/clever way of doing it? Or you can format somehow the word output of prvVolume/progress before sending to textdisplay/displayvalue?
[it is possible though to have values 0 to 100 through a digitdisplay that gets integer values but then you have to do digits in frames which is not the same as picking a font...]
THEN to save me hours of trials and errors could you help me in making a txtdisplay that changes its displayvalue when clicked.
I start from a scriptable event handler binded with on click property of the txtdisplay element BUT... how to change the bindings of the element [is the begin.update function to call?] Do you have an example script to pass me pleas?
To have a classic time elapsed/time remaining indicator is this a possible approach or you have to go by changing the template property of the txtdisplay?
(is there a list of accepted parameters for template property also you can provide me with?)
By the way, doing my trials i found that prvVolume/progress works well also when linked to button/action (not only slider) -actually even better when linked to button hold - so the use of acvolumeup and acvolumedown seems to me unnecessary [this for your evaluation]
thanks for the help you can give me
you will make my day!
Filippo
-
Я так и не понял, какая у вас задача и у меня нет возможности создавать проект на каждый ваш вопрос, тем более, что это элементарные вещи.
Посмотрите тему (https://www.aimp.ru/forum/index.php?topic=27831.0), в ней можно найти ответы на многие вопросы, а в этой теме (https://www.aimp.ru/forum/index.php?topic=61370.0)есть конкретные примеры.
-
ok black_avp,
sorry for being too long.
now i have found half answers to my yesterday's question:
--to show a display that changes btw elapsed and remaining time it's better to use timedisplay element binded to prvplayerstate\trackposition (switching on click function is built already into the element)
---all metadata available for reading from prvplayingfile\fileinfo are listed under title formatting help in aimp option (sorry ...i know they are always the same but i can't know them by memory)
changing provider disable links to metadata via template property (and i oversaw this point... sorry)
Sorry to have bothered... I am trying to get where i would like... You know... "flawless skin or nothing"...
(just to update you (for fun) i am struggling now with resizing the skin with elements with negative margins... better to avoid those i guess... or perhaps ?!)
thank you for your support,
Filippo