ftp.nice.ch/pub/next/unix/audio/shorten.1.12.s.tar.gz#/shorten-1.12/sphere.c

This is sphere.c in view mode; [Download] [Up]

/******************************************************************************
*                                                                             *
*       Copyright (C) 1992,1993,1994 Tony Robinson                            *
*                                                                             *
*       See the file LICENSE for conditions on distribution and usage         *
*                                                                             *
******************************************************************************/

# include <math.h>
# include <stdio.h>
# include "shorten.h"

extern jmp_buf	exitenv;
extern char	*exitmessage;

# define MAX_FLAG_SIZE 32
# define MAX_SHORTEN_ARGC 256

int   shorten_argc = 1;
char *shorten_argv[MAX_SHORTEN_ARGC];

void shorten_set_flag(flag) char *flag; {
  int nbyte = strlen(flag) + 1;
  char *new_argv = malloc(nbyte);
  
  if(new_argv == NULL) {
    fprintf(stderr, "shorten_set_flag: malloc(%d) == NULL\n", nbyte);
    exit(1);
  }

  if(shorten_argc >= MAX_SHORTEN_ARGC) {
    fprintf(stderr, "shorten_set_flag: maximum argument count exceeded\n");
    exit(1);
  }

  strcpy(new_argv, flag);
  shorten_argv[shorten_argc++] = new_argv;
}

void shorten_reset_flags() {
  int i;

  for(i = 1; i < shorten_argc; i++)
    free(shorten_argv[i]);
  shorten_argc = 1;
}

void shorten_set_ftype(ftype) char *ftype; {
  char flag[MAX_FLAG_SIZE];
  sprintf(flag, "-t%s", ftype);
  shorten_set_flag(flag);
}

#define MAX_FLAG_SIZE 32
void shorten_set_channel_count(nchannel) int nchannel; {
  char flag[MAX_FLAG_SIZE];
  sprintf(flag, "-c%d", nchannel);
  shorten_set_flag(flag);
}

/* from Jon Fiscus, 18 Aug 93 */
void shorten_init() {
  shorten_reset_flags();
  shorten_argv[0] = "embedded-shorten";
}

/* from Jon Fiscus, 18 Aug 93 */
void shorten_dump_flags(fpout) FILE *fpout; {
  int i;

  fprintf(fpout,"Shorten Arguements:\n");
  for(i = 0; i < shorten_argc; i++)
    fprintf(fpout,"   Arg %1d: %s\n",i,shorten_argv[i]);
}

int shorten_compress(fpin, fpout, status) FILE *fpin, *fpout; char *status; {
  int exitcode;

  exitmessage = status;
  if((exitcode = setjmp(exitenv)) == 0)
    exitcode = shorten(fpin, fpout, shorten_argc, shorten_argv);
  shorten_reset_flags();
  return(exitcode + 1);
}

int shorten_uncompress(fpin, fpout, status) FILE *fpin, *fpout; char *status; {
  int exitcode;

  shorten_set_flag("-x");
  exitmessage = status;
  if((exitcode = setjmp(exitenv)) == 0)
    exitcode = shorten(fpin, fpout, shorten_argc, shorten_argv);
  shorten_reset_flags();
  return(exitcode + 1);
}

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.