configure.ac: Add checks for Flex/Yacc/Bison and other furry animals, for the new...
[platform/upstream/gst-plugins-good.git] / gst / goom / config_param.c
1 /*---------------------------------------------------------------------------*/
2 /*
3 ** config_param.c
4 ** Goom Project
5 **
6 ** Created by Jean-Christophe Hoelt on Sat Jul 19 2003
7 ** Copyright (c) 2003 iOS. All rights reserved.
8 */
9 /*---------------------------------------------------------------------------*/
10
11 #include "goom_config_param.h"
12 #include <string.h>
13
14 /* TODO: Ajouter goom_ devant ces fonctions */
15
16 static void
17 empty_fct (PluginParam * dummy)
18 {
19 }
20
21 PluginParam
22 goom_secure_param ()
23 {
24   PluginParam p;
25
26   p.changed = empty_fct;
27   p.change_listener = empty_fct;
28   p.user_data = 0;
29   p.name = p.desc = 0;
30   p.rw = 1;
31   return p;
32 }
33
34 PluginParam
35 goom_secure_f_param (char *name)
36 {
37   PluginParam p = secure_param ();
38
39   p.name = name;
40   p.type = PARAM_FLOATVAL;
41   FVAL (p) = 0.5f;
42   FMIN (p) = 0.0f;
43   FMAX (p) = 1.0f;
44   FSTEP (p) = 0.01f;
45   return p;
46 }
47
48 PluginParam
49 goom_secure_f_feedback (char *name)
50 {
51   PluginParam p = secure_f_param (name);
52
53   p.rw = 0;
54   return p;
55 }
56
57 PluginParam
58 goom_secure_s_param (char *name)
59 {
60   PluginParam p = secure_param ();
61
62   p.name = name;
63   p.type = PARAM_STRVAL;
64   SVAL (p) = 0;
65   return p;
66 }
67
68 PluginParam
69 goom_secure_b_param (char *name, int value)
70 {
71   PluginParam p = secure_param ();
72
73   p.name = name;
74   p.type = PARAM_BOOLVAL;
75   BVAL (p) = value;
76   return p;
77 }
78
79 PluginParam
80 goom_secure_i_param (char *name)
81 {
82   PluginParam p = secure_param ();
83
84   p.name = name;
85   p.type = PARAM_INTVAL;
86   IVAL (p) = 50;
87   IMIN (p) = 0;
88   IMAX (p) = 100;
89   ISTEP (p) = 1;
90   return p;
91 }
92
93 PluginParam
94 goom_secure_i_feedback (char *name)
95 {
96   PluginParam p = secure_i_param (name);
97
98   p.rw = 0;
99   return p;
100 }
101
102 PluginParameters
103 goom_plugin_parameters (const char *name, int nb)
104 {
105   PluginParameters p;
106
107   p.name = (char *) name;
108   p.desc = "";
109   p.nbParams = nb;
110   p.params = (PluginParam **) malloc (nb * sizeof (PluginParam *));
111   return p;
112 }
113
114 /*---------------------------------------------------------------------------*/
115
116 void
117 goom_set_str_param_value (PluginParam * p, const char *str)
118 {
119   int len = strlen (str);
120
121   if (SVAL (*p))
122     SVAL (*p) = (char *) realloc (SVAL (*p), len + 1);
123   else
124     SVAL (*p) = (char *) malloc (len + 1);
125   memcpy (SVAL (*p), str, len + 1);
126 }
127
128 void
129 goom_set_list_param_value (PluginParam * p, const char *str)
130 {
131   int len = strlen (str);
132
133 #ifdef VERBOSE
134   printf ("%s: %d\n", str, len);
135 #endif
136   if (LVAL (*p))
137     LVAL (*p) = (char *) realloc (LVAL (*p), len + 1);
138   else
139     LVAL (*p) = (char *) malloc (len + 1);
140   memcpy (LVAL (*p), str, len + 1);
141 }