Commit Graph

110 Commits

Author SHA1 Message Date
Tomasz Moń
cada964d61 Merge pull request #10 from acspike/master
additional modifiers for rp1000
2014-02-06 09:11:14 +01:00
Frederic DE WEVER
4bb78a5fe7 Fix Mid frequency Equalizer name ID error. 2014-01-05 09:20:00 +01:00
Aaron C. Spike
a2a4842fd9 additional modifiers for rp1000 2014-01-01 13:22:15 -06:00
Tim LaBerge
079547c20f Fix up some whitespace. 2013-12-26 10:29:03 -08:00
Tim LaBerge
e3447292c4 Restore modifier for delay tap time 4990. 2013-12-26 10:26:31 -08:00
Tim LaBerge
9f4bd66217 Remove duplicate RP1000 code.
Support for RP1000 has been merged upstream, so the rp1000 changes
in this branch are unneeded.
2013-12-26 10:20:53 -08:00
Tim LaBerge
85be87a636 Merge mainline RP1000 changes. 2013-12-26 10:16:05 -08:00
Tim LaBerge
d61e6c3046 Merge branch 'master' into rp1000 2013-12-26 09:49:19 -08:00
Tim LaBerge
196a7c2aa5 Fine tune debugging.
1) If get_modifier() fails, set the label to "Unknown pos/id". Thus, label
   will always be non-null and debugging should be easier. The minor downside
   is that the label string is leaked when we update the modifier group.

2) Restore the assert in update_modifier_vbox() and the now unnecessary
   test of group[x].label.
2013-12-25 14:10:57 -08:00
Tim LaBerge
f1aa3665ed Support for RP1000
1) Add missing support for DELAY_TAP_TIME, DELAY_MULTIPLIER, and
   AMP_LOOP_ON_OFF.

2) Add a warning when get_modifier() fails.

3) In update_modifier_linkable_list(), set label to "Unknown" when
   the lookup of a modfier fails.

4) In format ipv(), the warning message that's emitted if get_xml_settings()
   fails reversed position and id.

5) In update_modifier_vbox(), remove the assert that the group label is not
   null. Set the combo box text to "Unknown".
2013-12-25 13:52:15 -08:00
Aaron C. Spike
478f580e76 add values needed for rp1000 2013-12-22 18:04:02 -06:00
Tim LaBerge
dfec60e7b4 Add support for RP500 amp bypass. 2013-08-21 22:51:19 -07:00
Tim LaBerge
e7de6b2bb5 RP500 specific xml settings. 2013-08-20 21:53:56 -07:00
Tim LaBerge
17ff7063ec Need RP500 changes in modifiers array. 2013-08-18 09:14:19 -07:00
Tim LaBerge
f1bca1eabb Fix expression pedel for rp500 2013-08-17 10:19:19 -07:00
Tomasz Moń
7023e1fa92 Add expression pedal setting for RP250, RP255, RP500 and RP1000. 2012-12-22 15:35:45 +01:00
Tim LaBerge
a51103964b Fix comments from code review.
1) #include gui.h in effects.c.

2) Copy/paste error in xml_settings for UNOVIBE_CHORUS_VIBRATO.

3) Use a gboolean instead of a guint.

4) Remove a warning that fires under normal circumstances on devices
   without LFO's.
2012-12-21 06:55:49 -08:00
Tim LaBerge
f6a2ba7420 Free allocated exp settings.
Code to properly free exp settings when we rebuild the modifer list.

1) Fix up mislabeled modifier settings for Presence.

2) Add missing xml settings (avoids crashes with -D a).

3) When we free the modifier group, free the data associated with the
   dynamically allocated settings for the EXP_POSITION combo box.
2012-12-20 20:52:22 -08:00
Tim LaBerge
bad10ed0f2 Add proper min/max settings to pedal assign effect.
1) Delete definition of pedal1_assign_settings since it should be calculated
   at runtime from the modifier list.

2) Delete the pedal1_assign_settings EffectSetting from
rp355_pedal1_assign_group.

3) Add "None" entries to the tone_lib_group[] and effect_lib_group[]. Otherwise,
   once a library tone or effect is selected, it can't be deselected.

4) Fix up some tracing of effect values that was displaying incorrect values.

5) Change 'update_modifier_combo_box()' to 'update_modifier_vbox()' and for
   the expression pedal let it handle instantiating per combo box entry
   settings.

6) Don't forget to free the links we remove from the list when we're cleaning
   the combo box. If there are per-combo box entry settings, free them using
   the usual destructor.

