Changeset 98a3887


Ignore:
Timestamp:
Jan 24, 2014, 5:09:50 PM (7 years ago)
Author:
Paul Brossier <piem@piem.org>
Branches:
feature/autosink, feature/constantq, feature/pitchshift, feature/pydocstrings, feature/timestretch, master, pitchshift, sampler, timestretch, yinfft+
Children:
5ab8e59
Parents:
16dda03
Message:

src/io/*apple*: improve error messages

Location:
src/io
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • src/io/sink_apple_audio.c

    r16dda03 r98a3887  
    3737extern void freeAudioBufferList(AudioBufferList *bufferList);
    3838extern CFURLRef getURLFromPath(const char * path);
     39char_t *getPrintableOSStatusError(char_t *str, OSStatus error);
    3940
    4041#define MAX_SIZE 4096 // the maximum number of frames that can be written at a time
     
    7980     overwrite ? kAudioFileFlags_EraseFile : 0, &s->audioFile);
    8081  if (err) {
    81     AUBIO_ERR("error when trying to create %s, in ExtAudioFileCreateWithURL, %d\n", s->path, (int)err);
     82    char_t errorstr[20];
     83    AUBIO_ERR("sink_apple_audio: error when trying to create %s with "
     84        "ExtAudioFileCreateWithURL (%s)\n", s->path,
     85        getPrintableOSStatusError(errorstr, err));
    8286    goto beach;
    8387  }
    8488  if (createAubioBufferList(&s->bufferList, s->channels, s->max_frames * s->channels)) {
    85     AUBIO_ERR("error when creating buffer list for %s, out of memory? \n", s->path);
     89    AUBIO_ERR("sink_apple_audio: error when creating buffer list for %s, "
     90        "out of memory? \n", s->path);
    8691    goto beach;
    8792  }
     
    115120
    116121    if (err) {
    117       AUBIO_ERROR("in aubio_sink_apple_audio_do, writing %s\n", s->path);
    118       AUBIO_ERROR("ExtAudioFileWriteAsync failed with %d, switching to sync\n", (int)err);
     122      char_t errorstr[20];
     123      AUBIO_ERROR("sink_apple_audio: error while writing %s "
     124          "in ExtAudioFileWriteAsync (%s), switching to sync\n", s->path,
     125          getPrintableOSStatusError(errorstr, err));
    119126      s->async = false;
    120127    } else {
     
    126133
    127134    if (err) {
    128       AUBIO_ERROR("in aubio_sink_apple_audio_do, writing %s\n", s->path);
    129       AUBIO_ERROR("ExtAudioFileWrite failed with %d, aborting\n", (int)err);
     135      char_t errorstr[20];
     136      AUBIO_ERROR("sink_apple_audio: error while writing %s "
     137          "in ExtAudioFileWrite (%s)\n", s->path,
     138          getPrintableOSStatusError(errorstr, err));
    130139    }
    131140  }
     
    136145  OSStatus err = noErr;
    137146  if (!s || !s->audioFile) {
    138     AUBIO_ERR("failed erasing sink_apple_audio\n");
     147    AUBIO_ERR("sink_apple_audio: failed erasing\n");
    139148    return;
    140149  }
    141150  err = ExtAudioFileDispose(s->audioFile);
    142   if (err) AUBIO_ERROR("error in ExtAudioFileDispose, %d\n", (int)err);
     151  if (err) {
     152    char_t errorstr[20];
     153    AUBIO_ERROR("sink_apple_audio: error while closing %s "
     154        "in ExtAudioFileDispose (%s)\n", s->path,
     155        getPrintableOSStatusError(errorstr, err));
     156  }
    143157  s->audioFile = NULL;
    144158  freeAudioBufferList(&s->bufferList);
  • src/io/source_apple_audio.c

    r16dda03 r98a3887  
    5151extern void freeAudioBufferList(AudioBufferList *bufferList);
    5252extern CFURLRef getURLFromPath(const char * path);
     53char_t *getPrintableOSStatusError(char_t *str, OSStatus error);
    5354
    5455uint_t aubio_source_apple_audio_open (aubio_source_apple_audio_t *s, char_t * path);
     
    8081  CFURLRef fileURL = getURLFromPath(path);
    8182  err = ExtAudioFileOpenURL(fileURL, &s->audioFile);
    82   if (err) { AUBIO_ERR("error when trying to access %s, in ExtAudioFileOpenURL, %d\n", s->path, (int)err); goto beach;}
     83  if (err == -43) {
     84    AUBIO_ERR("source_apple_audio: Failed opening %s, "
     85        "file not found, or no read access\n", s->path);
     86    goto beach;
     87  } else if (err) {
     88    char_t errorstr[20];
     89    AUBIO_ERR("source_apple_audio: Failed opening %s, "
     90        "error in ExtAudioFileOpenURL (%s)\n", s->path,
     91        getPrintableOSStatusError(errorstr, err));
     92    goto beach;
     93  }
    8394
    8495  // create an empty AudioStreamBasicDescription
     
    90101  err = ExtAudioFileGetProperty(s->audioFile,
    91102      kExtAudioFileProperty_FileDataFormat, &propSize, &fileFormat);
    92   if (err) { AUBIO_ERROR("error in ExtAudioFileGetProperty, %d\n", (int)err); goto beach;}
     103  if (err) {
     104    char_t errorstr[20];
     105    AUBIO_ERROR("source_apple_audio: Failed opening %s, "
     106        "error in ExtAudioFileGetProperty (%s)\n", s->path,
     107        getPrintableOSStatusError(errorstr, err));
     108    goto beach;
     109  }
    93110
    94111  if (s->samplerate == 0) {
     
    117134      propSize, &clientFormat);
    118135  if (err) {
    119       AUBIO_ERROR("error in ExtAudioFileSetProperty, %d\n", (int)err);
     136    char_t errorstr[20];
     137    AUBIO_ERROR("source_apple_audio: Failed opening %s, "
     138        "error in ExtAudioFileSetProperty (%s)\n", s->path,
     139        getPrintableOSStatusError(errorstr, err));
    120140#if 1
    121141  // print client and format descriptions
     
    158178  UInt32 c, v, loadedPackets = s->block_size;
    159179  OSStatus err = ExtAudioFileRead(s->audioFile, &loadedPackets, &s->bufferList);
    160   if (err) { AUBIO_ERROR("error in ExtAudioFileRead %s %d\n", s->path, (int)err); goto beach;}
     180  if (err) {
     181    char_t errorstr[20];
     182    AUBIO_ERROR("source_apple_audio: error while reading %s "
     183        "with ExtAudioFileRead (%s)\n", s->path,
     184        getPrintableOSStatusError(errorstr, err));
     185    goto beach;
     186  }
    161187
    162188  short *data = (short*)s->bufferList.mBuffers[0].mData;
     
    188214  UInt32 c, v, loadedPackets = s->block_size;
    189215  OSStatus err = ExtAudioFileRead(s->audioFile, &loadedPackets, &s->bufferList);
    190   if (err) { AUBIO_ERROR("source_apple_audio: error in ExtAudioFileRead, %d\n", (int)err); goto beach;}
     216  if (err) {
     217    char_t errorstr[20];
     218    AUBIO_ERROR("source_apple_audio: error while reading %s "
     219        "with ExtAudioFileRead (%s)\n", s->path,
     220        getPrintableOSStatusError(errorstr, err));
     221    goto beach;
     222  }
    191223
    192224  short *data = (short*)s->bufferList.mBuffers[0].mData;
     
    226258{
    227259  OSStatus err = noErr;
    228   if (!s || !s->audioFile) { return 1; }
     260  if (!s || !s->audioFile) { return AUBIO_FAIL; }
    229261  err = ExtAudioFileDispose(s->audioFile);
    230   if (err) AUBIO_ERROR("error in ExtAudioFileDispose, %d\n", (int)err);
    231262  s->audioFile = NULL;
    232   return err;
     263  if (err) {
     264    char_t errorstr[20];
     265    AUBIO_ERROR("source_apple_audio: error while closing %s "
     266        "in ExtAudioFileDispose (%s)\n", s->path,
     267        getPrintableOSStatusError(errorstr, err));
     268    return err;
     269  }
     270  return AUBIO_OK;
    233271}
    234272
     
    248286  SInt64 resampled_pos = (SInt64)ROUND( pos * ratio );
    249287  OSStatus err = ExtAudioFileSeek(s->audioFile, resampled_pos);
    250   if (err) AUBIO_ERROR("source_apple_audio: error in ExtAudioFileSeek (%d)\n", (int)err);
     288  if (err) {
     289    char_t errorstr[20];
     290    AUBIO_ERROR("source_apple_audio: error while seeking %s at %d "
     291        "in ExtAudioFileSeek (%s)\n", s->path, pos,
     292        getPrintableOSStatusError(errorstr, err));
     293  }
    251294  return err;
    252295}
  • src/io/utils_apple_audio.c

    r16dda03 r98a3887  
    1010void freeAudioBufferList(AudioBufferList *bufferList);
    1111CFURLRef getURLFromPath(const char * path);
     12char_t *getPrintableOSStatusError(char_t *str, OSStatus error);
    1213
    1314int createAubioBufferList(AudioBufferList * bufferList, int channels, int max_source_samples) {
     
    3940}
    4041
     42char_t *getPrintableOSStatusError(char_t *str, OSStatus error)
     43{
     44    // see if it appears to be a 4-char-code
     45    *(UInt32 *)(str + 1) = CFSwapInt32HostToBig(error);
     46    if (isprint(str[1]) && isprint(str[2]) && isprint(str[3]) && isprint(str[4])) {
     47        str[0] = str[5] = '\'';
     48        str[6] = '\0';
     49    } else
     50        // no, format it as an integer
     51        sprintf(str, "%d", (int)error);
     52    return str;
     53}
     54
    4155#endif /* __APPLE__ */
Note: See TracChangeset for help on using the changeset viewer.