WaveSwissKnife 0.3.0.20121227 → 0.3.1.20130103
Sign up to get free protection for your applications and to get access to all the features.
- data/AUTHORS +1 -0
- data/ChangeLog +4 -0
- data/ReleaseInfo +1 -1
- data/ext/WSK/SilentUtils/SilentUtils.c +60 -53
- data/external/CommonUtils/include/CommonUtils.h +0 -24
- data/external/CommonUtils/src/CommonUtils.c +0 -36
- metadata +2 -2
data/AUTHORS
CHANGED
data/ChangeLog
CHANGED
data/ReleaseInfo
CHANGED
@@ -22,6 +22,14 @@ typedef struct {
|
|
22
22
|
int nbrChannels;
|
23
23
|
} tFirstSampleBeyondThresholdStruct;
|
24
24
|
|
25
|
+
// Struct used to convey data among iterators in the getNextSilentInThresholds method
|
26
|
+
typedef struct {
|
27
|
+
tSampleIndex* ptrIdxSample;
|
28
|
+
tSampleIndex* ptrIdxFirstSilentSample;
|
29
|
+
tThresholdInfo* ptrSilenceThresholds;
|
30
|
+
tSampleIndex* ptrIdxSilenceSample_Result;
|
31
|
+
} tNextSilentInThresholdsStruct;
|
32
|
+
|
25
33
|
/**
|
26
34
|
* Process a value read from an input buffer for the NextSilentSample function.
|
27
35
|
*
|
@@ -123,45 +131,46 @@ int silentutils_Reverse_processValue(
|
|
123
131
|
|
124
132
|
/**
|
125
133
|
* Code block called by getNextSilentSample in the each_raw_buffer loop.
|
126
|
-
* This is meant to be used with
|
134
|
+
* This is meant to be used with rb_block_call.
|
127
135
|
*
|
128
136
|
* Parameters::
|
129
|
-
* * *
|
130
|
-
*
|
131
|
-
* ** *iValNbrSamples* (_Integer_): The number of samples in this buffer
|
132
|
-
* ** *iValNbrChannels* (_Integer_): The number of channels in this buffer
|
133
|
-
* * *iValIterateArgs* (<em>list<Object></em>): The iterate arguments:
|
137
|
+
* * *iYieldedObject* (_Object_): First parameter of iArgs
|
138
|
+
* * *iValContextArgs* (<em>list<Object></em>): The context arguments:
|
134
139
|
* ** *iValNbrBitsPerSample* (_Integer_): Number of bits per sample
|
135
|
-
* ** *
|
136
|
-
* ** *iValPtrIdxFirstSilentSample* (_Integer_): Address of the IdxFirstSilentSample variable
|
137
|
-
* ** *iValPtrSilenceThresholds* (_Integer_): Address of the SilenceThresholds variable
|
140
|
+
* ** *iValData* (_DATA_): Data encapsulating the tNextSilentInThresholdsStruct that contains C variables to be modified
|
138
141
|
* ** *iValMinSilenceSamples* (_Integer_): Minimal silence samples
|
139
|
-
* ** *iValPtrIdxSilenceSample_Result* (_Integer_): Address of the IdxSilenceSample_Result variable
|
140
142
|
* ** *iValBackwardsSearch* (_Boolean_): Do we search backwards ?
|
143
|
+
* * *iArgc* (_int_): Number of arguments in iArgs
|
144
|
+
* * *iArgs* (_VALUE[]_): Array of arguments given by the yield call:
|
145
|
+
* ** *iValInputRawBuffer* (_String_): The raw buffer
|
146
|
+
* ** *iValNbrSamples* (_Integer_): The number of samples in this buffer
|
147
|
+
* ** *iValNbrChannels* (_Integer_): The number of channels in this buffer
|
141
148
|
*/
|
142
149
|
static VALUE silentutils_blockEachRawBuffer(
|
143
|
-
VALUE
|
144
|
-
VALUE
|
150
|
+
VALUE iYieldedObject,
|
151
|
+
VALUE iValContextArgs,
|
152
|
+
int iArgc,
|
153
|
+
VALUE iArgs[]) {
|
145
154
|
// Read arguments
|
146
|
-
VALUE iValInputRawBuffer =
|
147
|
-
VALUE iValNbrSamples =
|
148
|
-
VALUE iValNbrChannels =
|
149
|
-
VALUE iValNbrBitsPerSample = rb_ary_entry(
|
150
|
-
VALUE
|
151
|
-
VALUE
|
152
|
-
VALUE
|
153
|
-
VALUE iValMinSilenceSamples = rb_ary_entry(iValIterateArgs, 4);
|
154
|
-
VALUE iValPtrIdxSilenceSample_Result = rb_ary_entry(iValIterateArgs, 5);
|
155
|
-
VALUE iValBackwardsSearch = rb_ary_entry(iValIterateArgs, 6);
|
155
|
+
VALUE iValInputRawBuffer = iArgs[0];
|
156
|
+
VALUE iValNbrSamples = iArgs[1];
|
157
|
+
VALUE iValNbrChannels = iArgs[2];
|
158
|
+
VALUE iValNbrBitsPerSample = rb_ary_entry(iValContextArgs, 0);
|
159
|
+
VALUE iValData = rb_ary_entry(iValContextArgs, 1);
|
160
|
+
VALUE iValMinSilenceSamples = rb_ary_entry(iValContextArgs, 2);
|
161
|
+
VALUE iValBackwardsSearch = rb_ary_entry(iValContextArgs, 3);
|
156
162
|
// Translate parameters in C types
|
157
163
|
int iNbrBitsPerSample = FIX2INT(iValNbrBitsPerSample);
|
158
164
|
tSampleIndex iNbrSamples = FIX2LONG(iValNbrSamples);
|
159
165
|
int iNbrChannels = FIX2INT(iValNbrChannels);
|
160
|
-
tSampleIndex* lPtrIdxSample = (tSampleIndex*)FIX2INT(iValPtrIdxSample);
|
161
|
-
tSampleIndex* lPtrIdxFirstSilentSample = (tSampleIndex*)FIX2INT(iValPtrIdxFirstSilentSample);
|
162
|
-
tThresholdInfo* lPtrSilenceThresholds = (tThresholdInfo*)FIX2INT(iValPtrSilenceThresholds);
|
163
166
|
tSampleIndex iMinSilenceSamples = FIX2LONG(iValMinSilenceSamples);
|
164
|
-
|
167
|
+
// Get C pointers back from the data
|
168
|
+
tNextSilentInThresholdsStruct* lPtrData;
|
169
|
+
Data_Get_Struct(iValData, tNextSilentInThresholdsStruct, lPtrData);
|
170
|
+
tSampleIndex* lPtrIdxSample = lPtrData->ptrIdxSample;
|
171
|
+
tSampleIndex* lPtrIdxFirstSilentSample = lPtrData->ptrIdxFirstSilentSample;
|
172
|
+
tThresholdInfo* lPtrSilenceThresholds = lPtrData->ptrSilenceThresholds;
|
173
|
+
tSampleIndex* lPtrIdxSilenceSample_Result = lPtrData->ptrIdxSilenceSample_Result;
|
165
174
|
|
166
175
|
// Get the real underlying raw buffer
|
167
176
|
char* lPtrRawBuffer = RSTRING_PTR(iValInputRawBuffer);
|
@@ -260,46 +269,44 @@ static VALUE silentutils_getNextSilentInThresholds(
|
|
260
269
|
// The result
|
261
270
|
tSampleIndex lIdxSilenceSample_Result;
|
262
271
|
|
263
|
-
// Encapsulate
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
272
|
+
// Encapsulate the data that will be used and modified by the iteration block
|
273
|
+
tNextSilentInThresholdsStruct lData;
|
274
|
+
lData.ptrIdxSample = &lIdxSample;
|
275
|
+
lData.ptrIdxFirstSilentSample = &lIdxFirstSilentSample;
|
276
|
+
lData.ptrSilenceThresholds = &lSilenceThresholds;
|
277
|
+
lData.ptrIdxSilenceSample_Result = &lIdxSilenceSample_Result;
|
278
|
+
VALUE lValData = Data_Wrap_Struct(rb_cObject, NULL, NULL, &lData);
|
268
279
|
|
269
280
|
lIdxFirstSilentSample = -1;
|
270
281
|
lIdxSilenceSample_Result = -1;
|
271
282
|
|
272
283
|
// Parse the data, using thresholds matching only
|
284
|
+
VALUE lEachArgs[1];
|
285
|
+
lEachArgs[0] = LONG2FIX(lIdxSample);
|
273
286
|
if (iValBackwardsSearch == Qtrue) {
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
silentutils_blockEachRawBuffer,
|
280
|
-
rb_ary_new3(
|
287
|
+
rb_block_call(
|
288
|
+
iValInputData,
|
289
|
+
rb_intern("each_reverse_raw_buffer"),
|
290
|
+
1,
|
291
|
+
lEachArgs,
|
292
|
+
RUBY_METHOD_FUNC(silentutils_blockEachRawBuffer),
|
293
|
+
rb_ary_new3(4,
|
281
294
|
lValNbrBitsPerSample,
|
282
|
-
|
283
|
-
lValPtrIdxFirstSilentSample,
|
284
|
-
lValPtrSilenceThresholds,
|
295
|
+
lValData,
|
285
296
|
iValMinSilenceSamples,
|
286
|
-
lValPtrIdxSilenceSample_Result,
|
287
297
|
iValBackwardsSearch)
|
288
298
|
);
|
289
299
|
} else {
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
silentutils_blockEachRawBuffer,
|
296
|
-
rb_ary_new3(
|
300
|
+
rb_block_call(
|
301
|
+
iValInputData,
|
302
|
+
rb_intern("each_raw_buffer"),
|
303
|
+
1,
|
304
|
+
lEachArgs,
|
305
|
+
RUBY_METHOD_FUNC(silentutils_blockEachRawBuffer),
|
306
|
+
rb_ary_new3(4,
|
297
307
|
lValNbrBitsPerSample,
|
298
|
-
|
299
|
-
lValPtrIdxFirstSilentSample,
|
300
|
-
lValPtrSilenceThresholds,
|
308
|
+
lValData,
|
301
309
|
iValMinSilenceSamples,
|
302
|
-
lValPtrIdxSilenceSample_Result,
|
303
310
|
iValBackwardsSearch)
|
304
311
|
);
|
305
312
|
}
|
@@ -56,30 +56,6 @@ typedef struct {
|
|
56
56
|
void* fctData;
|
57
57
|
} tFunction;
|
58
58
|
|
59
|
-
/**
|
60
|
-
* Invoke each_raw_buffer on an input data.
|
61
|
-
* This is meant to be used with rb_iterate.
|
62
|
-
*
|
63
|
-
* Parameters::
|
64
|
-
* * *iValArgs* (<em>list<Object></em>): List of arguments:
|
65
|
-
* ** *iValInputData* (<em>WSK::Model::InputData</em>): The input data
|
66
|
-
* ** *iValIdxBeginSample* (_Integer_): Index of the first sample to search from
|
67
|
-
*/
|
68
|
-
VALUE commonutils_callEachRawBuffer(
|
69
|
-
VALUE iValArgs);
|
70
|
-
|
71
|
-
/**
|
72
|
-
* Invoke each_reverse_raw_buffer on an input data.
|
73
|
-
* This is meant to be used with rb_iterate.
|
74
|
-
*
|
75
|
-
* Parameters::
|
76
|
-
* * *iValArgs* (<em>list<Object></em>): List of arguments:
|
77
|
-
* ** *iValInputData* (<em>WSK::Model::InputData</em>): The input data
|
78
|
-
* ** *iValIdxBeginSample* (_Integer_): Index of the first sample to search from
|
79
|
-
*/
|
80
|
-
VALUE commonutils_callEachReverseRawBuffer(
|
81
|
-
VALUE iValArgs);
|
82
|
-
|
83
59
|
/**
|
84
60
|
* Iterate through a raw buffer.
|
85
61
|
*
|
@@ -7,42 +7,6 @@
|
|
7
7
|
#include "ruby.h"
|
8
8
|
#include <stdio.h>
|
9
9
|
|
10
|
-
/**
|
11
|
-
* Invoke each_raw_buffer on an input data.
|
12
|
-
* This is meant to be used with rb_iterate.
|
13
|
-
*
|
14
|
-
* Parameters::
|
15
|
-
* * *iValArgs* (<em>list<Object></em>): List of arguments:
|
16
|
-
* ** *iValInputData* (<em>WSK::Model::InputData</em>): The input data
|
17
|
-
* ** *iValIdxBeginSample* (_Integer_): Index of the first sample to search from
|
18
|
-
*/
|
19
|
-
VALUE commonutils_callEachRawBuffer(
|
20
|
-
VALUE iValArgs) {
|
21
|
-
// Read arguments
|
22
|
-
VALUE iValInputData = rb_ary_entry(iValArgs, 0);
|
23
|
-
VALUE iValIdxBeginSample = rb_ary_entry(iValArgs, 1);
|
24
|
-
|
25
|
-
return rb_funcall(iValInputData, rb_intern("each_raw_buffer"), 1, iValIdxBeginSample);
|
26
|
-
}
|
27
|
-
|
28
|
-
/**
|
29
|
-
* Invoke each_reverse_raw_buffer on an input data.
|
30
|
-
* This is meant to be used with rb_iterate.
|
31
|
-
*
|
32
|
-
* Parameters::
|
33
|
-
* * *iValArgs* (<em>list<Object></em>): List of arguments:
|
34
|
-
* ** *iValInputData* (<em>WSK::Model::InputData</em>): The input data
|
35
|
-
* ** *iValIdxBeginSample* (_Integer_): Index of the first sample to search from
|
36
|
-
*/
|
37
|
-
VALUE commonutils_callEachReverseRawBuffer(
|
38
|
-
VALUE iValArgs) {
|
39
|
-
// Read arguments
|
40
|
-
VALUE iValInputData = rb_ary_entry(iValArgs, 0);
|
41
|
-
VALUE iValIdxBeginSample = rb_ary_entry(iValArgs, 1);
|
42
|
-
|
43
|
-
return rb_funcall(iValInputData, rb_intern("each_reverse_raw_buffer"), 2, INT2FIX(0), iValIdxBeginSample);
|
44
|
-
}
|
45
|
-
|
46
10
|
/**
|
47
11
|
* Iterate through a raw buffer.
|
48
12
|
*
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: WaveSwissKnife
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.1.20130103
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-01-03 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rUtilAnts
|