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

原创 2011年04月19日 10:26:00

  技术解决方案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

 

相关文章推荐

PPM/PGM/PBM 图象文件(thinkvd 开发日志)

文章出处:飞诺网(www.firnow.com):http://dev.firnow.com/course/6_system/linux/Linuxjs/2008727/133901.htmlPPM-...
  • notton
  • notton
  • 2011年02月28日 09:27
  • 1585

关于C语言中的Map(thinkvd 开发日志)

 开发中用过map,但一般都是C++的,对map的好处深有体会,尤其是QT中的QMap。C语言中的Map如何实现呢,看看高人写的吧感觉与QT中的支持QVariant支持并转换还有许多差距,没有map[...
  • notton
  • notton
  • 2011年03月11日 14:28
  • 4371

关于创业合作方面的认识(thinkvd开发日志)

创业过程也是一个与人打交道合作的过程,合作方最好能达成下面的共识:1。个体差异存在:由于大家生活环境、性格个性、处事方式、观点、想法、主张、受教育程度方式等不同,会存在差异。2。合作中的矛盾矛盾的客观...
  • notton
  • notton
  • 2011年01月16日 12:32
  • 378

SDL实现overlay方式双屏显示的应用流程分析(thinkvd开发日志)[转]

由于在参与开发 thinkvd video converter 遇到释放SDL内存的问题,应用中需要在预览、全屏、双屏及CLIP之间来回切换,再次看了SDL相关的源代码,把SDL实现的过程简单说一...

STS创建Spring Boot项目实战(Rest接口、数据库、用户认证、分布式Token JWT、Redis操作、日志和统一异常处理)

1、新建工程 2、选择打包方式,这边可以选择为打包为Jar包,或者传统的打包为War包 3、选择开发过程中使用到的技术,这边我选择的是Rest Repositories 4...
  • he90227
  • he90227
  • 2016年11月23日 17:34
  • 9641

Cocos2d-x游戏引擎开发[2]----工厂方法,统一接口 (以helloworld类为基础)

学习cocos2d-x首先得具备这个构架 之后的学习主要是以这个分层来构造类写一个一个事件 CCApplicationprotocol定义了接口 CCApplication各个平台是不同的 ...

PDO统一接口开发规范1.0 事例

这个星期做了一个API接口整合的程序大家还是看程序把!PDO统一接口开发规范1.0 加密方式密码加密是MD5  32位加密syskey 加密是32位安全码功能描述:     1: 从A网站登录到B网站...

@Aspect统一处理Web请求日志--Spring Boot--Java EE开发,原来可以这样!

参考0http://blog.csdn.net/linzhiqiang0316/article/details/52671293参考1 http://blog.csdn.net/a286352250/...
  • lsziri
  • lsziri
  • 2017年03月27日 17:58
  • 1750

Windows 9信息曝光:统一开发接口、整合Cortana到任务栏

摘要:2014年微软全球合作伙伴大会在美国华盛顿正式拉开序幕,会上,微软首席运营商Kevin Turner透露了微软下一代操作系统Windows 9的一些信息:统一开发接口、语音助手Cortana将被...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:计划统一播放接口(thinkvd开发日志)
举报原因:
原因补充:

(最多只允许输入30个字)