Choreonoid  1.5
AudioItem.h
Go to the documentation of this file.
1 
6 #ifndef CNOID_MEDIA_PLUGIN_AUDIO_ITEM_H
7 #define CNOID_MEDIA_PLUGIN_AUDIO_ITEM_H
8 
9 #include <cnoid/Item>
10 #include <boost/shared_ptr.hpp>
11 #include "exportdecl.h"
12 
13 namespace cnoid {
14 
15 class ExtensionManager;
16 
17 class CNOID_EXPORT AudioItem : public Item
18 {
19 public:
20  static void initialize(ExtensionManager* ext);
21 
22  AudioItem();
23  AudioItem(const AudioItem& org);
24 
25  int numChannels() {
26  return numChannels_;
27  }
28 
29  int numFrames() {
30  return samplingData_->size() / numChannels_;
31  }
32 
33  double timeLength() {
34  return numFrames() / samplingRate_;
35  }
36 
37  double samplingRate() {
38  return samplingRate_;
39  }
40 
41  void setOffsetTime(double offset);
42 
43  double offsetTime() {
44  return offsetTime_;
45  }
46 
47  int offsetFrame() {
48  return offsetTime_ * samplingRate_;
49  }
50 
51  const std::vector<float>& samplingData() {
52  return *samplingData_;
53  }
54 
55 protected:
56  ~AudioItem();
57 
58  virtual Item* doDuplicate() const;
59  virtual void doPutProperties(PutPropertyFunction& putProperty);
60  virtual bool store(Archive& archive);
61  virtual bool restore(const Archive& archive);
62 
63 private:
64 
65  boost::shared_ptr< std::vector<float> > samplingData_;
66  double offsetTime_;
67  int numChannels_;
68  double samplingRate_;
69  std::string title;
70  std::string copyright;
71  std::string artists;
72  std::string comment;
73  std::string date;
74 
75  void clear();
76  bool loadAudioFile(const std::string& filename, std::ostream& os, Item* parentItem);
77 };
78 
80 };
81 #endif
Definition: Archive.h:21
Definition: ExtensionManager.h:26
int numChannels()
Definition: AudioItem.h:25
const std::vector< float > & samplingData()
Definition: AudioItem.h:51
Definition: AudioItem.h:17
Definition: PutPropertyFunction.h:35
double offsetTime()
Definition: AudioItem.h:43
Definition: Referenced.h:128
ref_ptr< AudioItem > AudioItemPtr
Definition: AudioItem.h:79
Definition: Item.h:38
Defines the minimum processing for performing pasing file for STL.
Definition: AbstractSceneLoader.h:9
int offsetFrame()
Definition: AudioItem.h:47
double timeLength()
Definition: AudioItem.h:33
int numFrames()
Definition: AudioItem.h:29
double samplingRate()
Definition: AudioItem.h:37
#define CNOID_EXPORT
Definition: Util/exportdecl.h:37