Example of how to dynamically control image position anywhere on screen using variables
logo_H and logo_V can be set by slider or any numeric value
exactly the same slider code can be used to create a 2d placement slider - smaller size as wanted - in a skin
or variables can take numeric value from any action
logo_H and logo_V can be set by slider or any numeric value
<skin name="Logo Sliders" version="850" width="1920" height="1080" image=YOURLOGO" nbdecks="2">
<video x="0" y="0" width="1920" height="1080"/>
<slider action="param_multiply 1920 & set logo_H" action2="param_multiply 1080 & set logo_V" direction="right" direction2="up" orientation="2d" >
<pos x="0" y="0"/>
<size width="1920" height="1080"/> screen size
<fader>
<size width="100" height="100"/> rendering size
<off x="1" y="1" width="422" height="298"/> size of YOURLOGO to make it resizeable
</fader>
</slider>
exactly the same slider code can be used to create a 2d placement slider - smaller size as wanted - in a skin
or variables can take numeric value from any action
Mensajes Sun 19 Sep 21 @ 5:12 pm
example of use:
moving logo; X=position in song, Y=peek level
moving logo; X=position in song, Y=peek level
repeat_start px ? repeat_stop px & set logo_H 0 & set logo_V 1920 : repeat_start px 10ms -1 & set logo_H `deck active param_multiply get_position 1920` & set logo_V `deck active param_multiply get_level_peak 1080`
Mensajes Sun 19 Sep 21 @ 6:55 pm
Cool version of flying logos and a rotating logo uploaded
added clock and custom text on logo and beat flashing
wait and see
added clock and custom text on logo and beat flashing
wait and see
Mensajes Tue 21 Sep 21 @ 3:52 pm
image only or can this apply to pos &| w/h for vid source?
<video source="channel" chan="3" canstretch="true">
<pos x="+633+5" y="+0"/>
<size width="633" height="353"/>
</video>
<video source="channel" chan="3" canstretch="true">
<pos x="+633+5" y="+0"/>
<size width="633" height="353"/>
</video>
Mensajes Mon 27 Sep 21 @ 11:35 am
It's in fact a simple 2D Slider taking the whole screen size
So that only displays what a fader can :
shape and text and image from background and images from custom_icon
Yes I woul'd like it to work with any visuals or video but currently not possible this way
Simply using the videoskin as a main skin allows to set position and move picture with mouse
but using it as an overlay to existing skin prevent the 2d slider to.... "slide" :
only one click control working (passthrough="pass" is only one shot for top element then underlaying element take full control)
relative (mouse scroll) and rightclick not usable in this situation, does not apply to both elements of 2d sliders (that's why some implementations - such as old skin tablet - use 3 sliders for that)
So that only displays what a fader can :
shape and text and image from background and images from custom_icon
Yes I woul'd like it to work with any visuals or video but currently not possible this way
Simply using the videoskin as a main skin allows to set position and move picture with mouse
but using it as an overlay to existing skin prevent the 2d slider to.... "slide" :
only one click control working (passthrough="pass" is only one shot for top element then underlaying element take full control)
relative (mouse scroll) and rightclick not usable in this situation, does not apply to both elements of 2d sliders (that's why some implementations - such as old skin tablet - use 3 sliders for that)
Mensajes Mon 27 Sep 21 @ 3:05 pm
Interesting :
<video> is close to work because using it in a fader currently displays background or color (not video though) and thus can be used as a visual -(at least in main skin)
<icon> is not so good with 2D fader : in some case only one direction update and thus detach from image
<video> is close to work because using it in a fader currently displays background or color (not video though) and thus can be used as a visual -(at least in main skin)
<icon> is not so good with 2D fader : in some case only one direction update and thus detach from image
Mensajes Mon 27 Sep 21 @ 4:55 pm
locodog wrote :
image only or can this apply to pos &| w/h for vid source?
<video source="channel" chan="3" canstretch="true">
<pos x="+633+5" y="+0"></pos>
<size width="633" height="353"></size>
</video>
<video source="channel" chan="3" canstretch="true">
<pos x="+633+5" y="+0"></pos>
<size width="633" height="353"></size>
</video>
In latest other thread I figureout how to do this with samples (thanks to Adion ^^) using "resize" plugin
this made me think about a modification to the plugin "resize" that is currently using "position" which is not scriptable (unless you know how to ?)
in a way to make position easily scriptable , I would just have to declare sliders for origin and size
would by the way maybe allow to bypass limitations with position (i.e.: start or end out of screen)
Mensajes Tue 05 Oct 21 @ 11:20 am
Not looked in to position type of input.
Could you express it as two co-ords with 4 dials [2 for top left, 2 for bottom right corner]
or 4 dials, height, width, co-ords of one corner
Could you express it as two co-ords with 4 dials [2 for top left, 2 for bottom right corner]
or 4 dials, height, width, co-ords of one corner
Mensajes Tue 05 Oct 21 @ 12:07 pm
I made a skin for the plugin GUI :
https://1drv.ms/u/s!AnSOFuC3eKruiGTwdjb1qfHa2GwD?e=PouHaX
could be 1/10 in size but there are many workarounds needed with unusual use of functions
- sliders scrolling out of bounds
- slider scroll passed to action
- 2d sliders scrolling passing to first slider action
- 2d slider rightclick only for first slider
- 2d sliders not refreshing fader when only one slider moves
- grabzone disappearing if not at least one pixel free
- clickthrough pass does not handle sliders and top elements (only bottom element get next actions)
)
the same kind of skin usable to control logo placement though
I think it is friendly enough (but flashy debug colors) :
click and move cursor or slide logo/text over video to fix coords
right click to toggle between 2 modes move window/set coords
mouse roller to set transparency
lateral sliders for height and width :
can scroll or click
rightclick for temporary
can move using borders in pointing mode
can resize using bottom right corner double click restore default size
https://1drv.ms/u/s!AnSOFuC3eKruiGTwdjb1qfHa2GwD?e=PouHaX
could be 1/10 in size but there are many workarounds needed with unusual use of functions
- sliders scrolling out of bounds
- slider scroll passed to action
- 2d sliders scrolling passing to first slider action
- 2d slider rightclick only for first slider
- 2d sliders not refreshing fader when only one slider moves
- grabzone disappearing if not at least one pixel free
- clickthrough pass does not handle sliders and top elements (only bottom element get next actions)
)
the same kind of skin usable to control logo placement though
I think it is friendly enough (but flashy debug colors) :
click and move cursor or slide logo/text over video to fix coords
right click to toggle between 2 modes move window/set coords
mouse roller to set transparency
lateral sliders for height and width :
can scroll or click
rightclick for temporary
can move using borders in pointing mode
can resize using bottom right corner double click restore default size
Mensajes Wed 06 Oct 21 @ 12:37 am
added some fixes :
gray background when no video
cross pointer over logo in grab mode
fixed resize area and resize indicator
less flashy colors
look usable
gray background when no video
cross pointer over logo in grab mode
fixed resize area and resize indicator
less flashy colors
look usable
Mensajes Wed 06 Oct 21 @ 2:30 am
Last rightclick issue moving cursor when going to grab mode fixed
https://1drv.ms/u/s!AnSOFuC3eKruiGTwdjb1qfHa2GwD?e=F8y8tR
logo commented out ; brown colors instead of flashy colors
https://1drv.ms/u/s!AnSOFuC3eKruiGTwdjb1qfHa2GwD?e=F8y8tR
logo commented out ; brown colors instead of flashy colors
Mensajes Wed 06 Oct 21 @ 4:49 am
Modified plugin (no problem with core it is working) ok, sliders and position
Trying to implement the custom skin :
everything as usual with audio plugin, but this one is the first Video plugin i test with custom skin
in header file :
class Resize8 : public IVdjPluginVideoFx8
{
public:
HRESULT VDJ_API OnLoad();
HRESULT VDJ_API OnGetPluginInfo(TVdjPluginInfo8* info);
HRESULT VDJ_API OnGetUserInterface(TVdjPluginInterface8* pluginInterface);
ULONG VDJ_API Release();
.....
in code file :
//---------------------------------------------------------------------------------------------
HRESULT VDJ_API Resize8::OnGetUserInterface(TVdjPluginInterface8* pluginInterface)
{
pluginInterface->Type = VDJINTERFACE_SKIN;
...
the function never called, the virtual one from vdjPlugin8.h
// Custom user-interface
// Fill the VDJ_WINDOW or xml/bitmap info in the passed pluginInterface structure, to define your own plugin window
virtual HRESULT VDJ_API OnGetUserInterface(TVdjPluginInterface8 *pluginInterface) {return E_NOTIMPL;}
is called instead
the same code with another type of plugin
class Resize8 : public IVdjPluginDsp8
{
...
is working OK
VS 2019 and SDK 2019 or recent SDK 2021
of course both release and debug mode in 64bit
I really can't figure out where the problem can be
knowing the skin is working when inserted from my PlugSkin which defines as Dsp8
Trying to implement the custom skin :
everything as usual with audio plugin, but this one is the first Video plugin i test with custom skin
in header file :
class Resize8 : public IVdjPluginVideoFx8
{
public:
HRESULT VDJ_API OnLoad();
HRESULT VDJ_API OnGetPluginInfo(TVdjPluginInfo8* info);
HRESULT VDJ_API OnGetUserInterface(TVdjPluginInterface8* pluginInterface);
ULONG VDJ_API Release();
.....
in code file :
//---------------------------------------------------------------------------------------------
HRESULT VDJ_API Resize8::OnGetUserInterface(TVdjPluginInterface8* pluginInterface)
{
pluginInterface->Type = VDJINTERFACE_SKIN;
...
the function never called, the virtual one from vdjPlugin8.h
// Custom user-interface
// Fill the VDJ_WINDOW or xml/bitmap info in the passed pluginInterface structure, to define your own plugin window
virtual HRESULT VDJ_API OnGetUserInterface(TVdjPluginInterface8 *pluginInterface) {return E_NOTIMPL;}
is called instead
the same code with another type of plugin
class Resize8 : public IVdjPluginDsp8
{
...
is working OK
VS 2019 and SDK 2019 or recent SDK 2021
of course both release and debug mode in 64bit
I really can't figure out where the problem can be
knowing the skin is working when inserted from my PlugSkin which defines as Dsp8
Mensajes Wed 06 Oct 21 @ 12:17 pm
To check for any compiler errors in finding the correct function, try to add 'override' in the header file to any function that is supposed to override a function in the base class.
So in this case:
HRESULT VDJ_API OnGetUserInterface(TVdjPluginInterface8 *pluginInterface) override;
So in this case:
HRESULT VDJ_API OnGetUserInterface(TVdjPluginInterface8 *pluginInterface) override;
Mensajes Wed 06 Oct 21 @ 12:28 pm
Tested but badly it did not helped
no message no warning.. no idea
no message no warning.. no idea
Mensajes Wed 06 Oct 21 @ 12:49 pm
OnLoad is called? (and you returned S_OK?)
Mensajes Wed 06 Oct 21 @ 12:57 pm
yes it is called and returns S_OK,
OnGetPluginInfo()
Release()
OnDeviceInit()
OnDeviceClose()
OnDraw()
all working, plugin is fully functional
only it is working as when using VDJINTERFACE_DEFAULT
OnGetUserInterface is wrong virtual one
OnGetPluginInfo()
Release()
OnDeviceInit()
OnDeviceClose()
OnDraw()
all working, plugin is fully functional
only it is working as when using VDJINTERFACE_DEFAULT
OnGetUserInterface is wrong virtual one
Mensajes Wed 06 Oct 21 @ 1:53 pm
Finally got it : one header file was using wrong header (from old 2019 SDK) while other were using current (2021 SDK)
It look like VS 2019 currently allow references to multiple class with same name as long as header use pragma once then linker is using what it wants
anyway fixed and working (some adjustments needed with rightclicks and default values :\ )
It look like VS 2019 currently allow references to multiple class with same name as long as header use pragma once then linker is using what it wants
anyway fixed and working (some adjustments needed with rightclicks and default values :\ )
Mensajes Wed 06 Oct 21 @ 8:59 pm