COCKOS
CONFEDERATED FORUMS
Cockos : REAPER : NINJAM : Forums
Forum Home : Register : FAQ : Members List : Search :
Old 05-18-2011, 08:48 AM   #81
captain caveman
Human being with feelings
 
Join Date: Feb 2008
Posts: 1,616
Default

Yes, that was it Tale - thanks. I've updated the file in the stash the link above goes to and added a comment in the code next to that control. The graphics for it still aren't exactly what the component images to the left should stack up to though. Maybe the mask has to be a certain colour, but that still probably wouldn't explain why the cross hair top section turns into an outline.

Looking at the rotation of it too, it appears to exhibit the same wobbling and fuzzy sides that IKnobRotaterControl shows. I have noticed whilst doing my plugins that even the yOffsetZeroDeg doesn't correct a wobbly knob and the surrounds aren't as defined as when a multi-image is used with IKnobMultiControl. I have tried images with dimensions of odd and even numbers of pixels but can't seem to tame that control.

That's possibly one for another time, but I don't want to leave this control looking the way it does.
captain caveman is offline   Reply With Quote
Old 05-22-2011, 02:52 PM   #82
olilarkin
Human being with feelings
 
olilarkin's Avatar
 
Join Date: Apr 2009
Location: Huddersfield, UK
Posts: 1,153
Default

i tried it captain. seems good. i noticed as well as the fuzzyness maybe the rotation is slightly off in IKnobRotatorControl. Maybe your knob graphic is not totally centred?

re the fuzzyness, there is something wrong with IGraphicsLice:: DrawRotatedBitmap() or the lice function it calls.

re ICaptionControl, usually you would use this to display the value of a slider or knob. At the moment one of the issues that we need to address in wdl-ce is the way that multiple controls linked to the same parameter update each other. I haven't actually used ICaptionControl myself for the readout displays in my plugins... I just made one control that has a text display/editing area. Probably for the IPlugControlsDemo you could add another control to the ICaptionControl area and in OnParamChange() set the ICaptionControl dirty when the parameter value changes.

so are you going to push the source to the examples branch on github? i can add in the missing controls if you like
__________________
VirtualCZ | pMix | Endless Series | iPlug2 | Linkedin | Facebook
Available for Audio Dev tuition via Skype (IPlug/JUCE/C++)
olilarkin is offline   Reply With Quote
Old 05-23-2011, 03:34 AM   #83
captain caveman
Human being with feelings
 
Join Date: Feb 2008
Posts: 1,616
Default

Yes, that would be good. I have wrestled with GitHub previously and didn't "get it" so instead of wasting time and potentially destroying the wdl-CE project it'd probably be better if I just linked to a .zip package...

http://jof.org.uk/Share/IControlExample.zip

Much obliged. :
captain caveman is offline   Reply With Quote
Old 05-23-2011, 07:32 AM   #84
Cubits
Human being with feelings
 
Join Date: Mar 2011
Posts: 8
Default

I will be making contributions soon just been busy with a few things still got to get my head round GIT aswell lol
__________________
http://www.cubitsdsp.net/blog - IPlug Code & Tutorials
http://issuu.com/wusik/docs/wsm_may_2001/14 - My interview in WSM.
Cubits is offline   Reply With Quote
Old 05-23-2011, 09:13 AM   #85
olilarkin
Human being with feelings
 
olilarkin's Avatar
 
Join Date: Apr 2009
Location: Huddersfield, UK
Posts: 1,153
Default

i have added the code to the examples branch. still cant get it working on codeblocks though
__________________
VirtualCZ | pMix | Endless Series | iPlug2 | Linkedin | Facebook
Available for Audio Dev tuition via Skype (IPlug/JUCE/C++)
olilarkin is offline   Reply With Quote
Old 05-23-2011, 06:18 PM   #86
HoRNet
Human being with feelings
 
Join Date: Feb 2011
Posts: 168
Default

ok i've started working on the new version of my channelstrip and linking against wdl-ce.

