One question: if WaveformMark::setKeyAndIndex(const ConfigKey& key, int i),
is called a second time, doesn't this forget to deallocate the old instance
of ControlObjectThread?
2015-01-10 0:19 GMT+01:00 RJ Ryan <russelljr...@gmail.com>:
> Hi Ferran,
>
> The waveforms are a little twisty-turny. Here are some hints to get you
> started:
>
> WaveformMark represents the skin's definition of what the hotcue should be
> rendered as (an image from file, an auto-generated image, the text to show,
> etc.). WaveformRenderMark is a WaveformRendererAbstract class that takes a
> WaveformMark and draws it to the screen when its turn comes.
>
> A waveform widget has a stack of WaveformRendererAbstract classes in a
> list that are drawn one after the other -- they're like layers. A typical
> waveform widget's render stack looks like this:
>
> * background (WaveformRenderBackground)
> * end of track highlight (WaveformRendererEndOfTrack)
> * preroll drawing (WaveformRendererPreroll)
> * mark range (green loop highlight) rendering (WaveformRenderMarkRange)
> * signal rendering (the waveform itself -- a class named something like
> WaveforRenderXXXSignalXXX depending on the widget)
> * beat rendering (WaveformRenderBeat)
> * hotcue / cue / loop in-out point rendering (WaveformRenderMark)
>
> So WaveformRenderMark uses WaveformMark as a description of what to draw.
> WaveformMark doesn't have access to the track that's loaded while
> WaveformRenderMark can get access. Here's an example from
> WaveformRenderBeat:
>
>
> https://github.com/mixxxdj/mixxx/blob/master/src/waveform/renderers/waveformrenderbeat.cpp#L41
>
> One tricky bit is that WaveformRenderMark pre-generates a pixmap that is
> drawn during the render step as a performance optimization. In the draw
> method of WaveformRenderMark you should set the text of the currently
> loaded cue point's label (you can fetch the cues from the track with
> TrackInfoObject::getCues) on the WaveformMark (via some new method you
> add). If the label changed since the last render then you'll need to
> re-generate the pixmap.
>
> Hope that gets you started,
> RJ
>
> On Fri, Jan 9, 2015 at 6:02 PM, Ferran Pujol Camins <
> ferranpujolcam...@gmail.com> wrote:
>
>> Now I want the hotcue marks to show their cue's name. I see in
>> WaveformMark::setKeyAndIndex that m_text place marker is replaced by the
>> hotcue number so I could just append the cue's label there. But I have no
>> clue about how to bring the hotcue name to this function. Some quick
>> guidance with the waveform rendering system will help a lot :)
>>
>> 2015-01-09 20:31 GMT+01:00 Ferran Pujol Camins <
>> ferranpujolcam...@gmail.com>:
>>
>>> Thank you both I have a better picture now. :)
>>>
>>> 2015-01-09 19:55 GMT+01:00 RJ Ryan <russelljr...@gmail.com>:
>>>
>>>> This doc is a bit out of date now (doesn't cover ControlObjectSlave)
>>>> but it gives the overview of what the heck ControlObject is used for in
>>>> Mixxx:
>>>>
>>>> http://mixxx.org/wiki/doku.php/developer_guide_control
>>>>
>>>> See also: http://mixxx.org/wiki/doku.php/developer_guide
>>>>
>>>> On Fri, Jan 9, 2015 at 6:19 AM, Daniel Schürmann <dasch...@mixxx.org>
>>>> wrote:
>>>>
>>>>> Hi Ferran,
>>>>>
>>>>> do not know what exactly you need.
>>>>>
>>>>> ControlDoublePrivate is th container that holds the double data value
>>>>> for atomic read and writes (also on 32 bit targets).
>>>>> The ControlObject is the interface, you can use from your code that
>>>>> holds a reference to the ControlDoublePrivate.
>>>>>
>>>>> ControlObject should be used to create a new ControlDoublePrivate and
>>>>> should only be used from one object (You will find exceptions in the
>>>>> legacy
>>>>> engine code)
>>>>>
>>>>> All other Objects should use the ControlObjectSlave to access the
>>>>> underlying ControlDoublePrivate.
>>>>>
>>>>> Hope that helps.
>>>>>
>>>>>
>>>>> Kind regards,
>>>>>
>>>>> Daniel
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> 2015-01-09 11:16 GMT+01:00 Ferran Pujol Camins <
>>>>> ferranpujolcam...@gmail.com>:
>>>>>
>>>>>> Hello, could someone give me a short explanation about how
>>>>>> ControlObject and ControlDoublePrivate interact? I'm quite confused right
>>>>>> now and it would help me digest the code quicker.
>>>>>>
>>>>>>
>>>>>> ------------------------------------------------------------------------------
>>>>>> Dive into the World of Parallel Programming! The Go Parallel Website,
>>>>>> sponsored by Intel and developed in partnership with Slashdot Media,
>>>>>> is your
>>>>>> hub for all things parallel software development, from weekly thought
>>>>>> leadership blogs to news, videos, case studies, tutorials and more.
>>>>>> Take a
>>>>>> look and join the conversation now. http://goparallel.sourceforge.net
>>>>>> _______________________________________________
>>>>>> Get Mixxx, the #1 Free MP3 DJ Mixing software Today
>>>>>> http://mixxx.org
>>>>>>
>>>>>>
>>>>>> Mixxx-devel mailing list
>>>>>> Mixxx-devel@lists.sourceforge.net
>>>>>> https://lists.sourceforge.net/lists/listinfo/mixxx-devel
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> ------------------------------------------------------------------------------
>>>>> Dive into the World of Parallel Programming! The Go Parallel Website,
>>>>> sponsored by Intel and developed in partnership with Slashdot Media,
>>>>> is your
>>>>> hub for all things parallel software development, from weekly thought
>>>>> leadership blogs to news, videos, case studies, tutorials and more.
>>>>> Take a
>>>>> look and join the conversation now. http://goparallel.sourceforge.net
>>>>> _______________________________________________
>>>>> Get Mixxx, the #1 Free MP3 DJ Mixing software Today
>>>>> http://mixxx.org
>>>>>
>>>>>
>>>>> Mixxx-devel mailing list
>>>>> Mixxx-devel@lists.sourceforge.net
>>>>> https://lists.sourceforge.net/lists/listinfo/mixxx-devel
>>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>> Ferran Pujol Camins
>>>
>>
>>
>>
>> --
>> Ferran Pujol Camins
>>
>
>
--
Ferran Pujol Camins
------------------------------------------------------------------------------
New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
GigeNET is offering a free month of service with a new server in Ashburn.
Choose from 2 high performing configs, both with 100TB of bandwidth.
Higher redundancy.Lower latency.Increased capacity.Completely compliant.
www.gigenet.com
_______________________________________________
Get Mixxx, the #1 Free MP3 DJ Mixing software Today
http://mixxx.org
Mixxx-devel mailing list
Mixxx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mixxx-devel