1b815c7f3Sopenharmony_ci/* 2b815c7f3Sopenharmony_ci** Copyright (C) 1999-2011 Erik de Castro Lopo <erikd@mega-nerd.com> 3b815c7f3Sopenharmony_ci** 4b815c7f3Sopenharmony_ci** This program is free software; you can redistribute it and/or modify 5b815c7f3Sopenharmony_ci** it under the terms of the GNU General Public License as published by 6b815c7f3Sopenharmony_ci** the Free Software Foundation; either version 2 of the License, or 7b815c7f3Sopenharmony_ci** (at your option) any later version. 8b815c7f3Sopenharmony_ci** 9b815c7f3Sopenharmony_ci** This program is distributed in the hope that it will be useful, 10b815c7f3Sopenharmony_ci** but WITHOUT ANY WARRANTY; without even the implied warranty of 11b815c7f3Sopenharmony_ci** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12b815c7f3Sopenharmony_ci** GNU General Public License for more details. 13b815c7f3Sopenharmony_ci** 14b815c7f3Sopenharmony_ci** You should have received a copy of the GNU General Public License 15b815c7f3Sopenharmony_ci** along with this program; if not, write to the Free Software 16b815c7f3Sopenharmony_ci** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17b815c7f3Sopenharmony_ci*/ 18b815c7f3Sopenharmony_ci 19b815c7f3Sopenharmony_ci#include "sfconfig.h" 20b815c7f3Sopenharmony_ci 21b815c7f3Sopenharmony_ci#include <stdio.h> 22b815c7f3Sopenharmony_ci 23b815c7f3Sopenharmony_ci#if HAVE_UNISTD_H 24b815c7f3Sopenharmony_ci#include <unistd.h> 25b815c7f3Sopenharmony_ci#else 26b815c7f3Sopenharmony_ci#include "sf_unistd.h" 27b815c7f3Sopenharmony_ci#endif 28b815c7f3Sopenharmony_ci 29b815c7f3Sopenharmony_ci#include <sndfile.h> 30b815c7f3Sopenharmony_ci 31b815c7f3Sopenharmony_ci#define BUFFER_SIZE (1024) 32b815c7f3Sopenharmony_ci 33b815c7f3Sopenharmony_ci 34b815c7f3Sopenharmony_cistatic short buffer [BUFFER_SIZE] ; 35b815c7f3Sopenharmony_ci 36b815c7f3Sopenharmony_ciint 37b815c7f3Sopenharmony_cimain (int argc, char *argv []) 38b815c7f3Sopenharmony_ci{ SNDFILE *file ; 39b815c7f3Sopenharmony_ci SF_INFO sfinfo ; 40b815c7f3Sopenharmony_ci int k, count, max = 0, total = 0 ; 41b815c7f3Sopenharmony_ci 42b815c7f3Sopenharmony_ci if (argc < 2) 43b815c7f3Sopenharmony_ci { printf ("Expecting input file name.\n") ; 44b815c7f3Sopenharmony_ci return 0 ; 45b815c7f3Sopenharmony_ci } ; 46b815c7f3Sopenharmony_ci 47b815c7f3Sopenharmony_ci if (! (file = sf_open (argv [1], SFM_READ, &sfinfo))) 48b815c7f3Sopenharmony_ci { printf ("sf_open_read failed with error : ") ; 49b815c7f3Sopenharmony_ci puts (sf_strerror (NULL)) ; 50b815c7f3Sopenharmony_ci exit (1) ; 51b815c7f3Sopenharmony_ci } ; 52b815c7f3Sopenharmony_ci 53b815c7f3Sopenharmony_ci while ((count = sf_read_short (file, buffer, BUFFER_SIZE))) 54b815c7f3Sopenharmony_ci { for (k = 0 ; k < count ; k++) 55b815c7f3Sopenharmony_ci if (abs (buffer [k]) > max) 56b815c7f3Sopenharmony_ci max = abs (buffer [k]) ; 57b815c7f3Sopenharmony_ci total += count ; 58b815c7f3Sopenharmony_ci } ; 59b815c7f3Sopenharmony_ci 60b815c7f3Sopenharmony_ci printf ("Total : %d\n", total) ; 61b815c7f3Sopenharmony_ci printf ("Maximun value : %d\n", max) ; 62b815c7f3Sopenharmony_ci 63b815c7f3Sopenharmony_ci sf_close (file) ; 64b815c7f3Sopenharmony_ci 65b815c7f3Sopenharmony_ci return 0 ; 66b815c7f3Sopenharmony_ci} /* main */ 67b815c7f3Sopenharmony_ci 68