1ff761fba8274d93bd73e76c8b8a1f2d0776dd840Henrik Kjellander/*
2ff761fba8274d93bd73e76c8b8a1f2d0776dd840Henrik Kjellander *  Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
3ff761fba8274d93bd73e76c8b8a1f2d0776dd840Henrik Kjellander *
4ff761fba8274d93bd73e76c8b8a1f2d0776dd840Henrik Kjellander *  Use of this source code is governed by a BSD-style license
5ff761fba8274d93bd73e76c8b8a1f2d0776dd840Henrik Kjellander *  that can be found in the LICENSE file in the root of the source
6ff761fba8274d93bd73e76c8b8a1f2d0776dd840Henrik Kjellander *  tree. An additional intellectual property rights grant can be found
7ff761fba8274d93bd73e76c8b8a1f2d0776dd840Henrik Kjellander *  in the file PATENTS.  All contributing project authors may
8ff761fba8274d93bd73e76c8b8a1f2d0776dd840Henrik Kjellander *  be found in the AUTHORS file in the root of the source tree.
9ff761fba8274d93bd73e76c8b8a1f2d0776dd840Henrik Kjellander */
10ff761fba8274d93bd73e76c8b8a1f2d0776dd840Henrik Kjellander
110b9e29c87da2d9c1a3792d2c87197b0688b68e4eHenrik Kjellander#ifndef WEBRTC_MODULES_MEDIA_FILE_MEDIA_FILE_DEFINES_H_
120b9e29c87da2d9c1a3792d2c87197b0688b68e4eHenrik Kjellander#define WEBRTC_MODULES_MEDIA_FILE_MEDIA_FILE_DEFINES_H_
13ff761fba8274d93bd73e76c8b8a1f2d0776dd840Henrik Kjellander
14ff761fba8274d93bd73e76c8b8a1f2d0776dd840Henrik Kjellander#include "webrtc/engine_configurations.h"
15ff761fba8274d93bd73e76c8b8a1f2d0776dd840Henrik Kjellander#include "webrtc/modules/include/module_common_types.h"
16ff761fba8274d93bd73e76c8b8a1f2d0776dd840Henrik Kjellander#include "webrtc/typedefs.h"
17ff761fba8274d93bd73e76c8b8a1f2d0776dd840Henrik Kjellander
18ff761fba8274d93bd73e76c8b8a1f2d0776dd840Henrik Kjellandernamespace webrtc {
19ff761fba8274d93bd73e76c8b8a1f2d0776dd840Henrik Kjellander// Callback class for the MediaFile class.
20ff761fba8274d93bd73e76c8b8a1f2d0776dd840Henrik Kjellanderclass FileCallback
21ff761fba8274d93bd73e76c8b8a1f2d0776dd840Henrik Kjellander{
22ff761fba8274d93bd73e76c8b8a1f2d0776dd840Henrik Kjellanderpublic:
23ff761fba8274d93bd73e76c8b8a1f2d0776dd840Henrik Kjellander    virtual ~FileCallback(){}
24ff761fba8274d93bd73e76c8b8a1f2d0776dd840Henrik Kjellander
25ff761fba8274d93bd73e76c8b8a1f2d0776dd840Henrik Kjellander    // This function is called by MediaFile when a file has been playing for
26ff761fba8274d93bd73e76c8b8a1f2d0776dd840Henrik Kjellander    // durationMs ms. id is the identifier for the MediaFile instance calling
27ff761fba8274d93bd73e76c8b8a1f2d0776dd840Henrik Kjellander    // the callback.
28ff761fba8274d93bd73e76c8b8a1f2d0776dd840Henrik Kjellander    virtual void PlayNotification(const int32_t id,
29ff761fba8274d93bd73e76c8b8a1f2d0776dd840Henrik Kjellander                                  const uint32_t durationMs) = 0;
30ff761fba8274d93bd73e76c8b8a1f2d0776dd840Henrik Kjellander
31ff761fba8274d93bd73e76c8b8a1f2d0776dd840Henrik Kjellander    // This function is called by MediaFile when a file has been recording for
32ff761fba8274d93bd73e76c8b8a1f2d0776dd840Henrik Kjellander    // durationMs ms. id is the identifier for the MediaFile instance calling
33ff761fba8274d93bd73e76c8b8a1f2d0776dd840Henrik Kjellander    // the callback.
34ff761fba8274d93bd73e76c8b8a1f2d0776dd840Henrik Kjellander    virtual void RecordNotification(const int32_t id,
35ff761fba8274d93bd73e76c8b8a1f2d0776dd840Henrik Kjellander                                    const uint32_t durationMs) = 0;
36ff761fba8274d93bd73e76c8b8a1f2d0776dd840Henrik Kjellander
37ff761fba8274d93bd73e76c8b8a1f2d0776dd840Henrik Kjellander    // This function is called by MediaFile when a file has been stopped
38ff761fba8274d93bd73e76c8b8a1f2d0776dd840Henrik Kjellander    // playing. id is the identifier for the MediaFile instance calling the
39ff761fba8274d93bd73e76c8b8a1f2d0776dd840Henrik Kjellander    // callback.
40ff761fba8274d93bd73e76c8b8a1f2d0776dd840Henrik Kjellander    virtual void PlayFileEnded(const int32_t id) = 0;
41ff761fba8274d93bd73e76c8b8a1f2d0776dd840Henrik Kjellander
42ff761fba8274d93bd73e76c8b8a1f2d0776dd840Henrik Kjellander    // This function is called by MediaFile when a file has been stopped
43ff761fba8274d93bd73e76c8b8a1f2d0776dd840Henrik Kjellander    // recording. id is the identifier for the MediaFile instance calling the
44ff761fba8274d93bd73e76c8b8a1f2d0776dd840Henrik Kjellander    // callback.
45ff761fba8274d93bd73e76c8b8a1f2d0776dd840Henrik Kjellander    virtual void RecordFileEnded(const int32_t id) = 0;
46ff761fba8274d93bd73e76c8b8a1f2d0776dd840Henrik Kjellander
47ff761fba8274d93bd73e76c8b8a1f2d0776dd840Henrik Kjellanderprotected:
48ff761fba8274d93bd73e76c8b8a1f2d0776dd840Henrik Kjellander    FileCallback() {}
49ff761fba8274d93bd73e76c8b8a1f2d0776dd840Henrik Kjellander};
50ff761fba8274d93bd73e76c8b8a1f2d0776dd840Henrik Kjellander}  // namespace webrtc
510b9e29c87da2d9c1a3792d2c87197b0688b68e4eHenrik Kjellander#endif // WEBRTC_MODULES_MEDIA_FILE_MEDIA_FILE_DEFINES_H_
52