Mercurial > hg > jvamp
comparison org/vamp_plugins/RealTime.java @ 49:2db3640905ef
Rewrite RealTime so as not to use a native object handle, removing onerous and unsatisfactory requirement to call dispose() on all RealTime objects or leak native heap
author | Chris Cannam |
---|---|
date | Wed, 02 Sep 2015 15:17:40 +0100 |
parents | c9515589be7d |
children |
comparison
equal
deleted
inserted
replaced
48:bac96f9d9295 | 49:2db3640905ef |
---|---|
32 authorization. | 32 authorization. |
33 */ | 33 */ |
34 | 34 |
35 package org.vamp_plugins; | 35 package org.vamp_plugins; |
36 | 36 |
37 /** | |
38 * RealTime class, corresponding to the C++ Vamp::RealTime. | |
39 * | |
40 * Although the implementation is in native code, this class does not | |
41 * store a native object handle and has no dispose() method -- it can | |
42 * be garbage collected without prior disposal like any plain Java | |
43 * object. | |
44 */ | |
37 public class RealTime | 45 public class RealTime |
38 { | 46 { |
39 public RealTime(int s, int n) { initialise(s, n); } | 47 public RealTime(int s, int n) { initialise(s, n); } |
40 | |
41 public native void dispose(); | |
42 | 48 |
43 public native int sec(); | 49 public native int sec(); |
44 public native int nsec(); | 50 public native int nsec(); |
45 | 51 |
46 public native int usec(); | 52 public native int usec(); |
57 | 63 |
58 public native static RealTime frame2RealTime(long frame, int sampleRate); | 64 public native static RealTime frame2RealTime(long frame, int sampleRate); |
59 public native static long realTime2Frame(RealTime r, int sampleRate); | 65 public native static long realTime2Frame(RealTime r, int sampleRate); |
60 | 66 |
61 private native void initialise(int s, int n); | 67 private native void initialise(int s, int n); |
62 private long nativeHandle; | 68 private int m_s; |
69 private int m_n; | |
63 } | 70 } |
64 | 71 |
65 | 72 |