Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Работа, ЯП и ООП

16.06.24 11:19
Re: Работа, ЯП и ООП
 
uscheswoi_82 коренной житель

Да вот ещё... это мой фреймворк т.к. гнутый си т.е. 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);
}
Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
 

Перейти на