File: gap_story_sox.c

package info (click to toggle)
gimp-gap 2.6.0+dfsg-5
  • links: PTS
  • area: main
  • in suites: bullseye, buster, sid, stretch
  • size: 20,720 kB
  • ctags: 7,997
  • sloc: ansic: 119,817; sh: 3,890; makefile: 932; lisp: 97; pascal: 55
file content (78 lines) | stat: -rw-r--r-- 2,220 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
/* gap_story_sox.c
 *    Audio resampling Modules based on calls to UNIX Utility Program sox
 */
/*
 * Copyright
 *
 * 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; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 */

#include <stdlib.h>
#include <config.h>

#include <glib/gstdio.h>

#include "gap_story_sox.h"
#include "gap_audio_wav.h"
#include "gap-intl.h"


extern int gap_debug;  /* 1 == print debug infos , 0 dont print debug infos */

/* --------------------------------
 * gap_story_sox_exec_resample
 * --------------------------------
 */
void
gap_story_sox_exec_resample(char *in_audiofile
               ,char *out_audiofile
               ,gint32 samplerate
               ,char *util_sox           /* the resample program (default: sox) */
               ,char *util_sox_options
               )
{
  gchar *l_cmd;

  if(util_sox == NULL)
  {
    util_sox = GAP_STORY_SOX_DEFAULT_UTIL_SOX;
  }
  if(util_sox_options == NULL)
  {
    util_sox_options = GAP_STORY_SOX_DEFAULT_UTIL_SOX_OPTIONS;
  }

  /* the calling style requres UNIX Shell for Environment Variables
   * IN, OUT, RATE  that are used for Parameter substitution
   */

  l_cmd = g_strdup_printf("IN='%s';OUT='%s';RATE=%d;%s %s\n"
           , in_audiofile               /* input audio file */
           , out_audiofile              /* output audio file (tmp 16-bit wav file) */
           , (int)samplerate
           , util_sox
           , util_sox_options
           );

  if(gap_debug)
  {
    printf("Execute resample CMD:%s\n", l_cmd);
  }

  system(l_cmd);
  g_free(l_cmd);
}  /* end gap_story_sox_exec_resample */