i had to add a method to IControl that i'll be going to submit for review once i'm happy, but i've found a problem with the ICaptionControl with Cocoa hosts such as Reaper on OSX.

I have a IKnobMultiControl and an ICaptionControl bound to the same parameter index, now on Live 7 (a carbon host) i can edit the iCaptionControl and the IKnobMultiControl is updated accordingly, on Reaper (Cocoa) the input from the ICaptionControl is ignored. I've run the debug and found where the problem is, but my Objective-C is really not up to the task...

Code:
- (void) controlTextDidEndEditing: (NSNotification*) aNotification
{
  //char* txt = (char*)[[mParamEditView stringValue] UTF8String];
  
  NSInteger vi = -1;
  if ([mParamEditView respondsToSelector: @selector(indexOfSelectedItem)] == YES)
    vi = (NSInteger)[mParamEditView indexOfSelectedItem];
  if (vi != -1)
    mEdControl->SetValueFromUserInput(mEdParam->GetNormalized((double)vi));
  //else
    //mGraphics->SetFromStringAfterPrompt(mEdControl, mEdParam, txt);
  
  EndUserInput(self);
  [self setNeedsDisplay: YES];
}
in this method from IGraphicsCocoa.mm vi is always -1 since the check for the message respond fail. The problem is that i don't know why it fails, that's where my Objective-C ends...

any help?
HoRNet is offline   Reply With Quote
Old 05-24-2011, 12:52 AM   #87
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 2,930
Default

The problem is that the code to handle "raw" text input (i.e. not from a drop-down list) is commented out. In my Git repository this handled by IGraphics::SetFromStringAfterPrompt(), but the current wdl-ce repository doesn't have such a method.

I guess you could hack the missing code into the current wdl-ce code like this:

Code:
- (void) controlTextDidEndEditing: (NSNotification*) aNotification
{
  char* txt = (char*)[[mParamEditView stringValue] UTF8String];
  
  NSInteger vi = -1;
  if ([mParamEditView respondsToSelector: @selector(indexOfSelectedItem)] == YES)
    vi = (NSInteger)[mParamEditView indexOfSelectedItem];
  if (vi != -1)
    mEdControl->SetValueFromUserInput(mEdParam->GetNormalized((double)vi));
  else
  {
    double v = atof(txt);
    if (mEdParam->DisplayIsNegated()) v = -v;
    mEdControl->SetValueFromUserInput(pParam->GetNormalized(v));
  }
  
  EndUserInput(self);
  [self setNeedsDisplay: YES];
}
Tale is online now   Reply With Quote
Old 05-24-2011, 02:45 AM   #88
olilarkin
Human being with feelings
 
olilarkin's Avatar
 
Join Date: Apr 2009
Location: Huddersfield, UK
Posts: 1,153
Default

yes it's commented out because i have done a lot of work on this stuff, and implemented the text entry / menu stuff a bit differently. just need to find the time to add it to wdl-ce.
__________________
VirtualCZ | pMix | Endless Series | iPlug2 | Linkedin | Facebook
Available for Audio Dev tuition via Skype (IPlug/JUCE/C++)
olilarkin is offline   Reply With Quote
Old 05-24-2011, 03:37 AM   #89
HoRNet
Human being with feelings
 
Join Date: Feb 2011
Posts: 168
Default

Thank you Tale, what you wrote makes a lot of sense and in fact works fine.

There is still a problem, the ICaptionControl is updated and the param takes the new value, but the knob is not redrawn to te new value. In Carbon hosts this works fine and the knob is updated, so i fired the debugger and had a look line by line to the carbon code. but i don't see anything special the drawing is made with this code

Code:
if (mIsComposited)
  {
    //IRECT* pR = mEdControl->GetRECT();
    //HIViewSetNeedsDisplayInRect(mView, &CGRectMake(pR->L, pR->T, pR->W(), pR->H()), true);
    HIViewSetNeedsDisplay(mView, true);
  }
  else
  {
    mEdControl->SetDirty(false);
    mEdControl->Redraw();
  }
