Hey Owen,

On Wed, Feb 24, 2010 at 11:46 AM, Owen Williams <[email protected]> wrote:

> With the xwax development I'm doing, I'll need some hooks into the UI to
> complete the work.  It would be nice if Someone Else could work on this
> part.
>

This part is actually pretty easy for you to do. It involves using our
ControlObject system. ControlObjects are a way to share values and
notifications about changing values across Mixxx. We use this for everything
from connecting MIDI and GUI to the mixing engine, to displaying indications
in the GUI (such as the current end-of-track mode or whether a deck is
playing).


> Mixxx needs the following additions:
> * A UI indication that a particular deck is enabled for vinyl control
>

For the appropriate deck that is being controlled, simply create a
ControlObject with the key '[PlayerX]' and name 'vinyl_control_enabled' or
'vinyl_control_focus'. When the deck is currently being controlled via a
timecode/turntable then set this control to 1. When it is not being
controlled, set it to 0.

Now all a skin designer has to do is listen for changes to that control to
determine which PNG to display to the user.


> * A UI switchable button that toggles between Absolute and Relative
> positioning (not strictly necessary)
>

Is this going to be per-deck or for all vinyl-control at once?

If it's per-deck, do the same as before but make the control:

'[PlayerX]', 'vinyl_control_mode'

If it's not per-deck, but a global vinyl control option, then instead of
'[PlayerX]' for the group, use '[VinylControl]' (or whatever group any
existing vinyl control code uses)

Pick a standard that 0 is absolute and 1 is relative (or the other way
around, however you like it). Now in order for a skin to be able to show
that they would simply use a <Display> group to show an image based on the
value of a control.  This is how our play/pause button works and the
end-of-track buttons in the outline skin.


> * A way of alerting the user that the needle has skipped
>

In this case, do the same as above. Create a '[PlayerX]'
'vinyl_control_skipped' control. Set it to 1 when the vinyl is skipping and
0 when it is not. A skin writer can make a big red alert show up in the GUI
when the control is 1.


> * A way of alerting the user that the record has reached the end (but
> will continue to play)
>
> Same story as needle skipping...


> I think serato uses a border around the track information for this kind
> of thing.  Even if not, I was thinking no border = no vinyl control.
> solid border = vinyl control on and working.  Slow blink = end of record
> (but not end of track).  Fast blink = needle skip alarm.
>
> Blinking is actually hard because our skin system isn't very flexible. The
only way to accomplish blinking is if you strobe the control from the vinyl
control side.


> The toggle button for abs and rel modes could just be the same as what
> we use for track end behavior.
>
> It would also be really nice to have the xwax widget built in to the
> main mixxx screen.
>
> Unfortunately this involves a lot more work because the vinyl control
processor is not connected to the GUI via code, so a custom widget would
have to be created and somehow connected to the vinyl control processor.

Hope this helps,
RJ

Owen
>
>
>
> ------------------------------------------------------------------------------
> Download Intel&#174; Parallel Studio Eval
> Try the new software tools for yourself. Speed compiling, find bugs
> proactively, and fine-tune applications for parallel performance.
> See why Intel Parallel Studio got high marks during beta.
> http://p.sf.net/sfu/intel-sw-dev
> _______________________________________________
> Mixxx-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/mixxx-devel
>
------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Mixxx-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mixxx-devel

Reply via email to