xref: /haiku/src/apps/mediaplayer/support/FileReadWrite.h (revision 26e9cdb72cc4f788f60ca38dc3309e62b8c6247b)
1c397aae3SStephan Aßmus /*
2*26e9cdb7SStephan Aßmus  * Copyright 2008, Haiku. All rights reserved.
3c397aae3SStephan Aßmus  * Distributed under the terms of the MIT License.
4c397aae3SStephan Aßmus  *
5c397aae3SStephan Aßmus  * Authors:
6c397aae3SStephan Aßmus  *		Michael Pfeiffer 	<laplace@users.sourceforge.net>
7c397aae3SStephan Aßmus  *		Fredrik Modéen		<fredrik@modeen.se>
8c397aae3SStephan Aßmus  */
9*26e9cdb7SStephan Aßmus #ifndef FILE_READ_WRITE_H
10*26e9cdb7SStephan Aßmus #define FILE_READ_WRITE_H
11c397aae3SStephan Aßmus 
12c397aae3SStephan Aßmus #include <stdio.h>
13c397aae3SStephan Aßmus #include <File.h>
14c397aae3SStephan Aßmus #include <String.h>
15c397aae3SStephan Aßmus 
16*26e9cdb7SStephan Aßmus 
17c397aae3SStephan Aßmus class FileReadWrite {
18c397aae3SStephan Aßmus public:
19*26e9cdb7SStephan Aßmus 								FileReadWrite(BFile* file,
20*26e9cdb7SStephan Aßmus 									int32 sourceEncoding = -1);
21*26e9cdb7SStephan Aßmus 									// -1 means "default" encoding
22c397aae3SStephan Aßmus 			bool				Next(BString& string);
23c397aae3SStephan Aßmus 			status_t			Write(const BString& contents) const;
24c397aae3SStephan Aßmus 			void				SetEncoding(int32 sourceEncoding);
25*26e9cdb7SStephan Aßmus 			uint32				GetEncoding() const;
26c397aae3SStephan Aßmus 
27c397aae3SStephan Aßmus private:
28c397aae3SStephan Aßmus 			BFile*				fFile;
29c397aae3SStephan Aßmus 			int32				fSourceEncoding;
30c397aae3SStephan Aßmus 			char				fBuffer[4096];
31c397aae3SStephan Aßmus 			off_t				fPositionInBuffer;
32c397aae3SStephan Aßmus 			ssize_t				fAmtRead;
33c397aae3SStephan Aßmus };
34c397aae3SStephan Aßmus 
35*26e9cdb7SStephan Aßmus #endif //FILE_READ_WRITE_H
36