1/* 2 * Copyright 2009, Haiku, Inc. All rights reserved. 3 * Distributed under the terms of the MIT License. 4 */ 5#ifndef _MEDIA_FILES_H 6#define _MEDIA_FILES_H 7 8 9#include <MediaDefs.h> 10#include <List.h> 11#include <String.h> 12 13struct entry_ref; 14 15 16class BMediaFiles { 17public: 18 19 BMediaFiles(); 20 virtual ~BMediaFiles(); 21 22 virtual status_t RewindTypes(); 23 virtual status_t GetNextType(BString* _type); 24 25 virtual status_t RewindRefs(const char* type); 26 virtual status_t GetNextRef(BString* _type, 27 entry_ref* _ref = NULL); 28 29 virtual status_t GetRefFor(const char* type, const char* item, 30 entry_ref* _ref); 31 virtual status_t SetRefFor(const char* type, const char* item, 32 const entry_ref& ref); 33 34 status_t GetAudioGainFor(const char* type, 35 const char* item, float* _gain); 36 status_t SetAudioGainFor(const char* type, 37 const char* item, float gain); 38 39 // TODO: Rename this to "ClearRefFor" when breaking BC. 40 virtual status_t RemoveRefFor(const char* type, 41 const char* item, const entry_ref& ref); 42 43 virtual status_t RemoveItem(const char* type, const char* item); 44 45 static const char B_SOUNDS[]; 46 47 // TODO: Needs Perform() for FBC reasons! 48 49private: 50 // FBC padding 51 52 status_t _Reserved_MediaFiles_0(void*, ...); 53 virtual status_t _Reserved_MediaFiles_1(void*, ...); 54 virtual status_t _Reserved_MediaFiles_2(void*, ...); 55 virtual status_t _Reserved_MediaFiles_3(void*, ...); 56 virtual status_t _Reserved_MediaFiles_4(void*, ...); 57 virtual status_t _Reserved_MediaFiles_5(void*, ...); 58 virtual status_t _Reserved_MediaFiles_6(void*, ...); 59 virtual status_t _Reserved_MediaFiles_7(void*, ...); 60 61 void _ClearTypes(); 62 void _ClearItems(); 63 64private: 65 BList fTypes; 66 int fTypeIndex; 67 BString fCurrentType; 68 BList fItems; 69 int fItemIndex; 70}; 71 72#endif // _MEDIA_FILES_H 73 74