10f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved.
20f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
30f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)// found in the LICENSE file.
40f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)
50f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)#ifndef MEDIA_AUDIO_SOUNDS_TEST_UTILS_H_
60f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)#define MEDIA_AUDIO_SOUNDS_TEST_UTILS_H_
70f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)
80f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)#include "base/basictypes.h"
90f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)#include "base/callback.h"
100f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)#include "base/compiler_specific.h"
110f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)#include "media/audio/sounds/audio_stream_handler.h"
120f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)
130f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)namespace base {
140f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)class MessageLoop;
150f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)}
160f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)
170f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)namespace media {
180f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)
195d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)const int kTestAudioKey = 1000;
205d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
210f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)const char kTestAudioData[] = "RIFF\x26\x00\x00\x00WAVEfmt \x10\x00\x00\x00"
220f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)    "\x01\x00\x02\x00\x80\xbb\x00\x00\x00\x77\x01\x00\x02\x00\x10\x00"
230f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)    "data\x04\x00\x00\x00\x01\x00\x01\x00";
240f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)
250f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)class TestObserver : public AudioStreamHandler::TestObserver {
260f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) public:
270f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)  TestObserver(const base::Closure& quit);
280f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)  virtual ~TestObserver();
290f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)
300f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)  // AudioStreamHandler::TestObserver implementation:
310f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)  virtual void OnPlay() OVERRIDE;
320f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)  virtual void OnStop(size_t cursor) OVERRIDE;
330f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)
340f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)  int num_play_requests() const { return num_play_requests_; }
350f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)  int num_stop_requests() const { return num_stop_requests_; }
360f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)  int cursor() const { return cursor_; }
370f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)
380f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) private:
390f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)  base::MessageLoop* loop_;
400f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)  base::Closure quit_;
410f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)
420f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)  int num_play_requests_;
430f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)  int num_stop_requests_;
440f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)  int cursor_;
450f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)
460f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)  DISALLOW_COPY_AND_ASSIGN(TestObserver);
470f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)};
480f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)
490f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)}  // namespace media
500f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)
510f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)#endif // MEDIA_AUDIO_SOUNDS_TEST_UTILS_H_
52