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