| Index: runtime/embedders/openglui/common/sample.h | 
| =================================================================== | 
| --- runtime/embedders/openglui/common/sample.h	(revision 0) | 
| +++ runtime/embedders/openglui/common/sample.h	(revision 0) | 
| @@ -0,0 +1,60 @@ | 
| +// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file | 
| +// for details. All rights reserved. Use of this source code is governed by a | 
| +// BSD-style license that can be found in the LICENSE file. | 
| + | 
| +#ifndef EMBEDDERS_OPENGLUI_COMMON_SAMPLE_H_ | 
| +#define EMBEDDERS_OPENGLUI_COMMON_SAMPLE_H_ | 
| + | 
| +#include "embedders/openglui/common/resource.h" | 
| + | 
| +class Sample { | 
| +  public: | 
| +    explicit Sample(const char* path) | 
| +        : resource_(path), | 
| +          buffer_(NULL), | 
| +          length_(0) { | 
| +    } | 
| + | 
| +    ~Sample() { | 
| +      Unload(); | 
| +    } | 
| + | 
| +    const char* path() { | 
| +      return resource_.path(); | 
| +    } | 
| + | 
| +    uint8_t* buffer() { | 
| +      return buffer_; | 
| +    } | 
| + | 
| +    off_t length() { | 
| +      return length_; | 
| +    } | 
| + | 
| +    int32_t Load() { | 
| +      int32_t rtn = -1; | 
| +      if (resource_.Open() == 0) { | 
| +        buffer_ = new uint8_t[length_ = resource_.length()]; | 
| +        rtn = resource_.Read(buffer_, length_); | 
| +        resource_.Close(); | 
| +      } | 
| +      return rtn; | 
| +    } | 
| + | 
| +    void Unload() { | 
| +      if (buffer_ != NULL) { | 
| +        delete[] buffer_; | 
| +        buffer_ = NULL; | 
| +      } | 
| +      length_ = 0; | 
| +    } | 
| + | 
| +  private: | 
| +    friend class SoundService; | 
| +    Resource resource_; | 
| +    uint8_t* buffer_; | 
| +    off_t length_; | 
| +}; | 
| + | 
| +#endif  // EMBEDDERS_OPENGLUI_COMMON_SAMPLE_H_ | 
| + | 
|  |