now Live is a composited host so the only code that is called is
Code:
 HIViewSetNeedsDisplay(mView, true);
that i think is the Carbon equivalent for the Cocoa
Code:
 [self setNeedsDisplay: YES];
but the Carbon ui is updated, the Cocoa one no, am I missing something?
HoRNet is offline   Reply With Quote
Old 05-24-2011, 06:51 AM   #90
HoRNet
Human being with feelings
 
Join Date: Feb 2011
Posts: 168
Default

sorry guys, forget my last message, it's not a Cocoa / Carbon issue.

I was testing with Live that after setting a parameter from the plugin informing the host, it sends back the updated value to the plugin, this updates my knob control.

I tested the plugin with an old copy of Tracktion (Carbon) and the knob is not updating, because just like Reaper it doesn't sends the value back to my plugin
HoRNet is offline   Reply With Quote
Old 05-27-2011, 08:06 AM   #91
cerberus
Human being with feelings
 
Join Date: Nov 2009
Location: memory
Posts: 634
Default

Quote:
Originally Posted by cerberus View Post
windows... ...the user input does not take.
a solution for this (if you are using wdl-ce) is to change line 688 in IGraphicsWin.cpp (IGraphicsWin::CreateTextEntry) from:
Code:
mParamEditWnd = CreateWindow("EDIT", pString, WS_CHILD | WS_VISIBLE | editStyle ,
to:
Code:
mParamEditWnd = CreateWindow("EDIT", pString, WS_CHILD | WS_VISIBLE | ES_MULTILINE|editStyle ,
also, the text box has it's own mousewheel response... it could be a nice feature, but i found
the behavior confused me at first. it can be disabled by commenting out:

IGraphicsWin.cpp line 207
Code:
pGraphics->mParamEditMsg = kCancel;
IGraphicsCocoa.mm line 242
Code:
if(mTextFieldView) [self endUserInput ];
IGraphicsCarbon.cpp line 178
Code:
if (_this->mTextFieldView) _this->EndUserInput(false);
special thanks to ArdeII for these!
imo, everyone should try Kirnu (his cool, friendly, and free arpeggiator plug-in)
and submit their wildest feature requests for a future version :-)
cerberus is offline   Reply With Quote
Old 07-02-2011, 11:11 AM   #92
Tale
Human being with feelings
 
Tale's Avatar
 
Join Date: Jul 2008
Location: The Netherlands
Posts: 2,930
Default Merged IGraphicsLice into IGraphics

Quote:
Originally Posted by olilarkin View Post
i had a go at doing what you said...

see https://github.com/olilarkin/wdl-ce/...smod/WDL/IPlug
I have also had a go at this, and I have now succesfully removed IGraphicsLice from my WDL/IPlug repository. I have split up the changes in 3 seperate commits:

ddb596c IPlug: Merged IGraphicsLice into IGraphics.
e67a0f8 IPlug: Removed IGraphicsLice from project files.
0bf285c IPlugExample.xcodeproj: Removed IGraphicsLice.

I have tried to keep things as clean as possible, so regardless of which WDL/IPlug your are following you should be able to cherry-pick the first commit, which contains the bulk of the changes. You could skip the other 2 commits, provided that you remove IGraphicsLice.h and IGraphicsLice.cpp from your project files yourself.

BTW, it seems that these changes have quite an impact on file size: The Windows DLL for my ComboV project is now almost 100 kB smaller, and the Mac OS X VST is about 300 kB smaller.
Tale is online now   Reply With Quote
Old 07-16-2011, 07:36 AM   #93
olilarkin
Human being with feelings
 
olilarkin's Avatar
 
Join Date: Apr 2009
Location: Huddersfield, UK
Posts: 1,153
Default

anyone still interested in wdl-ce? I am pretty tired of doing 95% of the work - and I am starting to think I should just focus on my own repo.

If anyone fancy's doing some work on it, I would suggest a good next step would be to look at bringing it Tale's font and IGraphics mods.

The examples that i have been working on are nearly ready to be merged to the main branch i think, but need a little bit more work.

oli
__________________
VirtualCZ | pMix | Endless Series | iPlug2 | Linkedin | Facebook
Available for Audio Dev tuition via Skype (IPlug/JUCE/C++)
olilarkin is offline   Reply With Quote
Old 07-16-2011, 01:04 PM   #94
junioreq
Human being with feelings
 
junioreq's Avatar
 
Join Date: Aug 2008
Location: Buffalo NY
Posts: 1,091
Default

Sorry I cannot contribute. Would REALLY love to, but I'm still in newbie status with Obj coding. Believe me though, your efforts are well noted and I and some other folks do check your updates regularly.

I thought this would take off a bit more, but as I don't contribute, I probably shouldn't comment on that. It's not totally relevant to your post again, but I want to thank you publicly for what you have done.
junioreq is offline   Reply With Quote
Old 07-17-2011, 06:36 PM   #95
cerberus
Human being with feelings
 
Join Date: Nov 2009
Location: memory
Posts: 634
Default

my plug-in is near release. i couldn't have had the features i wanted without
wdl-ce, such as the text entry, which is working properly on both windows
and osx thanks to your efforts. i'm new to coding, so the best i can offer
to the community and to cockos is the plug-in itself. it will be for sale,
but anyone who contributed to wdl-ce, and probably reaper users
as well may have it for free (still in beta at the moment), i want
to say how much i appreciate your help too, oli!

cerberus is offline   Reply With Quote
Old 07-18-2011, 08:07 AM   #96
HoRNet
Human being with feelings
 
Join Date: Feb 2011
Posts: 168
Default

I've completed som mods to the WDL for my own plugin ho can i contribute them to the project? how the review is done?
HoRNet is offline   Reply With Quote
Old 07-18-2011, 10:19 PM   #97
bvesco
Human being with feelings
 
bvesco's Avatar
 
Join Date: Jun 2007
Posts: 125
Default

Did you fork from the WDL-CE repo on github?
__________________
Audio tutorials and articles: http://www.benvesco.com/tonemonster/
My VST plugins: http://www.vescofx.com/
bvesco is offline   Reply With Quote
Old 07-19-2011, 03:55 AM   #98
HoRNet
Human being with feelings
 
Join Date: Feb 2011
Posts: 168
Default

yes, but it was some time ago, i don't think i'm current, better merge a new wdl-ce in my repo before pushing my changes to git hub? (actually i hav them only on my local hard drive)
HoRNet is offline   Reply With Quote
Old 07-19-2011, 04:04 PM   #99
olilarkin
Human being with feelings
 
olilarkin's Avatar
 
Join Date: Apr 2009
Location: Huddersfield, UK
Posts: 1,153
Default

I think you need to fork wdlce on github, check out that repo to your local machine , add your changes, then push them to your github and make a pull request to merge back to wdlce
__________________
VirtualCZ | pMix | Endless Series | iPlug2 | Linkedin | Facebook
Available for Audio Dev tuition via Skype (IPlug/JUCE/C++)
olilarkin is offline   Reply With Quote
Old 07-19-2011, 05:48 PM   #100
HoRNet
Human being with feelings
 
Join Date: Feb 2011
Posts: 168
Default

ok i think i'll update my repo and do a pull request, but i cannot guarantee anything, never done that before (i use git for all my projects, but neve rused in a collaborative manner, so i don't know how to do a pull request )
HoRNet is offline   Reply With Quote
Old 07-19-2011, 07:25 PM   #101
bvesco
Human being with feelings
 
bvesco's Avatar
 
Join Date: Jun 2007
Posts: 125
Default

The pull request thing is pretty simple after you're used to it. It can be confusing the first time you do it. Maybe we can get on chat sometime when you're ready to do it.
__________________
Audio tutorials and articles: http://www.benvesco.com/tonemonster/
My VST plugins: http://www.vescofx.com/
bvesco is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 04:24 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, vBulletin Solutions Inc.