AIMP Forum

AIMP for PC => Skin Editor, Skin Engine => Вопросы / Questions => Topic started by: 12costa on January 20, 2026, 20:20:43

Title: get right data from providers
Post 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
Title: Re: get right data from providers
Post by: 12costa on January 20, 2026, 20:34:42
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
Title: Re: get right data from providers
Post by: 12costa on January 20, 2026, 21:07:43
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

Title: Re: get right data from providers
Post by: 12costa on January 20, 2026, 21:22:03
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
Title: Re: get right data from providers
Post by: Artem on January 21, 2026, 08:14:19
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.
Title: Re: get right data from providers
Post by: 12costa on January 21, 2026, 17:41:17
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..

Title: Re: get right data from providers
Post by: 12costa on January 21, 2026, 19:50:29
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....
Title: Re: get right data from providers
Post by: Black_AVP_Bim on January 21, 2026, 20:13:15
Если Вам нужно получить текущую дату, можете посмотреть здесь: https://www.aimp.ru/forum/index.php?topic=27831.msg384690#msg384690
Title: Re: get right data from providers
Post by: 12costa on January 21, 2026, 20:50:46
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
Title: Re: get right data from providers
Post by: Black_AVP_Bim on January 22, 2026, 11:10:28
Посмотрите пример во вложении.
Скрипт можно тактировать и от таймера (второй пример).
Title: Re: get right data from providers
Post by: 12costa on January 22, 2026, 16:45:56
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
Title: Re: get right data from providers
Post by: 12costa on January 22, 2026, 17:40:33
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

Title: Re: get right data from providers
Post by: Black_AVP_Bim on January 22, 2026, 18:14:26
В обоих вариантах данные обновляются с периодом в 1 секунду, можете убедится в этом подогнав время в системе ближе к полуночи.
Если у Вас задача создать свой скин, изучайте справку к редактору и встроенные в него скины.
Если время не нужно отображать, то эту связь в примерах нужно удалить.
(https://www.aimp.ru/forum/index.php?action=dlattach;topic=77119.0;attach=76749)
Title: Re: get right data from providers
Post by: 12costa on January 22, 2026, 19:13:06
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...--

Title: Re: get right data from providers
Post by: 12costa on January 26, 2026, 20:29:50
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
Title: Re: get right data from providers
Post by: Black_AVP_Bim on January 27, 2026, 13:52:57
Я так и не понял, какая у вас задача и у меня нет возможности создавать проект на каждый ваш вопрос, тем более, что это элементарные вещи.
Посмотрите тему (https://www.aimp.ru/forum/index.php?topic=27831.0), в ней можно найти ответы на многие вопросы, а в этой теме  (https://www.aimp.ru/forum/index.php?topic=61370.0)есть конкретные примеры.
Title: Re: get right data from providers
Post by: 12costa on January 27, 2026, 17:53:15
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