165942Sgibbs/*
265942Sgibbs * Copyright 2008-2009, Haiku, Inc. All Rights Reserved.
365942Sgibbs * Distributed under the terms of the MIT License.
465942Sgibbs *
565942Sgibbs * Authors:
671717Sgibbs *              Bruno Albuquerque, bga@bug-br.org.br
765942Sgibbs */
865942Sgibbs
965942Sgibbs#ifndef _CDDB_DAEMON_H
1065942Sgibbs#define _CDDB_DAEMON_H
1165942Sgibbs
1265942Sgibbs#include <Application.h>
1365942Sgibbs
1465942Sgibbs#include <scsi_cmds.h>
1565942Sgibbs
1665942Sgibbsstruct ReadResponseData;
1765942Sgibbsstruct QueryResponseData;
1865942Sgibbs
1965942Sgibbsclass BList;
2065942Sgibbsclass BMessage;
2165942Sgibbsclass BVolumeRoster;
2265942Sgibbs
2365942Sgibbsclass CDDBDaemon : public BApplication {
2465942Sgibbspublic:
2565942Sgibbs						CDDBDaemon();
2665942Sgibbs	virtual				~CDDBDaemon();
2765942Sgibbs
2865942Sgibbs	virtual void		MessageReceived(BMessage* message);
2965942Sgibbs
3065942Sgibbsprivate:
3165942Sgibbs	status_t			_Lookup(const dev_t device);
3265942Sgibbs	bool				_CanLookup(const dev_t device, uint32* cddbId,
3371390Sgibbs							scsi_toc_toc* toc) const;
3465942Sgibbs	QueryResponseData*	_SelectResult(BList* response) const;
3565942Sgibbs	status_t			_WriteCDData(dev_t device, QueryResponseData* diskData,
3665942Sgibbs							ReadResponseData* readResponse);
3765942Sgibbs
3865942Sgibbs	BVolumeRoster*		fVolumeRoster;
3965942Sgibbs};
4065942Sgibbs
4165942Sgibbs#endif  // _CDDB_DAEMON_H
4265942Sgibbs