-----------------------------------------------
--0.?.? (to be announced) "volatile relativity"
-----------------------------------------------
++----------------------------------------------
++0.4.12 (to be announced) "volatile relativity"
++----------------------------------------------
++The new command line player, ALSA support for para_fade, and the
++improved build system are the highlights of this release, which
++probably marks the end of the 0.4.x series.
++ - The afh receiver and the para_play executable
- The "versions" directory has been removed from the master
branch. The tarballs of the old releases are now available
in the new "releases" branch.
if (ret == 0)
return;
if (ret < 0)
- goto remove_btrn;
+ goto fail;
ret = core_audio_init(wn);
if (ret < 0)
- goto remove_btrn;
+ goto fail;
powd = wn->private_data;
- AudioOutputUnitStart(powd->audio_unit);
+ ret = -E_UNIT_START;
+ if (AudioOutputUnitStart(powd->audio_unit) != noErr) {
+ AudioUnitUninitialize(powd->audio_unit);
+ CloseComponent(powd->audio_unit);
+ btr_remove_node(&powd->callback_btrn);
+ goto remove_btrn;
+ }
}
mutex_lock(powd->mutex);
- btr_pushdown(btrn);
- ret = btr_node_status(btrn, wn->min_iqs, BTR_NT_LEAF);
+ ret = btr_node_status(btrn, wn->min_iqs, BTR_NT_INTERNAL);
+ if (ret > 0)
+ btr_pushdown(btrn);
if (ret < 0 && need_drain_delay(powd))
ret = 0;
- if (ret >= 0) {
- mutex_unlock(powd->mutex);
+ mutex_unlock(powd->mutex);
+ if (ret >= 0)
return;
+ fail:
+ assert(ret < 0);
+ if (powd && powd->callback_btrn) {
+ AudioOutputUnitStop(powd->audio_unit);
+ AudioUnitUninitialize(powd->audio_unit);
+ CloseComponent(powd->audio_unit);
+ btr_remove_node(&powd->callback_btrn);
}
- AudioOutputUnitStop(powd->audio_unit);
- AudioUnitUninitialize(powd->audio_unit);
- CloseComponent(powd->audio_unit);
- btr_remove_node(&powd->callback_btrn);
- mutex_unlock(powd->mutex);
- remove_btrn:
btr_remove_node(&wn->btrn);
PARA_NOTICE_LOG("%s\n", para_strerror(-ret));
t->error = ret;