|
From: Martin R. <ru...@us...> - 2007-09-30 12:26:46
|
Update of /cvsroot/foo/foo/libfoo/src
In directory sc8-pr-cvs17:/tmp/cvs-serv14088/src
Modified Files:
FOORegion.m FOOSoundStream.m FOOSubstrate.m
Log Message:
partially unified substrates: allow (snd-extract) on snd-regions
Index: FOOSubstrate.m
===================================================================
RCS file: /cvsroot/foo/foo/libfoo/src/FOOSubstrate.m,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** FOOSubstrate.m 28 Feb 2005 16:37:22 -0000 1.6
--- FOOSubstrate.m 30 Sep 2007 12:26:44 -0000 1.7
***************
*** 102,105 ****
--- 102,126 ----
+ /* we need a protocol here for FOOSoundFile, -Stream and -Region
+ instead of this method */
+ - (BOOL) getSamples: (sample_t *)buffer
+ offset: (long)fromFrame
+ size: (long)frames
+ channel: (int)channel
+ {
+ // [self subclassResponsibility: _cmd];
+
+ FOO_ERROR(YES, NO);
+ }
+
+
+ - (int) getChannelCount
+ {
+ // [self subclassResponsibility: _cmd];
+
+ FOO_ERROR(YES, NO);
+ }
+
+
/*
* archiving methods
Index: FOORegion.m
===================================================================
RCS file: /cvsroot/foo/foo/libfoo/src/FOORegion.m,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** FOORegion.m 20 Jun 2005 08:57:14 -0000 1.6
--- FOORegion.m 30 Sep 2007 12:26:44 -0000 1.7
***************
*** 80,83 ****
--- 80,84 ----
offset: (long)off
size: (long)size
+ channel: (int)channel
{
sample_t tmp, *e, *b;
***************
*** 89,93 ****
[_substrate getSamples: buffer
offset: n
! size: size];
n = size / 2;
b = buffer;
--- 90,95 ----
[_substrate getSamples: buffer
offset: n
! size: size
! channel: channel];
n = size / 2;
b = buffer;
***************
*** 105,111 ****
return [_substrate getSamples: buffer
offset: _offset + off
! size: size];
}
! }
--- 107,122 ----
return [_substrate getSamples: buffer
offset: _offset + off
! size: size
! channel: channel];
}
! } // getSamples:offset:size:channel:
!
!
! - (BOOL) getSamples: (sample_t *)buffer
! offset: (long)off
! size: (long)size
! {
! return [self getSamples: buffer offset: off size: size channel: -1];
! } // getSamples:offset:size:
***************
*** 122,125 ****
--- 133,141 ----
+ - (int) getChannelCount
+ {
+ return [_substrate getChannelCount];
+ }
+
/*
* archiving methods
Index: FOOSoundStream.m
===================================================================
RCS file: /cvsroot/foo/foo/libfoo/src/FOOSoundStream.m,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** FOOSoundStream.m 20 Jun 2005 08:57:14 -0000 1.6
--- FOOSoundStream.m 30 Sep 2007 12:26:44 -0000 1.7
***************
*** 38,41 ****
--- 38,42 ----
#include "FOO/FOOSoundStream.h"
#include "FOO/FOOSoundFile.h"
+ #include "FOO/FOORegion.h"
#import <Foundation/NSKeyedArchiver.h>
***************
*** 47,57 ****
channel: (int)channel
{
! if ([substrate isKindOfClass: [FOOSoundFile class]] == NO)
{
FOO_ERROR(YES, self);
}
! _soundFile = RETAIN((FOOSoundFile *)substrate); // RETAIN?
_channelNumber = channel - 1;
! if (_channelNumber < 0 || _channelNumber >= [_soundFile getChannelCount])
{
FOO_ERROR(YES, self);
--- 48,69 ----
channel: (int)channel
{
! // if ([substrate isKindOfClass: [FOOSoundFile class]] == NO)
! // {
! // FOO_ERROR(YES, self);
! // }
! // _soundFile = RETAIN((FOOSoundFile *)substrate); // RETAIN?
!
! // added for generalization to substrate
! if ([substrate isKindOfClass: [FOOSoundFile class]] == NO &&
! [substrate isKindOfClass: [FOOSoundStream class]] == NO &&
! [substrate isKindOfClass: [FOORegion class]] == NO)
{
FOO_ERROR(YES, self);
}
! _substrate = RETAIN(substrate); // RETAIN?
! //end added
_channelNumber = channel - 1;
! // if (_channelNumber < 0 || _channelNumber >= [_soundFile getChannelCount])
! if (_channelNumber < 0 || _channelNumber >= [_substrate getChannelCount])
{
FOO_ERROR(YES, self);
***************
*** 64,68 ****
- (void) dealloc
{
! RELEASE(_soundFile);
[super dealloc];
} // dealloc
--- 76,81 ----
- (void) dealloc
{
! // RELEASE(_soundFile);
! RELEASE(_substrate);
[super dealloc];
} // dealloc
***************
*** 70,80 ****
- (BOOL) getSamples: (sample_t *)b
! offset:(long)o
! size:(long)s
{
! return [_soundFile getSamples: b
offset: o
size: s
channel: _channelNumber];
}
--- 83,112 ----
- (BOOL) getSamples: (sample_t *)b
! offset: (long)o
! size: (long)s
! channel: (int)channel
{
! if (channel - 1 != _channelNumber)
! {
! FOO_ERROR(YES, self);
! }
! return [self getSamples: b
! offset: o
! size: s];
! }
!
!
! - (BOOL) getSamples: (sample_t *)b
! offset: (long)o
! size: (long)s
! {
! return [_substrate getSamples: b
offset: o
size: s
channel: _channelNumber];
+ // return [_soundFile getSamples: b
+ // offset: o
+ // size: s
+ // channel: _channelNumber];
}
***************
*** 82,86 ****
- (long) size
{
! return [_soundFile size];
}
--- 114,119 ----
- (long) size
{
! // return [_soundFile size];
! return [_substrate size];
}
***************
*** 88,92 ****
- (double) getSamplingRate
{
! return [_soundFile getSamplingRate];
}
--- 121,132 ----
- (double) getSamplingRate
{
! // return [_soundFile getSamplingRate];
! return [_substrate getSamplingRate];
! }
!
!
! - (int) getChannelCount
! {
! return 1; // FOOSoundStream is mono
}
***************
*** 102,111 ****
if ([coder allowsKeyedCoding])
{
! [coder encodeObject: _soundFile forKey: @"FOOSoundStream:soundFile"];
[coder encodeInt: _channelNumber forKey: @"FOOSoundStream:channelNumber"];
}
else
{
! [coder encodeObject: _soundFile];
[coder encodeValueOfObjCType: @encode(int) at: &_channelNumber];
}
--- 142,153 ----
if ([coder allowsKeyedCoding])
{
! // [coder encodeObject: _soundFile forKey: @"FOOSoundStream:soundFile"];
! [coder encodeObject: _substrate forKey: @"FOOSoundStream:soundFile"];
[coder encodeInt: _channelNumber forKey: @"FOOSoundStream:channelNumber"];
}
else
{
! // [coder encodeObject: _soundFile];
! [coder encodeObject: _substrate];
[coder encodeValueOfObjCType: @encode(int) at: &_channelNumber];
}
***************
*** 121,130 ****
if ([coder allowsKeyedCoding])
{
! _soundFile = RETAIN([coder decodeObjectForKey: @"FOOSoundStream:soundFile"]);
_channelNumber = [coder decodeIntForKey: @"FOOSoundStream:channelNumber"];
}
else
{
! _soundFile = RETAIN([coder decodeObject]);
[coder decodeValueOfObjCType: @encode(int) at: &_channelNumber];
}
--- 163,174 ----
if ([coder allowsKeyedCoding])
{
! // _soundFile = RETAIN([coder decodeObjectForKey: @"FOOSoundStream:soundFile"]);
! _substrate = RETAIN([coder decodeObjectForKey: @"FOOSoundStream:substrate"]);
_channelNumber = [coder decodeIntForKey: @"FOOSoundStream:channelNumber"];
}
else
{
! // _soundFile = RETAIN([coder decodeObject]);
! _substrate = RETAIN([coder decodeObject]);
[coder decodeValueOfObjCType: @encode(int) at: &_channelNumber];
}
|