Thanks for the reply, Arvind. Okay, so I have that working, and I
understand by passing the addresses of the array to my callback, I am
interacting with specific sliders. If the type is void, then how would I
specify that the values of a specific slider is supposed to be related to a
specific integer? In dealing with the callback, my understanding is I am
passing on the address of the array, but I cannot increment the array
directly in the callback like in a for loop:
static void
_changed_cb(void *data, Evas_Object *obj, void *event_info)
{
double val = elm_slider_value_get(obj);
printf("Changed to %1.0f\n", val);
printf("slider is %d", *(int*)data); //test what is passed to *data
snd_seq_event_t ev;
snd_seq_ev_clear(&ev);
snd_seq_ev_set_source(&ev, out_port);
snd_seq_ev_set_subs(&ev);
snd_seq_ev_set_controller(&ev, 0, 0, (int)val); //second and third
args need to relate to the specific widget that is being interacted with,
i.e. "1" for "slider 1"
snd_seq_ev_set_direct(&ev);
snd_seq_event_output_direct(seq_handle, &ev);
snd_seq_drain_output(seq_handle);
}
My goal here is to have the specific slider relate to specific integers
such as in the second and third arguments of
snd_seq_ev_set_controller(&ev, 0, 0, (int)val);
so that when the specific slider is interacted with, I can pass to another
function that I am dealing with a specific channel number or controller
number.
On Wed, Feb 13, 2013 at 8:51 PM, Arvind R <[email protected]> wrote:
> On Thu, Feb 14, 2013 at 6:51 AM, Justin Rosander
> <[email protected]> wrote:
> > Hi there,
> >
> > I'm trying to put together a midi controller featuring faders that would
> be
> > assigned to different channels. In exploring the use of an array to
> make a
> > window full of sliders, I put the following together:
> >
> > for(x = 0; x < 12; x++) {
> >
> > //add slider
> > sl[x] = elm_slider_add(win);
> >
> > elm_slider_horizontal_set(sl[x], EINA_FALSE);
> > //pack at the end of the box
> > elm_box_pack_end(box, sl[x]);
> > evas_object_show(sl[x]);
> > //callback to function returning value
> > evas_object_smart_callback_add(sl[x], "changed", _changed_cb, NULL);
> > }
> Replace the NULL in the callback_add with a pointer to data. It will
> be available as the first argument in the callback funcion as a void *
> . If you don't need to reference any other data in the cb, you can
> pass &sl[x]. Also, the second arg. in the cb is the first arg. in the
> callback_add().
> >
> > What I'm trying to figure out is how I would differentiate one slider
> from
> > another in a callback function? For instance, when I move, say, "slider
> 1"
> > as opposed to "slider 2".
> >
> > Any input is appreciated.
> >
> > Justin
> >
> ------------------------------------------------------------------------------
> > Free Next-Gen Firewall Hardware Offer
> > Buy your Sophos next-gen firewall before the end March 2013
> > and get the hardware for free! Learn more.
> > http://p.sf.net/sfu/sophos-d2d-feb
> > _______________________________________________
> > enlightenment-users mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/enlightenment-users
>
>
> ------------------------------------------------------------------------------
> Free Next-Gen Firewall Hardware Offer
> Buy your Sophos next-gen firewall before the end March 2013
> and get the hardware for free! Learn more.
> http://p.sf.net/sfu/sophos-d2d-feb
> _______________________________________________
> enlightenment-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/enlightenment-users
>
------------------------------------------------------------------------------
Free Next-Gen Firewall Hardware Offer
Buy your Sophos next-gen firewall before the end March 2013
and get the hardware for free! Learn more.
http://p.sf.net/sfu/sophos-d2d-feb
_______________________________________________
enlightenment-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-users