root/src/kits/media/TimeSourceObjectManager.h
/*
 * Copyright 2002 Marcus Overhagen. All Rights Reserved.
 * This file may be used under the terms of the MIT License.
 */
#ifndef TIME_SOURCE_OBJECT_MANAGER_H
#define TIME_SOURCE_OBJECT_MANAGER_H


#include <map>

#include <Locker.h>
#include <MediaDefs.h>


class BTimeSource;


namespace BPrivate {
namespace media {


class TimeSourceObjectManager : BLocker {
public:
                                                                TimeSourceObjectManager();
                                                                ~TimeSourceObjectManager();

                        BTimeSource*            GetTimeSource(const media_node& node);
                        void                            ObjectDeleted(BTimeSource* timeSource);

private:
                        typedef std::map<media_node_id, BTimeSource*> NodeMap;

                        NodeMap                         fMap;
};


extern TimeSourceObjectManager* gTimeSourceObjectManager;


}       // namespace media
}       // namespace BPrivate


using BPrivate::media::gTimeSourceObjectManager;


#endif  // _TIME_SOURCE_OBJECT_MANAGER_H_