~ubuntu-branches/ubuntu/trusty/sflphone/trusty

« back to all changes in this revision

Viewing changes to daemon/libs/pjproject-2.1.0/third_party/gsm/src/toast_audio.c

  • Committer: Package Import Robot
  • Author(s): Mark Purcell
  • Date: 2014-01-28 18:23:36 UTC
  • mfrom: (4.3.4 sid)
  • Revision ID: package-import@ubuntu.com-20140128182336-jrsv0k9u6cawc068
Tags: 1.3.0-1
* New upstream release 
  - Fixes "New Upstream Release" (Closes: #735846)
  - Fixes "Ringtone does not stop" (Closes: #727164)
  - Fixes "[sflphone-kde] crash on startup" (Closes: #718178)
  - Fixes "sflphone GUI crashes when call is hung up" (Closes: #736583)
* Build-Depends: ensure GnuTLS 2.6
  - libucommon-dev (>= 6.0.7-1.1), libccrtp-dev (>= 2.0.6-3)
  - Fixes "FTBFS Build-Depends libgnutls{26,28}-dev" (Closes: #722040)
* Fix "boost 1.49 is going away" unversioned Build-Depends: (Closes: #736746)
* Add Build-Depends: libsndfile-dev, nepomuk-core-dev

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
 
3
 * Universitaet Berlin.  See the accompanying file "COPYRIGHT" for
 
4
 * details.  THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
 
5
 */
 
6
 
 
7
/* $Header: /tmp_amd/presto/export/kbs/jutta/src/gsm/RCS/toast_audio.c,v 1.6 1995/03/07 21:21:24 jutta Exp $ */
 
8
 
 
9
#include        "toast.h"
 
10
 
 
11
/*  toast_audio -- functions to manipulate SunOS audio files.
 
12
 *
 
13
 *  This is reverse engineered from our present soundfiles
 
14
 *  and in no way portable, durable or aesthetically pleasing.
 
15
 */
 
16
 
 
17
extern FILE     * in,     * out;
 
18
extern char     * inname;
 
19
extern char     * progname;
 
20
 
 
21
extern int      (*output) P((gsm_signal *)),
 
22
                (*input ) P((gsm_signal *));
 
23
 
 
24
extern int      alaw_input   P((gsm_signal *)),
 
25
                ulaw_input   P((gsm_signal *)),
 
26
                linear_input P((gsm_signal *));
 
27
 
 
28
extern int      ulaw_output P((gsm_signal *));
 
29
 
 
30
static int put_u32 P2((f, u), FILE * f, unsigned long u)
 
31
{
 
32
        /*  Write a 32-bit unsigned value msb first. 
 
33
         */
 
34
        if (  putc( (char)((u>>24) & 0x0FF), f) == EOF
 
35
           || putc( (char)((u>>16) & 0x0FF), f) == EOF
 
36
           || putc( (char)((u>> 8) & 0x0FF), f) == EOF
 
37
           || putc( (char)( u      & 0x0FF), f) == EOF) return -1;
 
38
 
 
39
        return 0;
 
40
}
 
41
 
 
42
static int get_u32 P2((f, up), FILE * f, unsigned long * up)
 
43
{
 
44
        /*  Read a 32-bit unsigned value msb first.
 
45
         */
 
46
        int             i;
 
47
        unsigned long   u;
 
48
 
 
49
        if (                                  (i = getc(f)) == EOF
 
50
           || ((u =        (unsigned char)i), (i = getc(f)) == EOF)
 
51
           || ((u = (u<<8)|(unsigned char)i), (i = getc(f)) == EOF)
 
52
           || ((u = (u<<8)|(unsigned char)i), (i = getc(f)) == EOF)) return -1;
 
53
        *up =       (u<<8)|(unsigned char)i;
 
54
        return 0;
 
55
}
 
56
 
 
57
int audio_init_input P0()
 
58
{
 
59
        unsigned long   len, enc;       /* unsigned 32 bits     */
 
60
 
 
61
        if (  fgetc(in) != '.' 
 
62
           || fgetc(in) != 's'
 
63
           || fgetc(in) != 'n'
 
64
           || fgetc(in) != 'd'
 
65
           || get_u32( in, &len )
 
66
           || get_u32( in, &enc )       /* skip this */
 
67
           || get_u32( in, &enc )) {
 
68
                fprintf(stderr, 
 
69
        "%s: bad (missing?) header in Sun audio file \"%s\";\n\
 
70
        Try one of -u, -a, -l instead (%s -h for help).\n",
 
71
                        progname, inname ? inname : "stdin", progname);
 
72
                return -1;
 
73
        }
 
74
 
 
75
        switch (enc) {
 
76
        case 1: input = ulaw_input;     break;
 
77
        case 2: input = alaw_input;     break;
 
78
        case 3: input = linear_input;   break;
 
79
        default:
 
80
                fprintf(stderr,
 
81
"%s: warning: file format #%lu for %s not implemented, defaulting to u-law.\n",
 
82
                        progname, enc, inname);
 
83
                input = ulaw_input;
 
84
                break;
 
85
        }
 
86
 
 
87
        while (len > 4*4)
 
88
                if (getc(in) == EOF) {
 
89
                        fprintf(stderr, 
 
90
                        "%s: EOF in header of Sun audio file \"%s\";\n\
 
91
                        Try one of -u, -a, -l instead (%s -h for help).\n",
 
92
                                progname, inname ? inname : "stdin", progname);
 
93
                        return -1;
 
94
                }
 
95
                else len--;
 
96
 
 
97
        return 0;
 
98
}
 
99
 
 
100
int audio_init_output P0()
 
101
{
 
102
        if (  fputs(".snd", out) == EOF
 
103
           || put_u32(out, 32)
 
104
           || put_u32(out, ~(unsigned long)0)
 
105
           || put_u32(out, 1)
 
106
           || put_u32(out, 8000)
 
107
           || put_u32(out, 1)
 
108
           || put_u32(out, 0)
 
109
           || put_u32(out, 0)) return -1;
 
110
 
 
111
        return 0;
 
112
}
 
113