7) Poll the device for the appropriate settings for EXP_MIN/MAX after we
   we update the modifier list.
2012-12-18 21:49:57 -08:00
Tim LaBerge
0cd6727d45 Fix review comments for pull request.
1) Don't expose gui mode to the causual user. Hide under the DEVELOPMENT_MODE
   #define.

2) Add accessors for the ModifierLinkableList's interesting fields.

3) Free the ModifierLinkableList from modifier_linkable_list(). This allows
   us to make the free function static.

4) Rename modifier_linkable_list() to update_modifier_linkable_list().

5) In effects.h, reflect the renaming of update_modifier_linkable_list() and
   correct it's signature.

6) Whitespace fixups in gdigi.c.

7) In the handler for RECEIVE_GLOBAL_PARAMETERS, apply the parameter to the gui.

8) Fixup some merge damage ;-(

9) UnCamelCaseIze some variables.

10) When we create the gui, issue a single call to REQUEST_GLOBAL_PARAMETERS to
    retrieve the globals from the device, instead of polling each parameter
    individually.
2012-12-17 21:21:17 -08:00
Tim LaBerge
22aeaf8ffa Enable tone/effects library for rp355.
Implement the recent addition of the tone/effects library for the rp355.

Get rid of USB_POSITION.

Add tone lib A for rp355.

Minor comment changes.

Remove a couple of commented out lines.
2012-12-17 06:58:44 -08:00
Tim LaBerge
a389c785f7 Merge branch 'global'
Conflicts:
	.gitignore
	effects.c
	gdigi.c
	gdigi.h
	gdigi_xml.h
	gui.c
	gui.h
	preset.c
	preset_xml.c

effects.c: More effect_values_0_to_* arrays for various effects.
           VALUE_TYPE_POSID for linkable effects.
           Add the rest of the global settings (need to change USB_POSITION
           to GLOBAL_POSITION throughout).
           A few label typos.
           New settings, groups, and effects for linkables.
           Make the display three rows instead of two.
           Add missing modifiers.
           Add missing xml settings.
           Code for handling/updating the global modifier linkable list.

effects.h Add VALUE_TYPE_POSID.

gdigi.c   Tweaks for value formatting.
          Use NOTIFY_MODIFIER_GROUP_CHANGED to drive the update of the combo
          boxes for linkable effects.
          Use RECEIVE_MODIFIER_LINKABLE_LIST to handle the update of the
          combo boxes for linkable effects.

gdigi.h   Minor changes.

gui.c     Deprecate gtk_vbox_new().
          Use simpler API gtk_combo_box_text_append_text().
          Minor reformatting/whitespace changes.
          Code to update combo boxes for linkable effects.
          Code to retrieve global parameters from device at startup.

preset_xml.c
          Some tweaks to map_xml_value() so that it's passed resolved
          EffectValues for settings of type EXTRA.
2012-12-16 21:30:41 -08:00
Tim LaBerge
44dbbe7b72 Add remaining rp355 effects to modifiers array.
1) A few rp355 effects were missing from the modifiers array.
2) The EH_PHASER effects were missing from the xml_settings array.
3) Added a disambiguating string to the "Unable to map" warning in
   gdigi.c.
2012-12-16 11:12:10 -08:00
Tim LaBerge
3a3017b46f Add support for linkable parameters.
These changes allow gdigi to link parameters to the expression pedal,
LFO1, and LFO2. The changes have been implemented only for RP355, but
should be easily extendible to other devices.

The design is as follows:

The effect group entries for the linkable effects have only a placeholder
entry "None" at startup.

During startup, we send an unsolicited REQUEST_MODIFIER_LINKABLE_LIST. When we
receive RECEIVE_MODIFIER_LINKABLE_LIST in response, we use it to construct the
ModifierLinkableList and update the combo boxes for the Pedal Assign and LFO
effects.

Whenever the selected chorus/fx effect changes, the list of linkable parameters
also changes, so the device will send us a NOTIFY_MODIFIER_GROUP_CHANGED. Again,
we send a REQUEST_MODIFIER_LINKABLE_LIST and use the response to rebuild
ModifierLinkableList. Then we tear down and rebuild the state associated with
the affected combo boxes.

The changes made are as follows:

1) Add settings for pedal1_assign. This is the min/max value returned
   by the pedal.

2) Add separate EffectGroup for both pedal assignment and the LFO's
   for the non-combo box settings.

3) Fix up a few more missing effects in the xml and modifier lists.
   There is additional work to do here, but that will be in future
   commits.

