2 * Copyright 2008-2016, Haiku, Inc. All Rights Reserved.
3 * Distributed under the terms of the MIT License.
6 * Bruno Albuquerque, bga@bug-br.org.br
12 #include <NetAddress.h>
13 #include <NetEndpoint.h>
14 #include <ObjectList.h>
17 #include <scsi_cmds.h>
20 // CD track specific data.
28 // Query command response.
29 struct QueryResponseData
{
37 // Read command response.
38 struct ReadResponseData
{
43 BObjectList
<TrackData
> tracks
;
53 typedef BObjectList
<QueryResponseData
> QueryResponseList
;
58 CDDBServer(const BString
& cddbServer
);
60 // CDDB commands interface.
61 status_t
Query(uint32 cddbID
, const scsi_toc_toc
* toc
,
62 QueryResponseList
& queryResponses
);
63 status_t
Read(const QueryResponseData
& diskData
,
64 ReadResponseData
& readResponse
,
65 bool verbose
= false);
66 status_t
Read(const BString
& category
,
67 const BString
& cddbID
,
68 const BString
& artist
,
69 ReadResponseData
& readResponse
,
70 bool verbose
= false);
73 status_t
_ParseAddress(const BString
& cddbServer
);
75 status_t
_OpenConnection();
76 void _CloseConnection();
78 status_t
_SendCommand(const BString
& command
,
80 TrackData
* _Track(ReadResponseData
& response
,
84 BString fLocalHostName
;
85 BString fLocalUserName
;
86 BNetAddress fServerAddress
;
87 BNetEndpoint fConnection
;
93 #endif // _CDDB_SERVER_H