home *** CD-ROM | disk | FTP | other *** search
- //----------------------------------------------------------------------------------------------------
- //
- // SoundSubInspector
- //
- // Inherits From: DefaultSubInspector
- //
- // Declared In: SoundSubInspector.h
- //
- // Disclaimer
- //
- // You may freely copy, distribute and reuse this software and its
- // associated documentation. I disclaim any warranty of any kind,
- // expressed or implied, as to its fitness for any particular use.
- //
- //----------------------------------------------------------------------------------------------------
- #import "SoundSubInspector.h"
- #import <appkit/appkit.h>
-
-
- @implementation SoundSubInspector
-
- static id _SELF = nil;
-
- //----------------------------------------------------------------------------------------------------
- // Initialization and Free Methods
- //----------------------------------------------------------------------------------------------------
- + new
- {
- // Only allow one instance...
-
- if (_SELF) return _SELF;
- _SELF = self = [super new];
- sound = [[Sound alloc] init];
- return _SELF;
- }
-
-
- - free
- {
- if (sound) [sound free];
- return [super free];
- }
-
-
- //----------------------------------------------------------------------------------------------------
- // Inspection Methods
- //----------------------------------------------------------------------------------------------------
- - inspect: (STR) path
- {
- // Read the soundfile and display information...
-
- int readStatus;
-
- if (! path) return self;
-
- readStatus = [sound readSoundfile: path];
- if (readStatus != SND_ERR_NONE)
- {
- [sound deleteSamples];
- return [self inspectionError: path];
- }
-
- [size setIntValue: [sound dataSize]];
- [samples setIntValue: [sound sampleCount]];
- [seconds setFloatValue: [sound duration]];
- [format setIntValue: [sound dataFormat]];
- [rate setDoubleValue: [sound samplingRate]];
- [channels setIntValue: [sound channelCount]];
- [info setStringValue: [sound info]];
-
- return self;
- }
-
-
- //----------------------------------------------------------------------------------------------------
- // Action Methods
- //----------------------------------------------------------------------------------------------------
- - play: sender
- {
- [sound play];
- return self;
- }
-
-
- //----------------------------------------------------------------------------------------------------
- // Accessing Inspection View
- //----------------------------------------------------------------------------------------------------
- - clearInspectorView
- {
- // Clear view before...
-
- [size setStringValue: ""];
- [samples setStringValue: ""];
- [seconds setStringValue: ""];
- [format setStringValue: ""];
- [rate setStringValue: ""];
- [channels setStringValue: ""];
- [info setStringValue: ""];
-
- return self;
- }
-
-
- @end