📄 css_interface.c
字号:
/**************************************************************************** * Copyright (c) Sigma Designs, Inc. 2005. All rights reserved. *//** * @file css_interface.c * * @brief Wrapper for css shared library. * * @version 0.1 * * @buglog First revision. * * @author Alan Liddeke ( from Julien's rmupnp project ) * ****************************************************************************//*--------------------------------------------------------------------------- INCLUDES ---------------------------------------------------------------------------*/#define ALLOW_OS_CODE#include "rmdef/rmdef.h"#include "rmdrm/include/rmdrm.h"#include "../include/css_interface.h"#include "../../include/css_version.h"/*--------------------------------------------------------------------------- MACROS ---------------------------------------------------------------------------*/#if 1#define CSSDBG ENABLE#else#define CSSDBG DISABLE#endif#if (EM86XX_MODE == EM86XX_MODEID_WITHHOST) || (EM86XX_CHIP == EM86XX_CHIPID_TANGO2)static struct css_interface_s *css_interface;#undef FUNC0#undef FUNC1#undef FUNC2#undef FUNC3#undef CSS_AUTHENTICATION_API#undef CSS_DECRYPTION_API#define CSS_AUTHENTICATION_API#define CSS_DECRYPTION_API#undef FUNC#define FUNC(name, return_error, ...) \if (css_interface){ \ RMDBGLOG((CSSDBG,"got %p for " #name "\n", css_interface->name)); \ return css_interface->name(__VA_ARGS__); \} else { \ RMDBGLOG((CSSDBG,"Attempting to load CSS...\n")); \ if ((css_interface = load_drm(CSS, NULL))) { \ RMDBGLOG((CSSDBG,"got %p for " #name "\n", css_interface->name)); \ return css_interface->name(__VA_ARGS__); \ } else { \ RMDBGLOG((CSSDBG,"Cannot load CSS\n")); \ return return_error; \ } \}#ifdef CSS_USE_CONTEXT #define FUNC0(name, return_type, return_error, t1, p1) \ return_type name (t1 p1){ \ FUNC(name, return_error) \ } \ #define FUNC1(name, return_type, return_error, t1, p1, t2, p2) \ return_type name (t1 p1, t2 p2){ \ FUNC(name, return_error, p1, p2) \ } \ #define FUNC2(name, return_type, return_error, t1, p1, t2, p2, t3, p3) \ return_type name (t1 p1, t2 p2, t3 p3){ \ FUNC(name, return_error, p1, p2, p3) \ }#else #define FUNC0(name, return_type, return_error) \ return_type name (void){ \ FUNC(name, return_error) \ } \ #define FUNC1(name, return_type, return_error, t1, p1) \ return_type name (t1 p1){ \ FUNC(name, return_error, p1) \ } \ #define FUNC2(name, return_type, return_error, t1, p1, t2, p2) \ return_type name (t1 p1, t2 p2){ \ FUNC(name, return_error, p1, p2) \ } #define FUNC3(name, return_type, return_error, t1, p1, t2, p2, t3, p3) \ return_type name (t1 p1, t2 p2, t3 p3){ \ FUNC(name,return_error, p1, p2, p3) \ }#endif #include "../include/css_interface.inc"#endif /* EM86XX_MODEID_WITHHOST || EM86XX_CHIPID_TANGO2 */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -