Initial community commit
This commit is contained in:
parent
537bcbc862
commit
fc06254474
16440 changed files with 4239995 additions and 2 deletions
136
Src/Plugins/Input/in_wmvdrm/main.cpp
Normal file
136
Src/Plugins/Input/in_wmvdrm/main.cpp
Normal file
|
@ -0,0 +1,136 @@
|
|||
#include "Main.h"
|
||||
#include "api.h"
|
||||
#include "loadini.h"
|
||||
#include "FileTypes.h"
|
||||
#include <commctrl.h>
|
||||
#include "../nu/Config.h"
|
||||
#include "../nu/CCVersion.h"
|
||||
#include "resource.h"
|
||||
|
||||
wchar_t INI_FILE[MAX_PATH] = L"";
|
||||
IDispatch *winampExternal = 0;
|
||||
Nullsoft::Utility::Config wmConfig;
|
||||
WMDRM mod;
|
||||
HINSTANCE WASABI_API_LNG_HINST_WAV = 0;
|
||||
HINSTANCE WASABI_API_LNG_HINST_DS = 0;
|
||||
|
||||
int Init()
|
||||
{
|
||||
if (!IsWindow(plugin.hMainWindow))
|
||||
return IN_INIT_FAILURE;
|
||||
|
||||
if (!LoadWasabi())
|
||||
return IN_INIT_FAILURE;
|
||||
|
||||
plugin.UsesOutputPlug |= 8;
|
||||
|
||||
// need to have this initialised before we try to do anything with localisation features
|
||||
WASABI_API_START_LANG(plugin.hDllInstance,InWmLangGUID);
|
||||
|
||||
static wchar_t szDescription[256];
|
||||
swprintf(szDescription,256,WASABI_API_LNGSTRINGW(IDS_NULLSOFT_WINDOWS_MEDIA_DECODER),WMDRM_VERSION);
|
||||
plugin.description = (char*)szDescription;
|
||||
|
||||
IniFile(plugin.hMainWindow);
|
||||
wmConfig.SetFile(INI_FILE, L"in_wm");
|
||||
ReadConfig();
|
||||
fileTypes.ReadConfig();
|
||||
if (NULL == winampExternal)
|
||||
{
|
||||
winampExternal = (IDispatch *)SendMessage(plugin.hMainWindow, WM_WA_IPC, 0, IPC_GET_DISPATCH_OBJECT); // ask for winamp's
|
||||
if (winampExternal == (IDispatch *)1)
|
||||
winampExternal = 0;
|
||||
}
|
||||
|
||||
mod.Init();
|
||||
return IN_INIT_SUCCESS;
|
||||
}
|
||||
|
||||
void Quit()
|
||||
{
|
||||
mod.Quit();
|
||||
UnloadWasabi();
|
||||
fileTypes.types.clear();
|
||||
|
||||
if (NULL != winampExternal)
|
||||
{
|
||||
winampExternal->Release();
|
||||
winampExternal = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void Config(HWND parent)
|
||||
{
|
||||
mod.Config(parent);
|
||||
fileTypes.SaveConfig();
|
||||
WriteConfig();
|
||||
}
|
||||
|
||||
void About(HWND parent)
|
||||
{
|
||||
wchar_t message[1024] = {0}, text[1024] = {0};
|
||||
WASABI_API_LNGSTRINGW_BUF(IDS_NULLSOFT_WINDOWS_MEDIA_DECODER_OLD,text,1024);
|
||||
wsprintfW(message, WASABI_API_LNGSTRINGW(IDS_ABOUT_TEXT),
|
||||
plugin.description, TEXT(__DATE__));
|
||||
DoAboutMessageBox(parent,text,message);
|
||||
}
|
||||
|
||||
void GetFileInfo(const in_char *file, wchar_t *title, int *length_in_ms) { mod.GetFileInfo(file, title, length_in_ms); }
|
||||
int InfoDialog(const in_char *file, HWND parent) { return mod.InfoBox(file, parent); }
|
||||
int IsOurFile(const in_char *fn) { return mod.IsOurFile(fn); }
|
||||
int Play(const in_char *fn) {return mod.Play(fn); }
|
||||
void Pause() { mod.Pause(); }
|
||||
void Resume() { mod.UnPause(); }
|
||||
int IsPaused() { return mod.IsPaused(); }
|
||||
void Stop() { mod.Stop(); }
|
||||
int GetLength() { return mod.GetLength(); }
|
||||
int GetOutputTime() { return mod.GetOutputTime(); }
|
||||
void SetOutputTime(int time_in_ms) { return mod.SetOutputTime(time_in_ms); }
|
||||
void SetVolume(int volume) { mod.SetVolume(volume); }
|
||||
void SetPan(int pan) { mod.SetPan(pan); }
|
||||
void EQSet(int on, char data[10], int preamp) { mod.EQSet(on, data, preamp); }
|
||||
|
||||
In_Module plugin =
|
||||
{
|
||||
IN_VER_RET, // defined in IN2.H
|
||||
"nullsoft(in_wm.dll)",
|
||||
0, // hMainWindow (filled in by winamp)
|
||||
0, // hDllInstance (filled in by winamp)
|
||||
0, // this is a double-null limited list. "EXT\0Description\0EXT\0Description\0" etc.
|
||||
0, // is_seekable
|
||||
1, // uses output plug-in system
|
||||
Config,
|
||||
About,
|
||||
Init,
|
||||
Quit,
|
||||
GetFileInfo,
|
||||
InfoDialog,
|
||||
IsOurFile,
|
||||
Play,
|
||||
Pause,
|
||||
Resume,
|
||||
IsPaused,
|
||||
Stop,
|
||||
|
||||
GetLength,
|
||||
GetOutputTime,
|
||||
SetOutputTime,
|
||||
|
||||
SetVolume,
|
||||
SetPan,
|
||||
|
||||
0,0,0,0,0,0,0,0,0, // visualization calls filled in by winamp
|
||||
|
||||
0,0, // dsp calls filled in by winamp
|
||||
|
||||
EQSet,
|
||||
|
||||
NULL, // setinfo call filled in by winamp
|
||||
|
||||
0, // out_mod filled in by winamp
|
||||
};
|
||||
|
||||
extern "C" __declspec( dllexport ) In_Module * winampGetInModule2()
|
||||
{
|
||||
return &plugin;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue