📄 portabledevice.h
字号:
/*____________________________________________________________________________
FreeAmp - The Free MP3 Player
Portions Copyright (C) 1999 EMusic.com
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
$Id: portabledevice.h,v 1.4 2000/06/21 13:34:36 ijr Exp $
____________________________________________________________________________*/
#ifndef INCLUDED_PORTABLE_DEVICE_H_
#define INCLUDED_PORTABLE_DEVICE_H_
#include <string>
#include <vector>
using namespace std;
#include <assert.h>
#include "config.h"
#include "errors.h"
#include "facontext.h"
#include "plmevent.h"
typedef enum {
kConnection_Unknown,
kConnection_Parallel,
kConnection_USB
} ConnectionType;
class PortableDevice;
typedef PortableDevice* DeviceRef;
class PlaylistItem;
class DeviceInfo {
public:
DeviceInfo():m_ref(NULL),m_type(kConnection_Unknown),
m_bytesTotal(0),m_bytesUsed(0),m_port(0),
m_numEntries(0) {}
virtual ~DeviceInfo() {}
Error SetManufacturer(const char* manufacturer)
{m_manufacturer = manufacturer; return kError_NoErr; }
const char* GetManufacturer() const { return m_manufacturer.c_str(); }
Error SetDevice(const char* device)
{ m_device = device; return kError_NoErr; }
const char* GetDevice() { return m_device.c_str(); }
Error SetPluginName(const char* name)
{ m_pluginName = name; return kError_NoErr; }
const char* GetPluginName() { return m_pluginName.c_str(); }
Error SetCapacity(uint32 bytesTotal, uint32 bytesUsed)
{ m_bytesTotal = bytesTotal; m_bytesUsed = bytesUsed; return kError_NoErr; }
void GetCapacity(uint32* bytesTotal, uint32* bytesUsed)
{ if(bytesTotal) *bytesTotal = m_bytesTotal; if(bytesTotal) *bytesUsed = m_bytesUsed; }
Error SetNumEntries(uint32 count) { m_numEntries = count; return kError_NoErr; }
uint32 GetNumEntries() const { return m_numEntries; }
Error SetConnectionType(ConnectionType type) { m_type = type; return kError_NoErr; }
ConnectionType GetConnectionType() const { return m_type; }
Error SetPortAddress(uint32 port) { m_port = port; return kError_NoErr; }
uint32 GetPortAddress() const { return m_port; }
Error SetRef(DeviceRef ref) { m_ref = ref; return kError_NoErr; }
DeviceRef GetRef() { return m_ref; }
private:
string m_manufacturer;
string m_device;
DeviceRef m_ref;
ConnectionType m_type;
uint32 m_bytesTotal;
uint32 m_bytesUsed;
uint32 m_port;
uint32 m_numEntries;
string m_pluginName;
};
class PortableDevice {
public:
PortableDevice(FAContext *context) { m_context = context; }
virtual ~PortableDevice() {}
virtual Error GetSupportedDevices(DeviceInfo* device, uint32 index) = 0;
virtual bool IsDeviceAvailable(DeviceInfo* device) = 0;
virtual Error GetDeviceInfo(DeviceInfo* device) = 0;
virtual Error InitializeDevice(DeviceInfo* device,
PLMCallBackFunction function = NULL,
void* cookie = NULL) = 0;
virtual Error ReadPlaylist(DeviceInfo* device,
vector<PlaylistItem*>* items,
PLMCallBackFunction function = NULL,
void* cookie = NULL) = 0;
virtual Error WritePlaylist(DeviceInfo* device,
vector<PlaylistItem*>* items,
PLMCallBackFunction function = NULL,
void* cookie = NULL) = 0;
virtual Error DownloadSong(DeviceInfo* device,
PlaylistItem* item,
const char* url,
PLMCallBackFunction function = NULL,
void* cookie = NULL) = 0;
protected:
FAContext *m_context;
};
#endif // _PORTABLE_DEVICE_H_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -