Changeset 8e77b60e in mainline


Ignore:
Timestamp:
2013-08-19T16:36:54Z (11 years ago)
Author:
Jan Vesely <jano.vesely@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
ff03f79
Parents:
f7b36bc
Message:

hound: Release buffers on terminated events.

Don't forget to unregister callback.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/audio/hound/audio_device.c

    rf7b36bc r8e77b60e  
    197197                        return ret;
    198198                }
    199                 dev->sink.format = AUDIO_FORMAT_ANY;
    200                 ret = release_buffer(dev);
    201                 if (ret != EOK) {
    202                         log_error("Failed to release buffer: %s",
    203                             str_error(ret));
    204                         return ret;
    205                 }
    206199        }
    207200        return EOK;
     
    252245                        return ret;
    253246                }
    254                 source->format = AUDIO_FORMAT_ANY;
    255                 ret = release_buffer(dev);
    256                 if (ret != EOK) {
    257                         log_error("Failed to release buffer: %s",
    258                             str_error(ret));
    259                         return ret;
    260                 }
    261                 audio_pcm_unregister_event_callback(dev->sess);
    262247        }
    263248
     
    296281                        break;
    297282                }
    298                 case PCM_EVENT_PLAYBACK_TERMINATED:
    299                         log_verbose("Playback terminated!");
     283                case PCM_EVENT_CAPTURE_TERMINATED: {
     284                        log_verbose("Capture terminated");
     285                        dev->source.format = AUDIO_FORMAT_ANY;
     286                        const int ret = release_buffer(dev);
     287                        if (ret != EOK) {
     288                                log_error("Failed to release buffer: %s",
     289                                    str_error(ret));
     290                        }
     291                        audio_pcm_unregister_event_callback(dev->sess);
    300292                        break;
     293                }
     294                case PCM_EVENT_PLAYBACK_TERMINATED: {
     295                        log_verbose("Playback Terminated");
     296                        dev->sink.format = AUDIO_FORMAT_ANY;
     297                        const int ret = release_buffer(dev);
     298                        if (ret != EOK) {
     299                                log_error("Failed to release buffer: %s",
     300                                    str_error(ret));
     301                        }
     302                        audio_pcm_unregister_event_callback(dev->sess);
     303                        break;
     304                }
    301305                case PCM_EVENT_FRAMES_CAPTURED: {
    302306                        const int ret = audio_source_push_data(&dev->source,
     
    307311                        break;
    308312                }
    309                 case PCM_EVENT_CAPTURE_TERMINATED:
    310                         log_verbose("Recording terminated!");
    311                         break;
    312313                case 0:
    313                         log_info("Device event call back hangup");
     314                        log_info("Device event callback hangup");
    314315                        return;
    315316                }
Note: See TracChangeset for help on using the changeset viewer.