ifpmediadevice.h
来自「Amarok是一款在LINUX或其他类UNIX操作系统中运行的音频播放器软件。 」· C头文件 代码 · 共 111 行
H
111 行
/*************************************************************************** * copyright : (C) 2005-2006 Seb Ruiz <me@sebruiz.net> * * * * With some code helpers from KIO_IFP * * (c) 2004 Thomas Loeber <ifp@loeber1.de> * ***************************************************************************//*************************************************************************** * * * 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. * * * ***************************************************************************/#ifndef AMAROK_IFPMEDIADEVICE_H#define AMAROK_IFPMEDIADEVICE_Hextern "C" { #include <ifp.h> #include <usb.h>}#include "mediabrowser.h"#include <kurl.h>#include <qptrlist.h>class IfpMediaItem;class TransferDialog;class IfpMediaDevice : public MediaDevice{ Q_OBJECT public: IfpMediaDevice(); void init( MediaBrowser* parent ); virtual ~IfpMediaDevice(); bool isConnected() { return m_connected; } void rmbPressed( QListViewItem* qitem, const QPoint& point, int ); bool hasTransferDialog() { return true; } void runTransferDialog(); TransferDialog *getTransferDialog() { return m_td; } protected: bool openDevice( bool silent=false ); bool closeDevice(); bool lockDevice( bool ) { return true; } void unlockDevice() {} void synchronizeDevice() {} MediaItem *copyTrackToDevice( const MetaBundle& bundle); int deleteItemFromDevice( MediaItem *item, int flags=DeleteTrack ); bool getCapacity( KIO::filesize_t *total, KIO::filesize_t *available ); MediaItem *newDirectory( const QString &name, MediaItem *parent ); void addToDirectory( MediaItem *directory, QPtrList<MediaItem> items ); protected slots: void renameItem( QListViewItem *item ); void expandItem( QListViewItem *item ); private: enum Error { ERR_ACCESS_DENIED, ERR_CANNOT_RENAME, ERR_DISK_FULL, ERR_COULD_NOT_WRITE }; // Too expensive to implement on a non-database device MediaItem *trackExists( const MetaBundle& ) { return 0; } bool checkResult( int result, QString message ); // file transfer MediaItem *newDirectoryRecursive( const QString &name, MediaItem *parent ); int uploadTrack( const QCString& src, const QCString& dest ); void downloadSelectedItems(); int downloadTrack( const QCString& src, const QCString& dest ); // listDir void listDir( const QString &dir ); static int listDirCallback( void *pData, int type, const char *name, int size ); int addTrackToList( int type, QString name, int size=0 ); // miscellaneous methods static int filetransferCallback( void *pData, struct ifp_transfer_status *progress ); int setProgressInfo( struct ifp_transfer_status *progress ); // Will iterate over parents and add directory name to the item. // getFilename = false will return only parent structure, as opposed to returning the filename as well QString getFullPath( const QListViewItem *item, const bool getFilename = true ); QString cleanPath( const QString &component ); MediaItem *findChildItem( const QString &name, MediaItem *parent ); // IFP device struct usb_device *m_dev; usb_dev_handle *m_dh; struct ifp_device m_ifpdev; bool m_connected; IfpMediaItem *m_last; //used to specify new IfpMediaItem parent. Make sure it is restored to 0 (m_listview) QListViewItem *m_tmpParent; TransferDialog *m_td;};#endif /*AMAROK_IFPMEDIADEVICE_H*/
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?