]> git.0d.be Git - jack_mixer.git/blobdiff - jack_mixer.h
Set version to 14 in preparation for next release
[jack_mixer.git] / jack_mixer.h
index bdd820794290501129d01b250a7dc1515bdc4b49..17b5fb739f36cf4899eb3ee554f4f3c90c89f817 100644 (file)
@@ -2,9 +2,9 @@
 /*****************************************************************************
  *
  *   This file is part of jack_mixer
- *    
+ *
  *   Copyright (C) 2006 Nedko Arnaudov <nedko@arnaudov.name>
- *    
+ *
  *   This program is free software; you can redistribute it and/or modify
  *   it under the terms of the GNU General Public License as published by
  *   the Free Software Foundation; version 2 of the License
 #ifndef JACK_MIXER_H__DAEB51D8_5861_40F2_92E4_24CA495A384D__INCLUDED
 #define JACK_MIXER_H__DAEB51D8_5861_40F2_92E4_24CA495A384D__INCLUDED
 
-#ifdef SWIG
-%module jack_mixer_c
-%include "typemaps.i"
-%apply double *OUTPUT { double * left_ptr, double * right_ptr, double * mono_ptr };
-%{
 #include <stdbool.h>
-#include "jack_mixer.h"
-%}
-#endif
+#include <jack/jack.h>
+
+#include "scale.h"
 
 typedef void * jack_mixer_t;
+typedef void * jack_mixer_kmeter_t;
 typedef void * jack_mixer_channel_t;
 typedef void * jack_mixer_output_channel_t;
-typedef void * jack_mixer_scale_t;
 typedef void * jack_mixer_threshold_t;
 
+enum midi_behavior_mode { Jump_To_Value, Pick_Up };
+
 jack_mixer_t
 create(
-  const char * jack_client_name_ptr);
+  const char * jack_client_name_ptr,
+  bool stereo);
 
 void
 destroy(
   jack_mixer_t mixer);
 
-jack_mixer_channel_t
-get_main_mix_channel(
-  jack_mixer_t mixer);
-
 unsigned int
 get_channels_count(
   jack_mixer_t mixer);
 
-unsigned int
+const char*
+get_client_name(
+  jack_mixer_t mixer);
+
+int
 get_last_midi_channel(
   jack_mixer_t mixer);
 
+unsigned int
+set_last_midi_channel(
+  jack_mixer_t mixer,
+  int new_channel);
+
+int
+get_midi_behavior_mode(
+  jack_mixer_t mixer);
+
+unsigned int
+set_midi_behavior_mode(
+  jack_mixer_t mixer,
+  enum midi_behavior_mode mode);
+
 jack_mixer_channel_t
 add_channel(
   jack_mixer_t mixer,
   const char * channel_name,
   bool stereo);
 
+void kmeter_init(jack_mixer_kmeter_t km,
+  int sr,
+  int fsize,
+  float hold,
+  float fall);
+
+void kmeter_process(
+  jack_mixer_kmeter_t km,
+  jack_default_audio_sample_t *p,
+  int start,
+  int end);
+
 const char *
 channel_get_name(
   jack_mixer_channel_t channel);
@@ -82,6 +106,25 @@ channel_mono_meter_read(
   jack_mixer_channel_t channel,
   double * mono_ptr);
 
+
+/* returned values are in dBFS */
+void
+channel_stereo_kmeter_read(
+  jack_mixer_channel_t channel,
+  double * left_ptr,
+  double * right_ptr,
+  double * left_rms_ptr,
+  double * right_rms_ptr);
+
+/* returned value is in dBFS */
+void
+channel_mono_kmeter_read(
+  jack_mixer_channel_t channel,
+  double * mono_ptr,
+  double * mono_rms_ptr);
+
+
+
 bool
 channel_is_stereo(
   jack_mixer_channel_t channel);
@@ -102,6 +145,9 @@ double
 channel_volume_read(
   jack_mixer_channel_t channel);
 
+void
+channels_volumes_read(jack_mixer_t mixer_ptr);
+
 /* balance is from -1.0 (full left) to +1.0 (full right) */
 void
 channel_balance_write(
@@ -112,32 +158,72 @@ double
 channel_balance_read(
   jack_mixer_channel_t channel);
 
-unsigned int
+int
 channel_get_balance_midi_cc(
   jack_mixer_channel_t channel);
 
 unsigned int
 channel_set_balance_midi_cc(
   jack_mixer_channel_t channel,
-  unsigned int new_cc);
+  int new_cc);
 
-unsigned int
+int
 channel_get_volume_midi_cc(
   jack_mixer_channel_t channel);
 
 unsigned int
 channel_set_volume_midi_cc(
   jack_mixer_channel_t channel,
-  unsigned int new_cc);
+  int new_cc);
+
+int
+channel_get_mute_midi_cc(
+  jack_mixer_channel_t channel);
+
+unsigned int
+channel_set_mute_midi_cc(
+  jack_mixer_channel_t channel,
+  int new_cc);
+
+int
+channel_get_solo_midi_cc(
+  jack_mixer_channel_t channel);
+
+unsigned int
+channel_set_solo_midi_cc(
+  jack_mixer_channel_t channel,
+  int new_cc);
+
+void channel_set_midi_cc_volume_picked_up(jack_mixer_channel_t channel,
+  bool status);
+
+void channel_set_midi_cc_balance_picked_up(jack_mixer_channel_t channel,
+  bool status);
 
 void
-channel_autoset_midi_cc(
+channel_autoset_volume_midi_cc(
+  jack_mixer_channel_t channel);
+
+void
+channel_autoset_balance_midi_cc(
+  jack_mixer_channel_t channel);
+
+void
+channel_autoset_mute_midi_cc(
+  jack_mixer_channel_t channel);
+
+void
+channel_autoset_solo_midi_cc(
   jack_mixer_channel_t channel);
 
 void
 remove_channel(
   jack_mixer_channel_t channel);
 
+void
+remove_channels(
+  jack_mixer_t mixer);
+
 /* returned value is in dBFS */
 double
 channel_abspeak_read(
@@ -148,11 +234,15 @@ channel_abspeak_reset(
   jack_mixer_channel_t channel);
 
 void
-channel_mute(
+channel_out_mute(
   jack_mixer_channel_t channel);
 
 void
-channel_unmute(
+channel_out_unmute(
+  jack_mixer_channel_t channel);
+
+bool
+channel_is_out_muted(
   jack_mixer_channel_t channel);
 
 void
@@ -163,10 +253,6 @@ void
 channel_unsolo(
   jack_mixer_channel_t channel);
 
-bool
-channel_is_muted(
-  jack_mixer_channel_t channel);
-
 bool
 channel_is_soloed(
   jack_mixer_channel_t channel);
@@ -181,32 +267,9 @@ channel_set_midi_scale(
   jack_mixer_channel_t channel,
   jack_mixer_scale_t scale);
 
-jack_mixer_scale_t
-scale_create();
-
 bool
-scale_add_threshold(
-  jack_mixer_scale_t scale,
-  float db,
-  float scale_value);
-
-void
-scale_calculate_coefficients(
-  jack_mixer_scale_t scale);
-
-double
-scale_db_to_scale(
-  jack_mixer_scale_t scale,
-  double db);
-
-double
-scale_scale_to_db(
-  jack_mixer_scale_t scale,
-  double scale_value);
-
-void
-scale_destroy(
-  jack_mixer_scale_t scale);
+channel_get_midi_in_got_events(
+  jack_mixer_channel_t channel);
 
 jack_mixer_output_channel_t
 add_output_channel(
@@ -250,4 +313,13 @@ bool
 output_channel_is_prefader(
   jack_mixer_output_channel_t output_channel);
 
+void output_channel_set_in_prefader(jack_mixer_output_channel_t output_channel,
+  jack_mixer_channel_t input_channel,
+  bool prefader_value);
+
+bool
+output_channel_is_in_prefader(
+  jack_mixer_output_channel_t output_channel,
+  jack_mixer_channel_t channel);
+
 #endif /* #ifndef JACK_MIXER_H__DAEB51D8_5861_40F2_92E4_24CA495A384D__INCLUDED */