thinkvd dvd and video converter

thinkvd dvd and video converter

计划统一播放接口(thinkvd开发日志)

  技术解决方案swf2video, ppt2video基本完成,但要与原来的视频播放接口保持一至,这样就不用处理大量的类似的逻辑问题,具体的有差异逻辑处理再作针对性处理,目前还在构想中。
  以前工作中由于不同产品属于不同的开发小组,它们之间没有实现真正的技术上的代码共享,而是各自根据自己的情况来实现,开发的工作量也不小。事实里面的很多逻辑是一致的,只是具体的并实现方式有些差异,做成同一接口,不同实现。

接口代码:

#ifndef IMPLAYBASE_H

#define IMPLAYBASE_H

#include "UIApi.h"

#include "UILib.h"

 

class ImPlayBase

{  

public:  

ImPlayBase (lpShareMemData data)

:handle(NULL)

,m_lpSMD(data){};  

virtual ~ImPlayBase ()  {  }  

 

virtual int init() = 0;

virtual int open() = 0;

virtual int start() = 0;  

virtual int pause() = 0;  

virtual int resume() = 0;

virtual int stop() = 0;  

virtual int close() = 0;  

virtual int seek() = 0;  

virtual int shotsnap() = 0;  

virtual void setVolume() = 0;  

virtual int getVolume() = 0;

lpShareMemData getData(){ return m_lpSMD; }

 

protected:  

/* data */  

void* handle;

lpShareMemData m_lpSMD;

};  

 

#endif 

////////////////////////////////////////////////////////////////////
//ppt header:

 

class PPTMGR_EXPORT ImPPTPlayer : public ImPlayBase 

{

public:

ImPPTPlayer(lpShareMemData data);

~ImPPTPlayer();

 

int init();

int open();

int start();

int pause();

int resume();

int stop();

int close();

int seek();

int shotsnap();

void setVolume();

int getVolume();

 

void setListItem(ImListTreeItem *item);

QString getVersion();

bool isInstallPPT();

 

signals:

 

protected slots:

 

private:

HRESULT createPPTEvents();

 

private:

_ApplicationPtr  m_app;

PPTEventSink *m_sink;            //Global variables

IConnectionPoint* m_connectPoint;

SlideShowWindowPtr m_sldeWindow;

int m_slideNum;

HWND m_pptHwnd;

lpShareMemData m_lpSMD;

 

ImListTreeItem *m_listItem;

};

 

 

////////////////////////////////////////////////////////////////

 

// flash header:

 

class FLASHMGR_EXPORT ImFlashPlayer :  public ImPlayBase 

{

public:

ImFlashPlayer(lpShareMemData data);

~ImFlashPlayer();

 

int init();

int open();

int start();

int pause();

int resume();

int stop();

int close();

int seek();

int shotsnap();

void setVolume();

int getVolume();

 

void setListItem(ImListTreeItem *item);

 

signals:

 

protected slots:

 

private:

 

 

private:

ImListTreeItem *m_listItem;

};

////////////////////////////////////////////////////////////////
// video header:
class FLASHMGR_EXPORT ImVideoPlayer :  public ImPlayBase 
{
public:
ImVideoPlayer(lpShareMemData data);
~ImVideoPlayer();
int init();
int open();
int start();
int pause();
int resume();
int stop();
int close();
int seek();
int shotsnap();
void setVolume();
int getVolume();
void setListItem(ImListTreeItem *item);
signals:
protected slots:
private:
private:
ImListTreeItem *m_listItem;
};

目前由于还在处于构想之中,具体实现下一步再做。

参考:C++的多态与适配器模式 
 http://blog.csdn.net/fjb2080/archive/2010/04/15/5488948.aspx

 

阅读更多
个人分类: C++
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