4) Fixed a missing break in the RECEIVE_DEVICE_NOTIFICATION case
   in push_message().

5) When we receive a NOTIFY_MODIFIER_GROUP_CHANGED message, free the exisiting
   modifier group and send a REQUEST_MODIFIER_LINKABLE_LIST so we can
   rebuild it.

6) When we receive a RECEIVE_MODIFIER_LINKABLE_LIST, protect the calls to
   create_modifier_group() with GDK_THREADS_ENTER() so we don't crash
   because of interactions with the event/gui threads.

7) Added a BUG assert to an error leg in get_message_list().

8) Fix memory leak in get_digitech_devices() found by valgrind.

9) Add a function to tear down the state associated with the entries of a
   pedal assign or LFO combo box.

10) Add a function to build up the entries of a pedal assign or LFO combo
    box from the modifier linkable list received from the device.

11) Use gtk_combo_box_text_append_text() throughout.

12) A few whitespace/readability changes and more comments.
2012-12-16 09:29:16 -08:00
Tim LaBerge
f389caffbc Fix RHold display for delay repeats.
This involved passing the EffectValue resulting from the resolution of
an VALUE_TYPE_EXTRA to map_xml_value() and some more careful range
checking.

Also, the delay repeats effect needed an xml_label for the special
'repeat forever' value 100, which maps to the string RHold.
2012-12-03 19:25:24 -08:00
Tim LaBerge
b5aa30d599 Fix up LFO speed EffectValues. 2012-12-03 12:19:35 -08:00
Tim LaBerge
4f40132742 Implement the LFO1 and LFO2 effects.
For now, this is just for rp355, though the code should work for other
devices with minimal modification.

1) The EffectValues for values_*_assign need to be VALUE_TYPE_POSID.

2) Disabmiguate "Delay Tape" for a couple of EffectSettings. This fixed
   some bugs in the creation of the global modifier group.

3) Remove #if 0's around the definition of the lfo2_settings.

4) Define proper lfo1 and lfo2 groups arrays.

5) Define the lfo2_effect[] array.

6) Add the lfo1 and lfo2 effects to the rp355_effects array.

7) Disambiguate "EQ B" from "Eq" for some effedts in the modifiers array.

8) In push_message(), after we receive the RECEIVE_MODIFIER_LINKABLE_LIST
   message, kick off the creation of the EXP, LFO1, and LFO2 effects.

9) Generalize the function used for the pedal1_assign effect and make it work
   for lfo1 and lfo2 as well. Convert printf's to debug_msg().

10) Since we're destroying the association of the grid with the placeholder
    combo box entry, steal the data so the child widget isn't destroyed.

11) Silence warning on exit about 0 unread messages in queue.
2012-12-02 21:59:26 -08:00
Mauro Carvalho Chehab
1a5fab5f5a Add Tone Lib/Effects support on RP255
RP255 (firmware version 1.1) has the Tone Library at position 25, instead of 26.
Add this library position alternative as "LIB_POSITION_B", renaming the existing
one to LIB_POSITION_A, and add the corresponding bits at effects.c.

Also, adds a menu there, to let it to be controlled via the library.
2012-12-02 15:00:52 +01:00
Tim LaBerge
cf239da94c Implement parameter linking to expression pedal. 2012-12-01 15:30:56 -08:00
Tomasz Moń
c927b075a7 Fix trailing whitespaces. 2012-11-12 21:11:38 +01:00
Ahmed Toulan
034f353aa9 Fix spelling mistakes 2012-05-22 16:30:25 +02:00
Tim LaBerge
2b1c74ac30 Cleanups on the Logging branch.
1) Add a more reasonable max value for the the pedal/vswitch assign values.
2) Minor format change in format_ipv().
3) Formatting cleanup in push_message(). Also change debug messages to
   emphasize message direction.
4) Cleanup startup messages and add one that emits device name.
5) Cleanup the option message so that it's complete and readable.
2012-04-08 09:41:04 -07:00
Tim LaBerge
4291fa71b2 Fixup label range values.
A number of EffectValues of type label had invalid ranges. Make
them less invalid.

Also add SYNTH_TALK id's to xml settings.

Make format_ipv warn instead of crashing if an xml setting is not
found.
2012-04-07 19:46:36 -07:00
Tim LaBerge
ea80320531 Human readable debug
Leverage the code that writes a preset to XML so that messages
can be displayed in a human readable format.

E.g.,

(6, 2432, 1280)  Distortion: Dist Type: Screamer

The 3-tuple is position, id, value, which is followed by the
colon separated decode of the position, id, and the mapped value.
2012-04-07 19:45:50 -07:00
Tim LaBerge
88819a795b Fixup label range values.
A number of EffectValues of type label had invalid ranges. Make
them less invalid.

Also add SYNTH_TALK id's to xml settings.

Make format_ipv warn instead of crashing if an xml setting is not
found.
2012-04-06 10:06:12 -07:00
Tim LaBerge
3002d2256e Human readable debug
Leverage the code that writes a preset to XML so that messages
can be displayed in a human readable format.

E.g.,

(6, 2432, 1280)  Distortion: Dist Type: Screamer

The 3-tuple is position, id, value, which is followed by the
colon separated decode of the position, id, and the mapped value.
2012-04-06 08:57:08 -07:00
Tim LaBerge
1205a1639d Add 'Label' to modifier group log message. 2012-03-31 18:48:49 -07:00
Tim LaBerge
122bbcd823 More logging changes. 2012-03-31 18:48:22 -07:00
Tim LaBerge
5c42cad5e7 Add labels to debug messages.
Add a global settings settings to the xml settings array.

Start adding label strings to the debug messages. This
needs cleaning up, but it should help.
2012-03-31 18:25:19 -07:00
Tim LaBerge
7781063407 Presence effect in wrong place for some devices. 2012-03-31 18:25:10 -07:00
Tim LaBerge
e56884ecd9 Add missing effects to modifier array.
Change AMP_POSITION to AMP_A_POSITION.

Add AMP_B_POSITION to the modifier array.

Add AMP_PRESENCE to the modifier array and move it to follow Treble
in the Equalizer effect.

Add EQ_B_POSITION settings to the modifier array.

Change the formatting of the debug messages to print more
readable columns.

Conflicts:

	gdigi.c
2012-03-31 18:24:29 -07:00
Tim LaBerge
87ae4cd280 Add 'Label' to modifier group log message. 2012-03-31 17:45:12 -07:00
Tim LaBerge
a073f5cde2 Refine logging infrastructure.
1) Make logging conditional on debug flags.

2) Add command line option for setting these flags.

3) Emit warnings with g_warning() instead of g_message().

4) Added note about how FX_LIB_LEVEL_MAX[1-3] is used.
2012-02-27 20:26:42 -08:00
Tim LaBerge
9fcf6939d0 Add labels to debug messages.
Add a global settings settings to the xml settings array.

Start adding label strings to the debug messages. This
needs cleaning up, but it should help.
2012-02-26 21:52:27 -08:00
Tim LaBerge
71e087cfd0 Presence effect in wrong place for some devices. 2012-02-26 21:27:54 -08:00
Tim LaBerge
6a16e66cbd Add missing effects to modifier array.
Change AMP_POSITION to AMP_A_POSITION.

Add AMP_B_POSITION to the modifier array.

Add AMP_PRESENCE to the modifier array and move it to follow Treble
in the Equalizer effect.

Add EQ_B_POSITION settings to the modifier array.

Change the formatting of the debug messages to print more
readable columns.
2012-02-26 21:21:27 -08:00
Tim LaBerge
2253833105 Add retrieval of global settings. Start LFO. 2012-02-26 08:37:51 -08:00
Tim LaBerge
d92489348d Add the USB (global) effects. 2012-02-25 18:10:58 -08:00
Tim LaBerge
2b27302166 1) Require libxml-2 and build new file preset_xml.c
2) In effects.c, some EffectsValues are changed to better reflect the
   strings used in the XML.

3) New EffectSettings are added for use when writing out effects to XML.

4) Added an XmlLabel structure for mapping a value to a string. Generally,
   these are the union of the set of all values over the set of supported
   devices.

5) There's a large array of XmlSettings used to derive the translation of
   a preset to XML.

6) Add an enum for product_id and use it to set a filter for file suffix.

7) Minor cleanup in push_message() that suppresses spurious error messages.

8) Fixed a bad memset in read_data_thread().

9) In gdigi.h, a few changes in names to be consistent with XML.

   There are some new definitions of LFO and VSWITCH parameters that
   need to be computed.

10) In gui.c, fixed up a compiler warning.

    Added a map from device id to file type and code to set a default filter
    in the read dialog.

    Wired up the 'save to XML' callback and reorganized the menue entries to
    better distinguish between 'save to file' and 'store to device'.

   In preset.c, sort the params so that what we write as XML more closely
   matches what is generated on the windows side.
2012-02-25 17:52:52 -08:00
John Hammen
2c921df204 add RP150 support 2011-10-14 10:43:47 +02:00