Вход на сайт
Работа, ЯП и ООП
2729 просмотров
Перейти к просмотру всей ветки
в ответ uscheswoi_82 16.06.24 11:09
Да вот ещё... это мой фреймворк т.к. гнутый си т.е. GCC не поддерживает format, хотя на дворе 2024 год, пришлось вот так делать:
// -lwinmm
#include <stdio.h>
#include "multimedia.h"
Multimedia::Multimedia(string filename, string device) {
this->id = "snd1";
this->filename = filename;
this->device = device;
this->handle = NULL;
}
Multimedia::Multimedia(string filename, string device, HWND handle) {
this->id = "snd1";
this->filename = filename;
this->device = device;
this->handle = handle;
}
void Multimedia::open() {
string cmd = "open \"";
cmd += this->filename;
cmd += "\" type ";
cmd += this->device;
cmd += " alias ";
cmd += this->id;
cmd += " wait ";
/*if(this->handle != NULL) {
int ihwnd = DECLARE_HANDLEt(this->handle);
stringstream s();
s << ihwnd;
cmd += "window ";
cmd += s;
}*/
mciSendString(cmd.c_str(), NULL, 0, NULL);
}
void Multimedia::play() {
string cmd = "play ";
cmd += this->id;
mciSendString(cmd.c_str(), NULL, 0, 0);
}
void Multimedia::play_video() {
string cmd = "play ";
cmd += this->id;
// cmd += " window at 10 80 300 225 notify";
//cmd += " notify ";
mciSendString(cmd.c_str(), NULL, 0, 0);
}
void Multimedia::stop() {
string cmd = "stop ";
cmd += this->id;
mciSendString(cmd.c_str(), NULL, 0, 0);
}
void Multimedia::close() {
string cmd = "close ";
cmd += this->id;
mciSendString(cmd.c_str(), NULL, 0, 0);
}
// new 06.09 25.06.2021
void Multimedia::set_window() {
char buf[64]; /// !!!!!!!!!!!!!!!!!!!!!
sprintf(buf, "%p", this->handle); /// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
string str(buf); /// !!!!!!!!!!!!!!
string cmd = "window ";
cmd += this->id;
cmd += " handle ";
cmd += str;
//MessageBox(NULL, cmd.c_str(), "", MB_OK);
mciSendString(cmd.c_str(), NULL, 0, 0);
}Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнении
Моя ФЛ Он и Она
Моя ФЛ Он и Она