111 lines
1.6 KiB
Plaintext
111 lines
1.6 KiB
Plaintext
//
|
|
// SourceCIO.m
|
|
// MonkeysAudio
|
|
//
|
|
// Created by Zaphod Beeblebrox on 3/4/07.
|
|
// Copyright 2007 __MyCompanyName__. All rights reserved.
|
|
//
|
|
|
|
#import "SourceIO.h"
|
|
|
|
#import <wchar.h>
|
|
#include <MAC/NoWindows.h>
|
|
|
|
SourceIO::SourceIO(id<CogSource> s)
|
|
{
|
|
source = [s retain];
|
|
}
|
|
|
|
SourceIO::~SourceIO()
|
|
{
|
|
[source release];
|
|
}
|
|
|
|
int SourceIO::Open(const wchar_t * pName)
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
int SourceIO::Close()
|
|
{
|
|
[source close];
|
|
|
|
return 0;
|
|
}
|
|
|
|
// read / write
|
|
int SourceIO::Read(void * pBuffer, unsigned int nBytesToRead, unsigned int * pBytesRead)
|
|
{
|
|
int l = [source read:pBuffer amount:nBytesToRead];
|
|
|
|
if (l < 0) {
|
|
*pBytesRead = 0;
|
|
NSLog(@"Error!");
|
|
return -1;
|
|
}
|
|
*pBytesRead = l;
|
|
|
|
return 0;
|
|
}
|
|
int SourceIO::Write(const void * pBuffer, unsigned int nBytesToWrite, unsigned int * pBytesWritten)
|
|
{
|
|
*pBytesWritten = 0;
|
|
|
|
return -1;
|
|
}
|
|
|
|
// seek
|
|
int SourceIO::Seek(int nDistance, unsigned int nMoveMode)
|
|
{
|
|
return ([source seekable] && [source seek:nDistance whence:nMoveMode] ? 0 : -1);
|
|
}
|
|
|
|
// creation / destruction
|
|
int SourceIO::Create(const wchar_t * pName)
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
int SourceIO::Delete()
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
// other functions
|
|
int SourceIO::SetEOF()
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
// attributes
|
|
int SourceIO::GetPosition()
|
|
{
|
|
return [source tell];
|
|
}
|
|
|
|
int SourceIO::GetSize()
|
|
{
|
|
if ([source seekable]) {
|
|
long currentPos = [source tell];
|
|
|
|
[source seek:0 whence:SEEK_END];
|
|
long size = [source tell];
|
|
|
|
[source seek:currentPos whence:SEEK_SET];
|
|
|
|
return size;
|
|
}
|
|
else
|
|
{
|
|
return -1;
|
|
}
|
|
}
|
|
|
|
int SourceIO::GetName(wchar_t * pBuffer)
|
|
{
|
|
wcscpy(pBuffer,(const wchar_t*)[[[[source url] path] substringWithRange:NSMakeRange(0, MAX_PATH)] UTF8String]);
|
|
|
|
return 0;
|
|
}
|
|
|