diff --git a/src/api/behaviorcontroller.h b/src/api/behaviorcontroller.h index f058a27bce1e6d261563290d6357324e3c1523ba..0748ed5b9336bc09d006f5c65862fa170115bd5a 100644 --- a/src/api/behaviorcontroller.h +++ b/src/api/behaviorcontroller.h @@ -38,12 +38,12 @@ class Lrc; namespace conversation { - class Info; + struct Info; } namespace interaction { - class Info; + struct Info; } /** diff --git a/src/call.cpp b/src/call.cpp index b6a474b4939a0dd879bc0bea12e1538892291629..c0ffa4d6839ec1d87d8172a18aca156f20fc36f1 100644 --- a/src/call.cpp +++ b/src/call.cpp @@ -294,16 +294,16 @@ m_pDialNumber(new TemporaryContactMethod()), m_History(false),m_Missed(false),m_Direction(Call::Direction::OUTGOING),m_Type(Call::Type::CALL), m_pUserActionModel(nullptr), m_CurrentState(Call::State::ERROR),m_pCertificate(nullptr),m_mMedias({{ /* IN OUT */ - /* AUDIO */ {{ new QList<Media::Media*>() /*Created lifecycle == progress*/, new QList<Media::Media*>() /*Created lifecycle == progress*/}}, - /* VIDEO */ {{ new QList<Media::Media*>() /*On demand */, new QList<Media::Media*>() /*On demand */}}, - /* TEXT */ {{ new QList<Media::Media*>() /*On demand */, new QList<Media::Media*>() /*On demand */}}, - /* FILE */ {{ new QList<Media::Media*>() /*Not implemented */, new QList<Media::Media*>() /*Not implemented */}}, + /* AUDIO */ {{ new QList<media::Media*>() /*Created lifecycle == progress*/, new QList<media::Media*>() /*Created lifecycle == progress*/}}, + /* VIDEO */ {{ new QList<media::Media*>() /*On demand */, new QList<media::Media*>() /*On demand */}}, + /* TEXT */ {{ new QList<media::Media*>() /*On demand */, new QList<media::Media*>() /*On demand */}}, + /* FILE */ {{ new QList<media::Media*>() /*Not implemented */, new QList<media::Media*>() /*Not implemented */}}, }}), m_mRecordings({{ /* IN OUT */ - /* AUDIO */ {{ new QList<Media::Recording*>(), new QList<Media::Recording*>()}}, - /* VIDEO */ {{ new QList<Media::Recording*>(), new QList<Media::Recording*>()}}, - /* TEXT */ {{ new QList<Media::Recording*>(), new QList<Media::Recording*>()}}, - /* FILE */ {{ new QList<Media::Recording*>(), new QList<Media::Recording*>()}}, + /* AUDIO */ {{ new QList<media::Recording*>(), new QList<media::Recording*>()}}, + /* VIDEO */ {{ new QList<media::Recording*>(), new QList<media::Recording*>()}}, + /* TEXT */ {{ new QList<media::Recording*>(), new QList<media::Recording*>()}}, + /* FILE */ {{ new QList<media::Recording*>(), new QList<media::Recording*>()}}, }}), m_mIsRecording({{ /* IN OUT */ /* AUDIO */ {{ false, false }}, @@ -371,16 +371,16 @@ Call::~Call() CallPrivate::~CallPrivate() { - for ( const Media::Media::Type t : EnumIterator<Media::Media::Type>()) { - if (m_mMedias[t][Media::Media::Direction::IN ]) - delete m_mMedias[t][Media::Media::Direction::IN ]; - if (m_mMedias[t][Media::Media::Direction::OUT ]) - delete m_mMedias[t][Media::Media::Direction::OUT ]; + for ( const media::Media::Type t : EnumIterator<media::Media::Type>()) { + if (m_mMedias[t][media::Media::Direction::IN ]) + delete m_mMedias[t][media::Media::Direction::IN ]; + if (m_mMedias[t][media::Media::Direction::OUT ]) + delete m_mMedias[t][media::Media::Direction::OUT ]; - if (m_mRecordings[t][Media::Media::Direction::IN ]) - delete m_mRecordings[t][Media::Media::Direction::IN ]; - if (m_mRecordings[t][Media::Media::Direction::OUT ]) - delete m_mRecordings[t][Media::Media::Direction::OUT ]; + if (m_mRecordings[t][media::Media::Direction::IN ]) + delete m_mRecordings[t][media::Media::Direction::IN ]; + if (m_mRecordings[t][media::Media::Direction::OUT ]) + delete m_mRecordings[t][media::Media::Direction::OUT ]; } } @@ -397,7 +397,7 @@ void CallPrivate::deleteCall(Call* call) void CallPrivate::updateOutgoingMedia(const MapStringString& details) { - auto list = q_ptr->media(Media::Media::Type::VIDEO, Media::Media::Direction::OUT); + auto list = q_ptr->media(media::Media::Type::VIDEO, media::Media::Direction::OUT); QString video_source = details[ DRing::Call::Details::VIDEO_SOURCE]; if (video_source.length() <= 0 && list.isEmpty()) { @@ -407,12 +407,12 @@ void CallPrivate::updateOutgoingMedia(const MapStringString& details) if (list.isEmpty()) { // Update data - static const Media::Media::Direction direction = Media::Media::Direction::OUT; - mediaFactory<Media::Video>(direction); + static const media::Media::Direction direction = media::Media::Direction::OUT; + mediaFactory<media::Video>(direction); } - list = q_ptr->media(Media::Media::Type::VIDEO, Media::Media::Direction::OUT); - Media::Video* media_video = static_cast<Media::Video*>(list[0]); + list = q_ptr->media(media::Media::Type::VIDEO, media::Media::Direction::OUT); + media::Video* media_video = static_cast<media::Video*>(list[0]); media_video->sourceModel()->setUsedIndex(video_source); return; } @@ -474,10 +474,10 @@ Call* CallPrivate::buildCall(const QString& callId, Call::Direction callDirectio //Set the recording state if (CallManager::instance().getIsRecording(callId)) { - call->d_ptr->m_mIsRecording[ Media::Media::Type::AUDIO ].setAt( Media::Media::Direction::IN , true); - call->d_ptr->m_mIsRecording[ Media::Media::Type::AUDIO ].setAt( Media::Media::Direction::OUT , true); - call->d_ptr->m_mIsRecording[ Media::Media::Type::VIDEO ].setAt( Media::Media::Direction::IN , true); - call->d_ptr->m_mIsRecording[ Media::Media::Type::VIDEO ].setAt( Media::Media::Direction::OUT , true); + call->d_ptr->m_mIsRecording[ media::Media::Type::AUDIO ].setAt( media::Media::Direction::IN , true); + call->d_ptr->m_mIsRecording[ media::Media::Type::AUDIO ].setAt( media::Media::Direction::OUT , true); + call->d_ptr->m_mIsRecording[ media::Media::Type::VIDEO ].setAt( media::Media::Direction::IN , true); + call->d_ptr->m_mIsRecording[ media::Media::Type::VIDEO ].setAt( media::Media::Direction::OUT , true); } if (!details[ DRing::Call::Details::TIMESTAMP_START ].isEmpty()) @@ -959,10 +959,10 @@ Call::LifeCycleState Call::lifeCycleState() const bool Call::isAVRecording() const { return lifeCycleState() == Call::LifeCycleState::PROGRESS - && (d_ptr->m_mIsRecording[ Media::Media::Type::AUDIO ][ Media::Media::Direction::IN ] - || d_ptr->m_mIsRecording[ Media::Media::Type::AUDIO ][ Media::Media::Direction::OUT ] - || d_ptr->m_mIsRecording[ Media::Media::Type::VIDEO ][ Media::Media::Direction::IN ] - || d_ptr->m_mIsRecording[ Media::Media::Type::VIDEO ][ Media::Media::Direction::OUT ]); + && (d_ptr->m_mIsRecording[ media::Media::Type::AUDIO ][ media::Media::Direction::IN ] + || d_ptr->m_mIsRecording[ media::Media::Type::AUDIO ][ media::Media::Direction::OUT ] + || d_ptr->m_mIsRecording[ media::Media::Type::VIDEO ][ media::Media::Direction::IN ] + || d_ptr->m_mIsRecording[ media::Media::Type::VIDEO ][ media::Media::Direction::OUT ]); } ///Get the call account id @@ -1008,8 +1008,8 @@ void CallPrivate::registerRenderer(Video::Renderer* renderer) emit q_ptr->videoStarted(renderer); //Test logic, this is very weak, but works in a normal scenario - for (const auto d : EnumIterator<Media::Media::Direction>()) - mediaFactory<Media::Video>(d); + for (const auto d : EnumIterator<media::Media::Direction>()) + mediaFactory<media::Video>(d); connect(renderer, &Video::Renderer::stopped, this, &CallPrivate::videoStopped); @@ -1026,27 +1026,27 @@ void CallPrivate::removeRenderer(Video::Renderer* renderer) return; } -QList<Media::Media*> Call::media(Media::Media::Type type, Media::Media::Direction direction) const +QList<media::Media*> Call::media(media::Media::Type type, media::Media::Direction direction) const { return *(d_ptr->m_mMedias[type][direction]); } -bool Call::hasMedia(Media::Media::Type type, Media::Media::Direction direction) const +bool Call::hasMedia(media::Media::Type type, media::Media::Direction direction) const { return d_ptr->m_mMedias[type][direction]->size(); } -bool Call::hasRecording(Media::Media::Type type, Media::Media::Direction direction) const +bool Call::hasRecording(media::Media::Type type, media::Media::Direction direction) const { return d_ptr->m_mRecordings[type][direction]->size(); } -bool Call::isRecording(Media::Media::Type type, Media::Media::Direction direction) const +bool Call::isRecording(media::Media::Type type, media::Media::Direction direction) const { return d_ptr->m_mIsRecording[type][direction]; } -QList<Media::Recording*> Call::recordings(Media::Media::Type type, Media::Media::Direction direction) const +QList<media::Recording*> Call::recordings(media::Media::Type type, media::Media::Direction direction) const { //Note that the recording are not Media attributes to avoid keeping "terminated" media //for history call. @@ -1057,13 +1057,13 @@ QList<Media::Recording*> Call::recordings(Media::Media::Type type, Media::Media: * An iffecient way to list all media. If this ever become used elsewhere, * add caching. */ -QList<Media::Media*> Call::allMedia() const +QList<media::Media*> Call::allMedia() const { - QList<Media::Media*> ret; + QList<media::Media*> ret; - for (const auto t : EnumIterator<Media::Media::Type>() ) { - for (const auto d : EnumIterator<Media::Media::Direction>() ) { - foreach(Media::Media* m, *(d_ptr->m_mMedias[t][d])) + for (const auto t : EnumIterator<media::Media::Type>() ) { + for (const auto d : EnumIterator<media::Media::Direction>() ) { + foreach(media::Media* m, *(d_ptr->m_mMedias[t][d])) ret << m; } } @@ -1095,10 +1095,10 @@ int MediaTypeInference::genId() { * now the safeMediaCreator switch is the only place where this would be useful, * so there is very little point to do that. */ -QHash<int, Media::Media::Type>& MediaTypeInference::typeMap(bool regen) { +QHash<int, media::Media::Type>& MediaTypeInference::typeMap(bool regen) { static bool isInit = false; - //Try to map T to Media::Media::Type then use this to retrieve and cast the media - static QHash<int, Media::Media::Type> sTypeMap; + //Try to map T to media::Media::Type then use this to retrieve and cast the media + static QHash<int, media::Media::Type> sTypeMap; if (!isInit || regen) { isInit = true; REGISTER_MEDIA() @@ -1110,11 +1110,11 @@ QHash<int, Media::Media::Type>& MediaTypeInference::typeMap(bool regen) { * Create, register and connect new media to a call. */ template<typename T> -T* CallPrivate::mediaFactory(Media::Media::Direction dir) +T* CallPrivate::mediaFactory(media::Media::Direction dir) { T* m = new T(q_ptr, dir); (*m_mMedias[MediaTypeInference::getType<T>()][dir]) << m; - const auto cb = [this,m](const Media::Media::State s, const Media::Media::State p) { + const auto cb = [this,m](const media::Media::State s, const media::Media::State p) { if (m) { emit q_ptr->mediaStateChanged(m,s,p); } @@ -1122,7 +1122,7 @@ T* CallPrivate::mediaFactory(Media::Media::Direction dir) Q_ASSERT(false); }; - connect(m, &Media::Media::stateChanged, cb); + connect(m, &media::Media::stateChanged, cb); emit q_ptr->mediaAdded(m); return m; @@ -1133,18 +1133,18 @@ T* CallPrivate::mediaFactory(Media::Media::Direction dir) * do a static cast to re-create the right type. Given how it is using * MediaTypeInference, it is safe-ish. */ -Media::Media* MediaTypeInference::safeMediaCreator(Call* c, Media::Media::Type t, Media::Media::Direction d) +media::Media* MediaTypeInference::safeMediaCreator(Call* c, media::Media::Type t, media::Media::Direction d) { switch(t) { - case Media::Media::Type::AUDIO: - return c->d_ptr->mediaFactory<Media::Audio>(d); - case Media::Media::Type::VIDEO: - return c->d_ptr->mediaFactory<Media::Video>(d); - case Media::Media::Type::TEXT : - return c->d_ptr->mediaFactory<Media::Text>(d); - case Media::Media::Type::FILE : - return c->d_ptr->mediaFactory<Media::File>(d); - case Media::Media::Type::COUNT__: + case media::Media::Type::AUDIO: + return c->d_ptr->mediaFactory<media::Audio>(d); + case media::Media::Type::VIDEO: + return c->d_ptr->mediaFactory<media::Video>(d); + case media::Media::Type::TEXT : + return c->d_ptr->mediaFactory<media::Text>(d); + case media::Media::Type::FILE : + return c->d_ptr->mediaFactory<media::File>(d); + case media::Media::Type::COUNT__: break; } return nullptr; @@ -1212,14 +1212,14 @@ void CallPrivate::setRecordingPath(const QString& path) if (!path.isEmpty() && QFile::exists(path)) { - Media::Recording* rec = LocalRecordingCollection::instance().addFromPath(path); - (*m_mRecordings[Media::Media::Type::AUDIO][Media::Media::Direction::IN ]) << rec; - (*m_mRecordings[Media::Media::Type::AUDIO][Media::Media::Direction::OUT]) << rec; + media::Recording* rec = LocalRecordingCollection::instance().addFromPath(path); + (*m_mRecordings[media::Media::Type::AUDIO][media::Media::Direction::IN ]) << rec; + (*m_mRecordings[media::Media::Type::AUDIO][media::Media::Direction::OUT]) << rec; } //TODO add a media type attribute to this method - /*(*m_mRecordings[Media::Media::Type::VIDEO][Media::Media::Direction::IN ] - (*m_mRecordings[Media::Media::Type::VIDEO][Media::Media::Direction::OUT]*/ + /*(*m_mRecordings[media::Media::Type::VIDEO][media::Media::Direction::IN ] + (*m_mRecordings[media::Media::Type::VIDEO][media::Media::Direction::OUT]*/ } ///Set peer name @@ -1477,17 +1477,17 @@ void CallPrivate::changeCurrentState(Call::State newState) void CallPrivate::initMedia() { //Always assume there is an audio media, even if this is untrue - for (const auto d : EnumIterator<Media::Media::Direction>()) - mediaFactory<Media::Audio>(d); + for (const auto d : EnumIterator<media::Media::Direction>()) + mediaFactory<media::Audio>(d); } void CallPrivate::terminateMedia() { //Delete remaining media - for (const auto t : EnumIterator<Media::Media::Type>() ) { - for (const auto d : EnumIterator<Media::Media::Direction>() ) { + for (const auto t : EnumIterator<media::Media::Type>() ) { + for (const auto d : EnumIterator<media::Media::Direction>() ) { for (auto m : q_ptr->media(t,d) ) { - m << Media::Media::Action::TERMINATE; + m << media::Media::Action::TERMINATE; m_mMedias[t][d]->removeAll(m); //TODO keep the media for history visualization purpose if it has a recording delete m; @@ -1690,7 +1690,7 @@ void CallPrivate::sendProfile() * course, this is an ugly hack is while vCard is a standard, using it * like this is not. Therefore we use the proprietary PROFILE_VCF MIME. */ - auto t = mediaFactory<Media::Text>(Media::Media::Direction::OUT); + auto t = mediaFactory<media::Text>(media::Media::Direction::OUT); MapStringString details = ConfigurationManager::instance().getAccountDetails(m_Account->id()); using namespace DRing::Account; @@ -1928,13 +1928,13 @@ void CallPrivate::peerHoldChanged(bool onPeerHold) void CallPrivate::toggleAudioRecord() { CallManagerInterface & callManager = CallManager::instance(); - const bool wasRecording = m_mIsRecording[ Media::Media::Type::AUDIO ][Media::Media::Direction::IN]; + const bool wasRecording = m_mIsRecording[ media::Media::Type::AUDIO ][media::Media::Direction::IN]; qDebug() << "Setting record " << !wasRecording << " for call. callId : " << q_ptr << "ConfId:" << q_ptr; const bool isRec = callManager.toggleRecording(q_ptr->dringId()); - m_mIsRecording[ Media::Media::Type::AUDIO ].setAt( Media::Media::Direction::IN , isRec); - m_mIsRecording[ Media::Media::Type::AUDIO ].setAt( Media::Media::Direction::OUT , isRec); + m_mIsRecording[ media::Media::Type::AUDIO ].setAt( media::Media::Direction::IN , isRec); + m_mIsRecording[ media::Media::Type::AUDIO ].setAt( media::Media::Direction::OUT , isRec); } ///Record the call @@ -1942,13 +1942,13 @@ void CallPrivate::toggleVideoRecord() { //TODO upgrade once the video recording is implemented CallManagerInterface & callManager = CallManager::instance(); - const bool wasRecording = m_mIsRecording[ Media::Media::Type::VIDEO ][Media::Media::Direction::IN]; + const bool wasRecording = m_mIsRecording[ media::Media::Type::VIDEO ][media::Media::Direction::IN]; qDebug() << "Setting record " << !wasRecording << " for call. callId : " << q_ptr << "ConfId:" << q_ptr; const bool isRec = callManager.toggleRecording(q_ptr->dringId()); - m_mIsRecording[ Media::Media::Type::VIDEO ].setAt( Media::Media::Direction::IN , isRec); - m_mIsRecording[ Media::Media::Type::VIDEO ].setAt( Media::Media::Direction::OUT , isRec); + m_mIsRecording[ media::Media::Type::VIDEO ].setAt( media::Media::Direction::IN , isRec); + m_mIsRecording[ media::Media::Type::VIDEO ].setAt( media::Media::Direction::OUT , isRec); } ///Start the timer @@ -2266,11 +2266,11 @@ QVariant Call::roleData(int role) const case static_cast<int>(Call::Role::DateTime): return dateTime(); case static_cast<int>(Call::Role::HasAVRecording): - return d_ptr->m_mRecordings[Media::Media::Type::AUDIO][Media::Media::Direction::IN]->size() - + d_ptr->m_mRecordings[Media::Media::Type::AUDIO][Media::Media::Direction::IN]->size() > 0; + return d_ptr->m_mRecordings[media::Media::Type::AUDIO][media::Media::Direction::IN]->size() + + d_ptr->m_mRecordings[media::Media::Type::AUDIO][media::Media::Direction::IN]->size() > 0; case static_cast<int>(Call::Role::IsAVRecording): - return d_ptr->m_mIsRecording[Media::Media::Type::AUDIO][Media::Media::Direction::IN] - || d_ptr->m_mIsRecording[Media::Media::Type::AUDIO][Media::Media::Direction::IN]; + return d_ptr->m_mIsRecording[media::Media::Type::AUDIO][media::Media::Direction::IN] + || d_ptr->m_mIsRecording[media::Media::Type::AUDIO][media::Media::Direction::IN]; case static_cast<int>(Call::Role::Filter): { QString normStripppedC; foreach(QChar char2,(static_cast<int>(direction())+'\n'+roleData(Call::Role::Name).toString()+'\n'+ @@ -2324,9 +2324,9 @@ QVariant Call::roleData(int role) const case static_cast<int>(Call::Role::Certificate): return QVariant::fromValue(certificate()); case static_cast<int>(Call::Role::HasAudioRecording): - return d_ptr->m_mRecordings[Media::Media::Type::AUDIO][Media::Media::Direction::IN]->size() > 0; + return d_ptr->m_mRecordings[media::Media::Type::AUDIO][media::Media::Direction::IN]->size() > 0; case static_cast<int>(Call::Role::HasVideoRecording): - return d_ptr->m_mRecordings[Media::Media::Type::VIDEO][Media::Media::Direction::IN]->size() > 0; + return d_ptr->m_mRecordings[media::Media::Type::VIDEO][media::Media::Direction::IN]->size() > 0; case static_cast<int>(Ring::Role::FormattedState): case static_cast<int>(Call::Role::HumanStateName): return toHumanStateName(state()); diff --git a/src/call.h b/src/call.h index 67ac7a2045571c713f8b25c09af7869cbc61df90..b5b5ca2814ea46eec096f0e18aea9daf0872165d 100644 --- a/src/call.h +++ b/src/call.h @@ -46,7 +46,7 @@ namespace Video { class ManagerPrivate; } -namespace Media { +namespace media { class Media; class Audio; class Video; @@ -89,10 +89,10 @@ public: friend class IMConversationManager; friend class VideoRendererManager; friend class VideoRendererManagerPrivate; - friend class Media::Media; - friend class Media::Audio; - friend class Media::Video; - friend class Media::Text; + friend class media::Media; + friend class media::Audio; + friend class media::Video; + friend class media::Text; friend class MediaTypeInference; friend class IMConversationManagerPrivate; friend QMimeData* RingMimes::payload(const Call*, const ContactMethod*, const Person*); @@ -334,13 +334,13 @@ public: Q_INVOKABLE QMimeData* mimePayload ( ) const; template<typename T> - T* firstMedia(Media::Media::Direction direction) const; - QList<Media::Recording*> recordings (Media::Media::Type type, Media::Media::Direction direction) const; - QList<Media::Media*> media (Media::Media::Type type, Media::Media::Direction direction) const; - bool hasMedia (Media::Media::Type type, Media::Media::Direction direction) const; - bool hasRecording(Media::Media::Type type, Media::Media::Direction direction) const; - bool isRecording (Media::Media::Type type, Media::Media::Direction direction) const; - QList<Media::Media*> allMedia ( ) const; + T* firstMedia(media::Media::Direction direction) const; + QList<media::Recording*> recordings (media::Media::Type type, media::Media::Direction direction) const; + QList<media::Media*> media (media::Media::Type type, media::Media::Direction direction) const; + bool hasMedia (media::Media::Type type, media::Media::Direction direction) const; + bool hasRecording(media::Media::Type type, media::Media::Direction direction) const; + bool isRecording (media::Media::Type type, media::Media::Direction direction) const; + QList<media::Media*> allMedia ( ) const; //Automated function Q_INVOKABLE Call::State performAction(Call::Action action); @@ -399,9 +399,9 @@ Q_SIGNALS: ///Remove a new video renderer void videoStopped(Video::Renderer* renderer); //TODO remove, use the media signals ///Notify when a media is added - void mediaAdded(Media::Media* media); + void mediaAdded(media::Media* media); ///Notify when a media state change - void mediaStateChanged(Media::Media* media, const Media::Media::State s, const Media::Media::State m); + void mediaStateChanged(media::Media* media, const media::Media::State s, const media::Media::State m); ///The holding combination has changed void holdFlagsChanged(const FlagPack<HoldFlags>& current, const FlagPack<HoldFlags>& previous); }; diff --git a/src/call.hpp b/src/call.hpp index 3d31c1946b42d7b6c2b5964299bd75409ca7123d..08a049baecd2b5218f5401f5a8a592e56cd314b6 100644 --- a/src/call.hpp +++ b/src/call.hpp @@ -18,10 +18,10 @@ class LIB_EXPORT MediaTypeInference { public: - static Media::Media* safeMediaCreator(Call* c, Media::Media::Type t, Media::Media::Direction d); + static media::Media* safeMediaCreator(Call* c, media::Media::Type t, media::Media::Direction d); template<typename T> - static inline Media::Media::Type getType() { + static inline media::Media::Type getType() { const int id = MediaTypeInference::getId<T>(); return MediaTypeInference::typeMap(!MediaTypeInference::typeMap().contains(id))[id]; } @@ -31,25 +31,25 @@ public: static int id = genId(); return id; } - static QHash<int, Media::Media::Type>& typeMap(bool regen = false); + static QHash<int, media::Media::Type>& typeMap(bool regen = false); private: static int genId(); }; /** * Perform a safe cast of the first media of "T" type - * @example Media::Audio* audio = call->firstMedia<Media::Audio>(Media::Media::Direction::OUT); + * @example Media::Audio* audio = call->firstMedia<media::Audio>(media::Media::Direction::OUT); * @return nullptr if none, the media otherwise. */ template<typename T> -T* Call::firstMedia(Media::Media::Direction direction) const +T* Call::firstMedia(media::Media::Direction direction) const { - const Media::Media::Type t = MediaTypeInference::getType<T>(); + const media::Media::Type t = MediaTypeInference::getType<T>(); - QList<Media::Media*> ms = media(t, direction); + QList<media::Media*> ms = media(t, direction); if (!ms.isEmpty()) { - Media::Media* m = ms[0]; + media::Media* m = ms[0]; Q_ASSERT(m->type() == t); return reinterpret_cast<T*>(m); @@ -63,21 +63,25 @@ T* Call::addOutgoingMedia(bool useExisting) { #pragma push_macro("OUT") #undef OUT - T* existing = firstMedia<T>(Media::Media::Direction::OUT); + T* existing = firstMedia<T>(media::Media::Direction::OUT); if (useExisting && existing) return existing; - Media::Media::Type t = MediaTypeInference::getType<T>(); + media::Media::Type t = MediaTypeInference::getType<T>(); - return static_cast<T*>(MediaTypeInference::safeMediaCreator(this,t,Media::Media::Direction::OUT)); + return static_cast<T*>(MediaTypeInference::safeMediaCreator(this,t, media::Media::Direction::OUT)); #pragma pop_macro("OUT") } +#ifdef _MSC_VER +#define __attribute__(A) /*do nothing*/ +#endif // _MSC_VER + #define REGISTER_MEDIA() __attribute__ ((unused)) static auto forceType = [] {\ - QHash<int,::Media::Media::Type>& sTypeMap = MediaTypeInference::typeMap(0);\ - sTypeMap[MediaTypeInference::getId<Media::Audio>()] = ::Media::Media::Type::AUDIO;\ - sTypeMap[MediaTypeInference::getId<Media::Video>()] = ::Media::Media::Type::VIDEO;\ - sTypeMap[MediaTypeInference::getId<Media::Text >()] = ::Media::Media::Type::TEXT ;\ - sTypeMap[MediaTypeInference::getId<Media::File >()] = ::Media::Media::Type::FILE ;\ + QHash<int,::media::Media::Type>& sTypeMap = MediaTypeInference::typeMap(0);\ + sTypeMap[MediaTypeInference::getId<media::Audio>()] = ::media::Media::Type::AUDIO;\ + sTypeMap[MediaTypeInference::getId<media::Video>()] = ::media::Media::Type::VIDEO;\ + sTypeMap[MediaTypeInference::getId<media::Text >()] = ::media::Media::Type::TEXT ;\ + sTypeMap[MediaTypeInference::getId<media::File >()] = ::media::Media::Type::FILE ;\ return 0;\ }(); diff --git a/src/callmodel.cpp b/src/callmodel.cpp index e3832c0e84ab4f8aef88637f7aab959df6eb9feb..6c1a093e61c08ceabafd552e272d8541485853e7 100644 --- a/src/callmodel.cpp +++ b/src/callmodel.cpp @@ -55,7 +55,11 @@ #include "call_const.h" //System +#ifndef _MSC_VER #include <unistd.h> +#else +#include "../../daemon/MSVC/unistd.h" +#endif // !_MSC_VER #include <errno.h> //Private @@ -477,10 +481,10 @@ Call* CallModelPrivate::addCall2(Call* call, Call* parentCall) connect(call,&Call::videoStopped,[this,call](Video::Renderer* r) { emit q_ptr->rendererRemoved(call, r); }); - connect(call,&Call::mediaAdded, [this,call](Media::Media* media) { + connect(call,&Call::mediaAdded, [this,call](media::Media* media) { emit q_ptr->mediaAdded(call,media); }); - connect(call,&Call::mediaStateChanged, [this,call](Media::Media* media, const Media::Media::State s, const Media::Media::State m) { + connect(call,&Call::mediaStateChanged, [this,call](media::Media* media, const media::Media::State s, const media::Media::State m) { emit q_ptr->mediaStateChanged(call,media,s,m); }); @@ -1452,10 +1456,10 @@ void CallModelPrivate::slotRecordStateChanged (const QString& callId, bool state { if (auto call = q_ptr->getCall(callId)) { - call->d_ptr->m_mIsRecording[ Media::Media::Type::AUDIO ].setAt( Media::Media::Direction::IN , state); - call->d_ptr->m_mIsRecording[ Media::Media::Type::AUDIO ].setAt( Media::Media::Direction::OUT , state); - call->d_ptr->m_mIsRecording[ Media::Media::Type::VIDEO ].setAt( Media::Media::Direction::IN , state); - call->d_ptr->m_mIsRecording[ Media::Media::Type::VIDEO ].setAt( Media::Media::Direction::OUT , state); + call->d_ptr->m_mIsRecording[ media::Media::Type::AUDIO ].setAt( media::Media::Direction::IN , state); + call->d_ptr->m_mIsRecording[ media::Media::Type::AUDIO ].setAt( media::Media::Direction::OUT , state); + call->d_ptr->m_mIsRecording[ media::Media::Type::VIDEO ].setAt( media::Media::Direction::IN , state); + call->d_ptr->m_mIsRecording[ media::Media::Type::VIDEO ].setAt( media::Media::Direction::OUT , state); emit call->changed(); } @@ -1466,11 +1470,11 @@ void CallModelPrivate::slotAudioMuted( const QString& callId, bool state) Call* call = q_ptr->getCall(callId); if (call) { - auto a = call->firstMedia<Media::Audio>(Media::Media::Direction::OUT); + auto a = call->firstMedia<media::Audio>(media::Media::Direction::OUT); if (state) - a->Media::d_ptr->muteConfirmed(); + a->media::Media::d_ptr->muteConfirmed(); else - a->Media::d_ptr->unmuteConfirmed(); + a->media::Media::d_ptr->unmuteConfirmed(); } } @@ -1479,11 +1483,11 @@ void CallModelPrivate::slotVideoMutex( const QString& callId, bool state) Call* call = q_ptr->getCall(callId); if (call) { - auto v = call->firstMedia<Media::Video>(Media::Media::Direction::OUT); + auto v = call->firstMedia<media::Video>(media::Media::Direction::OUT); if (state) - v->Media::d_ptr->muteConfirmed(); + v->media::Media::d_ptr->muteConfirmed(); else - v->Media::d_ptr->unmuteConfirmed(); + v->media::Media::d_ptr->unmuteConfirmed(); } } diff --git a/src/callmodel.h b/src/callmodel.h index 42c46ba000d9423d42f639a07713bbe71340e5cf..92c61c80c65943dcd9c42a574b0053897388223b 100644 --- a/src/callmodel.h +++ b/src/callmodel.h @@ -157,10 +157,10 @@ Q_SIGNALS: ///Emitted when a new Video::Renderer is removed void rendererRemoved ( Call* call, Video::Renderer* renderer ); ///Notify when a media is added - void mediaAdded ( Call* call, Media::Media* media ); + void mediaAdded ( Call* call, media::Media* media ); ///Notify when the dial (search) field changed void dialNumberChanged ( Call* call, const QString& entry ); ///Notify when a media state change - void mediaStateChanged( Call* call, Media::Media* media, const Media::Media::State s, const Media::Media::State m); + void mediaStateChanged( Call* call, media::Media* media, const media::Media::State s, const media::Media::State m); }; Q_DECLARE_METATYPE(CallModel*) diff --git a/src/contactmethod.cpp b/src/contactmethod.cpp index 345209703f4e1a537744e536fa452ee945fcf8b4..b3a55399cf4c7983942f93d3bd942a4c1417c7ec 100644 --- a/src/contactmethod.cpp +++ b/src/contactmethod.cpp @@ -833,10 +833,10 @@ bool ContactMethod::operator==(const ContactMethod& other) const return this->d_ptr== other.d_ptr; } -Media::TextRecording* ContactMethod::textRecording() const +media::TextRecording* ContactMethod::textRecording() const { if (!d_ptr->m_pTextRecording) { - d_ptr->m_pTextRecording = Media::RecordingModel::instance().createTextRecording(this); + d_ptr->m_pTextRecording = media::RecordingModel::instance().createTextRecording(this); } return d_ptr->m_pTextRecording; @@ -889,7 +889,7 @@ void ContactMethodPrivate::setCertificate(Certificate* certificate) certificate->setContactMethod(q_ptr); } -void ContactMethodPrivate::setTextRecording(Media::TextRecording* r) +void ContactMethodPrivate::setTextRecording(media::TextRecording* r) { m_pTextRecording = r; } @@ -906,7 +906,7 @@ bool ContactMethod::sendOfflineTextMessage(const QMap<QString,QString>& payloads auto id = ConfigurationManager::instance().sendTextMessage(selectedAccount->id() ,uri().format(URI::Section::SCHEME|URI::Section::USER_INFO|URI::Section::HOSTNAME) ,payloads); - txtRecording->d_ptr->insertNewMessage(payloads, this, Media::Media::Direction::OUT, id); + txtRecording->d_ptr->insertNewMessage(payloads, this, media::Media::Direction::OUT, id); return true; } diff --git a/src/contactmethod.h b/src/contactmethod.h index ef2c1389b9eef91135dd43fafa32c7db758ca074..5502177f1eb63b072734ae4594e3e554e9368bf7 100644 --- a/src/contactmethod.h +++ b/src/contactmethod.h @@ -41,7 +41,7 @@ class TemporaryContactMethodPrivate; class InstantMessagingModel; class Certificate; -namespace Media { +namespace media { class TextRecording; } @@ -133,7 +133,7 @@ public: QString uid () const; URI::ProtocolHint protocolHint () const; QByteArray sha1 () const; - Media::TextRecording* textRecording () const; + media::TextRecording* textRecording () const; bool isReachable () const; Certificate* certificate () const; QString registeredName () const; diff --git a/src/dbus/callmanager.h b/src/dbus/callmanager.h index b1ff6df8592815807c14a870487f953cad92a66f..4e51083132ea747ade0f45a13f32c4f98de4590d 100644 --- a/src/dbus/callmanager.h +++ b/src/dbus/callmanager.h @@ -33,6 +33,6 @@ namespace CallManager { ///Singleton to access dbus "CallManager" interface -CallManagerInterface& LIB_EXPORT instance(); +LIB_EXPORT CallManagerInterface& instance(); } diff --git a/src/dbus/configurationmanager.h b/src/dbus/configurationmanager.h index 45cd323da94272472a0d6b18043429b10f7f8859..78842f596bceafe3ba663ff1a9c3d068658efd53 100644 --- a/src/dbus/configurationmanager.h +++ b/src/dbus/configurationmanager.h @@ -33,6 +33,6 @@ namespace ConfigurationManager { ///Singleton to access the ConfigurationManager dbus interface -ConfigurationManagerInterface& LIB_EXPORT instance(); +LIB_EXPORT ConfigurationManagerInterface& instance(); } diff --git a/src/dbus/instancemanager.cpp b/src/dbus/instancemanager.cpp index 397094dc2117240b1c3114d0c0fb65020c24d6eb..6e27b5889bf28ee86f08c7fb06ea803126b6eb4b 100644 --- a/src/dbus/instancemanager.cpp +++ b/src/dbus/instancemanager.cpp @@ -19,7 +19,11 @@ #include "instancemanager.h" -#include <unistd.h> +#ifndef _MSC_VER +#include <unistd.h> +#else +#include "../../daemon/MSVC/unistd.h" +#endif // !_MSC_VER #include "../globalinstances.h" #include "../interfaces/dbuserrorhandleri.h" diff --git a/src/dbus/instancemanager.h b/src/dbus/instancemanager.h index 80d1b1cab8a4b64d5b5b467d2725a171dbf5d5ba..2a324535899d51f3336dd9e312d89f2dfe73136a 100644 --- a/src/dbus/instancemanager.h +++ b/src/dbus/instancemanager.h @@ -32,6 +32,6 @@ namespace InstanceManager { -InstanceManagerInterface& LIB_EXPORT instance(); +LIB_EXPORT InstanceManagerInterface& instance(); } diff --git a/src/dbus/presencemanager.h b/src/dbus/presencemanager.h index 64314ca8be2d1ccdcb7dca608305e3941d11bec7..ab08ac5656305f11025a5be472c82df70ab05f82 100644 --- a/src/dbus/presencemanager.h +++ b/src/dbus/presencemanager.h @@ -31,6 +31,6 @@ namespace PresenceManager { -PresenceManagerInterface& LIB_EXPORT instance(); +LIB_EXPORT PresenceManagerInterface& instance(); } diff --git a/src/dbus/videomanager.h b/src/dbus/videomanager.h index 92c52b42354c8d894e7fb49874fb29652922b802..c6ac81a3b158ba4a1022bb3e3be0b1c929f0a503 100644 --- a/src/dbus/videomanager.h +++ b/src/dbus/videomanager.h @@ -32,6 +32,6 @@ namespace VideoManager { -VideoManagerInterface& LIB_EXPORT instance(); +LIB_EXPORT VideoManagerInterface& instance(); } diff --git a/src/historytimecategorymodel.cpp b/src/historytimecategorymodel.cpp index 86a59931e219462cc98f8cc4f227c8e5251f9a51..69cf3dc8094873acc33ac26f42cba07eb1ed5fb5 100644 --- a/src/historytimecategorymodel.cpp +++ b/src/historytimecategorymodel.cpp @@ -21,6 +21,16 @@ #include <QtCore/QDate> #include <time.h> +#ifdef _MSC_VER +struct tm *localtime_r(const time_t *_clock, struct tm *_result) +{ + struct tm *p = localtime(_clock); + if (p) + *(_result) = *p; + return p; +} +#endif + class HistoryTimeCategoryModelPrivate { public: diff --git a/src/localhistorycollection.cpp b/src/localhistorycollection.cpp index 6e87a213fef1de673fcec990fa71f7d2bc91b267..0a679c59d2c5f416428b7e792d723aea32f1b9c0 100644 --- a/src/localhistorycollection.cpp +++ b/src/localhistorycollection.cpp @@ -99,8 +99,8 @@ void LocalHistoryEditor::saveCall(QTextStream& stream, const Call* call) stream << QString("%1=%2\n").arg(Call::HistoryMapFields::CONTACT_USED ).arg(false );//TODO //TODO handle more than one recording - if (call->hasRecording(Media::Media::Type::AUDIO,Media::Media::Direction::IN)) { - stream << QString("%1=%2\n").arg(Call::HistoryMapFields::RECORDING_PATH ).arg(((Media::AVRecording*)call->recordings(Media::Media::Type::AUDIO,Media::Media::Direction::IN)[0])->path().path()); + if (call->hasRecording(media::Media::Type::AUDIO,media::Media::Direction::IN)) { + stream << QString("%1=%2\n").arg(Call::HistoryMapFields::RECORDING_PATH ).arg(((media::AVRecording*)call->recordings(media::Media::Type::AUDIO,media::Media::Direction::IN)[0])->path().path()); } if (call->peerContactMethod()->contact()) { diff --git a/src/localrecordingcollection.cpp b/src/localrecordingcollection.cpp index d38270cdef2addfc2d9691bf40d63b2ce9c35aaf..e9920add4200c5a5105f245ace1d21b0bfa1f879 100644 --- a/src/localrecordingcollection.cpp +++ b/src/localrecordingcollection.cpp @@ -26,23 +26,23 @@ #include <media/recording.h> #include <media/avrecording.h> -class LocalRecordingEditor final : public CollectionEditor<Media::Recording> +class LocalRecordingEditor final : public CollectionEditor<media::Recording> { public: - LocalRecordingEditor(CollectionMediator<Media::Recording>* m) : CollectionEditor<Media::Recording>(m) {} - virtual bool save ( const Media::Recording* item ) override; - virtual bool remove ( const Media::Recording* item ) override; - virtual bool edit ( Media::Recording* item ) override; - virtual bool addNew ( Media::Recording* item ) override; - virtual bool addExisting( const Media::Recording* item ) override; + LocalRecordingEditor(CollectionMediator<media::Recording>* m) : CollectionEditor<media::Recording>(m) {} + virtual bool save ( const media::Recording* item ) override; + virtual bool remove ( const media::Recording* item ) override; + virtual bool edit (media::Recording* item ) override; + virtual bool addNew (media::Recording* item ) override; + virtual bool addExisting( const media::Recording* item ) override; private: - virtual QVector<Media::Recording*> items() const override; + virtual QVector<media::Recording*> items() const override; //Attributes - QVector<Media::Recording*> m_lNumbers; + QVector<media::Recording*> m_lNumbers; }; -LocalRecordingCollection::LocalRecordingCollection(CollectionMediator<Media::Recording>* mediator) : +LocalRecordingCollection::LocalRecordingCollection(CollectionMediator<media::Recording>* mediator) : CollectionInterface(new LocalRecordingEditor(mediator)) { load(); @@ -55,43 +55,43 @@ LocalRecordingCollection::~LocalRecordingCollection() LocalRecordingCollection& LocalRecordingCollection::instance() { - static auto instance = Media::RecordingModel::instance().addCollection<LocalRecordingCollection>(); + static auto instance = media::RecordingModel::instance().addCollection<LocalRecordingCollection>(); return *instance; } -bool LocalRecordingEditor::save(const Media::Recording* recording) +bool LocalRecordingEditor::save(const media::Recording* recording) { Q_UNUSED(recording) return true; } -bool LocalRecordingEditor::remove(const Media::Recording* item) +bool LocalRecordingEditor::remove(const media::Recording* item) { Q_UNUSED(item) //TODO return false; } -bool LocalRecordingEditor::edit( Media::Recording* item) +bool LocalRecordingEditor::edit(media::Recording* item) { Q_UNUSED(item) return false; } -bool LocalRecordingEditor::addNew( Media::Recording* item) +bool LocalRecordingEditor::addNew(media::Recording* item) { addExisting(item); return save(item); } -bool LocalRecordingEditor::addExisting(const Media::Recording* item) +bool LocalRecordingEditor::addExisting(const media::Recording* item) { - m_lNumbers << const_cast<Media::Recording*>(item); + m_lNumbers << const_cast<media::Recording*>(item); mediator()->addItem(item); return false; } -QVector<Media::Recording*> LocalRecordingEditor::items() const +QVector<media::Recording*> LocalRecordingEditor::items() const { return m_lNumbers; } @@ -148,11 +148,11 @@ QByteArray LocalRecordingCollection::id() const return "localrecording"; } -Media::Recording* LocalRecordingCollection::addFromPath(const QString& path) +media::Recording* LocalRecordingCollection::addFromPath(const QString& path) { - Media::AVRecording* rec = new Media::AVRecording(); + media::AVRecording* rec = new media::AVRecording(); rec->setPath(path); - editor<Media::Recording>()->addExisting(rec); + editor<media::Recording>()->addExisting(rec); return rec; } diff --git a/src/localrecordingcollection.h b/src/localrecordingcollection.h index 5ac58e75f34768acbe68b97a5dc55596dd6a453a..d81561e1471f2ccec655968b242d6e64a7655095 100644 --- a/src/localrecordingcollection.h +++ b/src/localrecordingcollection.h @@ -21,14 +21,14 @@ #include <typedefs.h> #include <collectioneditor.h> -namespace Media { +namespace media { class Recording; } class LIB_EXPORT LocalRecordingCollection : public CollectionInterface { public: - explicit LocalRecordingCollection(CollectionMediator<Media::Recording>* mediator); + explicit LocalRecordingCollection(CollectionMediator<media::Recording>* mediator); virtual ~LocalRecordingCollection(); virtual bool load () override; @@ -44,7 +44,7 @@ public: virtual FlagPack<SupportedFeatures> supportedFeatures() const override; //Mutator - Media::Recording* addFromPath(const QString& path); + media::Recording* addFromPath(const QString& path); static LocalRecordingCollection& instance(); diff --git a/src/localtextrecordingcollection.cpp b/src/localtextrecordingcollection.cpp index 1d0f33d27239e7da5a1ff4bd9f82297526142814..c8e57ca5d7acd89e36ed16c4be46171049b2e2ec 100644 --- a/src/localtextrecordingcollection.cpp +++ b/src/localtextrecordingcollection.cpp @@ -46,26 +46,26 @@ * concatenated then hashed in sha1 again. */ -class LocalTextRecordingEditor final : public CollectionEditor<Media::Recording> +class LocalTextRecordingEditor final : public CollectionEditor<media::Recording> { public: - LocalTextRecordingEditor(CollectionMediator<Media::Recording>* m) : CollectionEditor<Media::Recording>(m) {} - virtual bool save ( const Media::Recording* item ) override; - virtual bool remove ( const Media::Recording* item ) override; - virtual bool edit ( Media::Recording* item ) override; - virtual bool addNew ( Media::Recording* item ) override; - virtual bool addExisting( const Media::Recording* item ) override; + LocalTextRecordingEditor(CollectionMediator<media::Recording>* m) : CollectionEditor<media::Recording>(m) {} + virtual bool save ( const media::Recording* item ) override; + virtual bool remove ( const media::Recording* item ) override; + virtual bool edit ( media::Recording* item ) override; + virtual bool addNew ( media::Recording* item ) override; + virtual bool addExisting( const media::Recording* item ) override; QString fetch(const QByteArray& sha1); void clearAll(); private: - virtual QVector<Media::Recording*> items() const override; + virtual QVector<media::Recording*> items() const override; //Attributes - QVector<Media::Recording*> m_lNumbers; + QVector<media::Recording*> m_lNumbers; }; -LocalTextRecordingCollection::LocalTextRecordingCollection(CollectionMediator<Media::Recording>* mediator) : +LocalTextRecordingCollection::LocalTextRecordingCollection(CollectionMediator<media::Recording>* mediator) : CollectionInterface(new LocalTextRecordingEditor(mediator)) { load(); @@ -78,14 +78,14 @@ LocalTextRecordingCollection::~LocalTextRecordingCollection() LocalTextRecordingCollection& LocalTextRecordingCollection::instance() { - static auto instance = Media::RecordingModel::instance().addCollection<LocalTextRecordingCollection>(); + static auto instance = media::RecordingModel::instance().addCollection<LocalTextRecordingCollection>(); return *instance; } -bool LocalTextRecordingEditor::save(const Media::Recording* recording) +bool LocalTextRecordingEditor::save(const media::Recording* recording) { Q_UNUSED(recording) - QHash<QByteArray,QByteArray> ret = static_cast<const Media::TextRecording*>(recording)->d_ptr->toJsons(); + QHash<QByteArray,QByteArray> ret = static_cast<const media::TextRecording*>(recording)->d_ptr->toJsons(); QDir dir(QStandardPaths::writableLocation(QStandardPaths::DataLocation)); @@ -110,36 +110,36 @@ bool LocalTextRecordingEditor::save(const Media::Recording* recording) void LocalTextRecordingEditor::clearAll() { - for (Media::Recording *recording : items()) { - auto textRecording = qobject_cast<Media::TextRecording*>(recording); + for (media::Recording *recording : items()) { + auto textRecording = qobject_cast<media::TextRecording*>(recording); textRecording->d_ptr->clear(); save(recording); } } -bool LocalTextRecordingEditor::remove(const Media::Recording* item) +bool LocalTextRecordingEditor::remove(const media::Recording* item) { Q_UNUSED(item) //TODO return false; } -bool LocalTextRecordingEditor::edit( Media::Recording* item) +bool LocalTextRecordingEditor::edit( media::Recording* item) { Q_UNUSED(item) return false; } -bool LocalTextRecordingEditor::addNew( Media::Recording* item) +bool LocalTextRecordingEditor::addNew( media::Recording* item) { Q_UNUSED(item) addExisting(item); return save(item); } -bool LocalTextRecordingEditor::addExisting(const Media::Recording* item) +bool LocalTextRecordingEditor::addExisting(const media::Recording* item) { - m_lNumbers << const_cast<Media::Recording*>(item); + m_lNumbers << const_cast<media::Recording*>(item); mediator()->addItem(item); return false; } @@ -155,7 +155,7 @@ QString LocalTextRecordingEditor::fetch(const QByteArray& sha1) return QString::fromUtf8(file.readAll()); } -QVector<Media::Recording*> LocalTextRecordingEditor::items() const +QVector<media::Recording*> LocalTextRecordingEditor::items() const { return m_lNumbers; } @@ -206,9 +206,9 @@ bool LocalTextRecordingCollection::load() QJsonDocument loadDoc = QJsonDocument::fromJson(content.toUtf8(), &err); if (err.error == QJsonParseError::ParseError::NoError) { - Media::TextRecording* r = Media::TextRecording::fromJson({loadDoc.object()}, nullptr, this); + media::TextRecording* r = media::TextRecording::fromJson({loadDoc.object()}, nullptr, this); - editor<Media::Recording>()->addExisting(r); + editor<media::Recording>()->addExisting(r); // get CMs from recording for (ContactMethod *cm : r->peers()) { @@ -255,7 +255,7 @@ FlagPack<CollectionInterface::SupportedFeatures> LocalTextRecordingCollection::s bool LocalTextRecordingCollection::clear() { - static_cast<LocalTextRecordingEditor *>(editor<Media::Recording>())->clearAll(); + static_cast<LocalTextRecordingEditor *>(editor<media::Recording>())->clearAll(); QDir dir(QStandardPaths::writableLocation(QStandardPaths::DataLocation) + "/text"); @@ -303,10 +303,10 @@ bool LocalTextRecordingCollection::fetch( const QList<CollectionInterface::Eleme return false; } -Media::TextRecording* LocalTextRecordingCollection::fetchFor(const ContactMethod* cm) +media::TextRecording* LocalTextRecordingCollection::fetchFor(const ContactMethod* cm) { const QByteArray& sha1 = cm->sha1(); - const QString content = static_cast<LocalTextRecordingEditor*>(editor<Media::Recording>())->fetch(sha1); + const QString content = static_cast<LocalTextRecordingEditor*>(editor<media::Recording>())->fetch(sha1); if (content.isEmpty()) return nullptr; @@ -319,19 +319,19 @@ Media::TextRecording* LocalTextRecordingCollection::fetchFor(const ContactMethod return nullptr; } - Media::TextRecording* r = Media::TextRecording::fromJson({loadDoc.object()}, cm, this); + media::TextRecording* r = media::TextRecording::fromJson({loadDoc.object()}, cm, this); - editor<Media::Recording>()->addExisting(r); + editor<media::Recording>()->addExisting(r); return r; } -Media::TextRecording* LocalTextRecordingCollection::createFor(const ContactMethod* cm) +media::TextRecording* LocalTextRecordingCollection::createFor(const ContactMethod* cm) { - Media::TextRecording* r = fetchFor(cm); + media::TextRecording* r = fetchFor(cm); if (!r) { - r = new Media::TextRecording(); + r = new media::TextRecording(); r->setCollection(this); cm->d_ptr->setTextRecording(r); } diff --git a/src/localtextrecordingcollection.h b/src/localtextrecordingcollection.h index 3334841e7019b001950ce8aa3dca4950cea01d3c..bbf79a7819ff620716c2427d66ac2d2bfd39f592 100644 --- a/src/localtextrecordingcollection.h +++ b/src/localtextrecordingcollection.h @@ -22,7 +22,7 @@ #include <typedefs.h> -namespace Media { +namespace media { class Recording; class TextRecording; } @@ -30,7 +30,7 @@ namespace Media { class LIB_EXPORT LocalTextRecordingCollection : public CollectionInterface { public: - explicit LocalTextRecordingCollection(CollectionMediator<Media::Recording>* mediator); + explicit LocalTextRecordingCollection(CollectionMediator<media::Recording>* mediator); virtual ~LocalTextRecordingCollection(); virtual bool load () override; @@ -47,8 +47,8 @@ public: virtual bool listId(std::function<void(const QList<Element>)> callback) const override; virtual QList<Element> listId() const override; - Media::TextRecording* fetchFor (const ContactMethod* cm); - Media::TextRecording* createFor(const ContactMethod* cm); + media::TextRecording* fetchFor (const ContactMethod* cm); + media::TextRecording* createFor(const ContactMethod* cm); virtual FlagPack<SupportedFeatures> supportedFeatures() const override; diff --git a/src/media/audio.cpp b/src/media/audio.cpp index 062b26517b932825ea563a93eff82ffb22d3eb5d..a5f6320c9f8412e5e29f1444335fd2f994c37ad9 100644 --- a/src/media/audio.cpp +++ b/src/media/audio.cpp @@ -28,29 +28,30 @@ class MediaAudioPrivate { }; -Media::Audio::Audio(Call* parent, const Media::Direction direction) : Media::Media(parent, direction), d_ptr(new MediaAudioPrivate()) +media::Audio::Audio(Call* parent, const media::Media::Direction direction) : + media::Media(parent, direction), d_ptr(new MediaAudioPrivate()) { Q_ASSERT(parent); } -Media::Media::Type Media::Audio::type() +media::Media::Type media::Audio::type() { - return Media::Media::Type::AUDIO; + return media::Media::Type::AUDIO; } -bool Media::Audio::mute() +bool media::Audio::mute() { CallManagerInterface& callManager = CallManager::instance(); - return callManager.muteLocalMedia(call()->dringId(),DRing::Media::Details::MEDIA_TYPE_AUDIO,true); + return callManager.muteLocalMedia(call()->dringId(), DRing::Media::Details::MEDIA_TYPE_AUDIO,true); } -bool Media::Audio::unmute() +bool media::Audio::unmute() { CallManagerInterface& callManager = CallManager::instance(); - return callManager.muteLocalMedia(call()->dringId(),DRing::Media::Details::MEDIA_TYPE_AUDIO,false); + return callManager.muteLocalMedia(call()->dringId(), DRing::Media::Details::MEDIA_TYPE_AUDIO,false); } -Media::Audio::~Audio() +media::Audio::~Audio() { delete d_ptr; } \ No newline at end of file diff --git a/src/media/audio.h b/src/media/audio.h index cda4843df0c57bc9ca12ed1100ffb6aceed6f709..bce09e058a1327c82050ec8e021f466e343dc5ed 100644 --- a/src/media/audio.h +++ b/src/media/audio.h @@ -24,9 +24,9 @@ class MediaAudioPrivate; class Call; class CallPrivate; -namespace Media { +namespace media { -class LIB_EXPORT Audio : public Media::Media +class LIB_EXPORT Audio : public media::Media { friend class ::CallPrivate; public: diff --git a/src/media/avrecording.cpp b/src/media/avrecording.cpp index 66a56d12f20d02db7013d8e701b94bb10c955077..9fa4824d75d92c9e441a8ac3b1c2d7a989ae54d2 100644 --- a/src/media/avrecording.cpp +++ b/src/media/avrecording.cpp @@ -23,7 +23,7 @@ //Ring #include <callmodel.h> -namespace Media { +namespace media { class AVRecordingPrivate { public: @@ -65,12 +65,12 @@ public: RecordingPlaybackManager(); //Attributes - QList<Media::AVRecording*> m_lActiveRecordings; - QHash<QString,Media::AVRecording*> m_hActiveRecordings; + QList<media::AVRecording*> m_lActiveRecordings; + QHash<QString, media::AVRecording*> m_hActiveRecordings; //Mutator - void activateRecording (Media::AVRecording* r); - void desactivateRecording(Media::AVRecording* r); + void activateRecording (media::AVRecording* r); + void desactivateRecording(media::AVRecording* r); //Singleton static RecordingPlaybackManager& instance(); @@ -97,29 +97,29 @@ RecordingPlaybackManager& RecordingPlaybackManager::instance() } -Media::AVRecordingPrivate::AVRecordingPrivate(AVRecording* r) : q_ptr(r),m_Position(0.0),m_Duration(0),m_IsPaused(false), +media::AVRecordingPrivate::AVRecordingPrivate(AVRecording* r) : q_ptr(r),m_Position(0.0),m_Duration(0),m_IsPaused(false), m_Elapsed(0),m_Left(0) { } -Media::AVRecording::AVRecording() : Recording(Recording::Type::AUDIO_VIDEO), d_ptr(new AVRecordingPrivate(this)) +media::AVRecording::AVRecording() : Recording(Recording::Type::AUDIO_VIDEO), d_ptr(new AVRecordingPrivate(this)) { } -Media::AVRecording::~AVRecording() +media::AVRecording::~AVRecording() { delete d_ptr; } ///Return this recording path, if any -QUrl Media::AVRecording::path() const +QUrl media::AVRecording::path() const { return d_ptr->m_Path; } ///Get the current playback position (0.0 if not playing) -Media::AVRecording::Position Media::AVRecording::position() const +media::AVRecording::Position media::AVRecording::position() const { return d_ptr->m_Position; } @@ -128,7 +128,7 @@ Media::AVRecording::Position Media::AVRecording::position() const * Recording duration (in seconds). This is only available for audio/video * recordings and only after playback started. */ -int Media::AVRecording::duration() const +int media::AVRecording::duration() const { return d_ptr->m_Duration; } @@ -146,31 +146,31 @@ int Media::AVRecording::duration() const } ///Get the a string in format hhh:mm:ss for the time elapsed since the playback started -QString Media::AVRecording::formattedTimeElapsed() const +QString media::AVRecording::formattedTimeElapsed() const { FORMATTED_TIME_MACRO(d_ptr->m_Elapsed); } ///Get the a string in format hhh:mm:ss for the total time of this recording -QString Media::AVRecording::formattedDuration() const +QString media::AVRecording::formattedDuration() const { FORMATTED_TIME_MACRO(d_ptr->m_Duration); } ///Get the a string in format hhh:mm:ss for the time elapsed before the playback end -QString Media::AVRecording::formattedTimeLeft() const +QString media::AVRecording::formattedTimeLeft() const { FORMATTED_TIME_MACRO(d_ptr->m_Left); } #undef FORMATTED_TIME_MACRO -void Media::AVRecording::setPath(const QUrl& path) +void media::AVRecording::setPath(const QUrl& path) { d_ptr->m_Path = path; } ///Play (or resume) the playback -void Media::AVRecording::play() +void media::AVRecording::play() { RecordingPlaybackManager::instance().activateRecording(this); @@ -186,7 +186,7 @@ void Media::AVRecording::play() } ///Stop the playback, cancel any pause point -void Media::AVRecording::stop() +void media::AVRecording::stop() { CallManagerInterface& callManager = CallManager::instance(); Q_NOREPLY callManager.stopRecordedFilePlayback(); @@ -197,7 +197,7 @@ void Media::AVRecording::stop() } ///Pause (or resume) -void Media::AVRecording::pause() +void media::AVRecording::pause() { if (d_ptr->m_IsPaused) { play(); @@ -213,20 +213,20 @@ void Media::AVRecording::pause() * @note only available during playback * @args pos The position, in percent */ -void Media::AVRecording::seek(AVRecording::Position pos) +void media::AVRecording::seek(AVRecording::Position pos) { CallManagerInterface& callManager = CallManager::instance(); Q_NOREPLY callManager.recordPlaybackSeek(pos); } ///Move the playback position to the origin -void Media::AVRecording::reset() +void media::AVRecording::reset() { seek(0.0); } ///Update all internal playback metadatas -void Media::AVRecordingPrivate::notifySeek(int position, int size) +void media::AVRecordingPrivate::notifySeek(int position, int size) { const int oldElapsed = m_Elapsed ; const int oldDuration = m_Duration; @@ -258,7 +258,7 @@ void RecordingPlaybackManager::slotRecordPlaybackFilepath(const QString& callID, ///Callback when a recording stop void RecordingPlaybackManager::slotRecordPlaybackStopped(const QString& filepath) { - Media::AVRecording* r = m_hActiveRecordings[filepath]; + media::AVRecording* r = m_hActiveRecordings[filepath]; if (r) { desactivateRecording(r); } @@ -267,7 +267,7 @@ void RecordingPlaybackManager::slotRecordPlaybackStopped(const QString& filepath ///Callback when a recording position changed void RecordingPlaybackManager::slotUpdatePlaybackScale(const QString& filepath, int position, int size) { - Media::AVRecording* r = m_hActiveRecordings[filepath]; + media::AVRecording* r = m_hActiveRecordings[filepath]; if (r) { r->d_ptr->notifySeek(position, size); @@ -277,14 +277,14 @@ void RecordingPlaybackManager::slotUpdatePlaybackScale(const QString& filepath, } ///To avoid having to keep a list of all recording, manage a small active recording list -void RecordingPlaybackManager::activateRecording(Media::AVRecording* r) +void RecordingPlaybackManager::activateRecording(media::AVRecording* r) { m_lActiveRecordings << r; m_hActiveRecordings[r->path().path()] = r; } ///To avoid having to keep a list of all recording, manage a small active recording list -void RecordingPlaybackManager::desactivateRecording(Media::AVRecording* r) +void RecordingPlaybackManager::desactivateRecording(media::AVRecording* r) { m_lActiveRecordings.removeAll(r); m_hActiveRecordings.remove(m_hActiveRecordings.key(r)); diff --git a/src/media/avrecording.h b/src/media/avrecording.h index f5b70983703c00b9a7aca3dba21cc8f0acc54740..91c3de1fd399ce9cbb1f8c52b9909ad6d6213a61 100644 --- a/src/media/avrecording.h +++ b/src/media/avrecording.h @@ -21,7 +21,7 @@ #include <QtCore/QUrl> -namespace Media { +namespace media { class AVRecordingPrivate; diff --git a/src/media/file.cpp b/src/media/file.cpp index c62d5a5551c5e9f7a30a38d37d7df6282cd2501c..7024bbbd6ce6623158dce2992803662736f5cc49 100644 --- a/src/media/file.cpp +++ b/src/media/file.cpp @@ -28,17 +28,17 @@ class MediaFilePrivate { }; -Media::File::File(Call* parent, const Media::Direction direction) : Media::Media(parent, direction), d_ptr(new MediaFilePrivate()) +media::File::File(Call* parent, const Media::Direction direction) : media::Media(parent, direction), d_ptr(new MediaFilePrivate()) { Q_ASSERT(parent); } -Media::Media::Type Media::File::type() +media::Media::Type media::File::type() { - return Media::Media::Type::FILE; + return media::Media::Type::FILE; } -Media::File::~File() +media::File::~File() { delete d_ptr; } \ No newline at end of file diff --git a/src/media/file.h b/src/media/file.h index cc52a3a014429a097f677f946558416e4ca110d4..e12241ee65ce7cee119e533b6b142c21853f2990 100644 --- a/src/media/file.h +++ b/src/media/file.h @@ -24,9 +24,9 @@ class MediaFilePrivate; class Call; class CallPrivate; -namespace Media { +namespace media { -class LIB_EXPORT File : public Media::Media +class LIB_EXPORT File : public media::Media { friend class ::CallPrivate; public: diff --git a/src/media/media.cpp b/src/media/media.cpp index df60f04618fd721baa17cb7b0954297262689be6..4d85826dec96d3a977440a3731e485841a243228 100644 --- a/src/media/media.cpp +++ b/src/media/media.cpp @@ -20,7 +20,7 @@ #include "../private/media_p.h" #include <call.h> -const Matrix2D<Media::Media::State, Media::Media::Action, bool> Media::MediaPrivate::m_mValidTransitions ={{ +const Matrix2D<media::Media::State, media::Media::Action, bool> media::MediaPrivate::m_mValidTransitions ={{ /* MUTE UNMUTE TERMINATE */ /* ACTIVE */ {{ true , true , true }}, /* MUTED */ {{ true , true , true }}, @@ -30,7 +30,7 @@ const Matrix2D<Media::Media::State, Media::Media::Action, bool> Media::MediaPriv //Use the Media::MediaPrivate wrapper to avoid vtable issues #define MEDF &MediaPrivate -const Matrix2D<Media::Media::State, Media::Media::Action, Media::MediaTransitionFct> Media::MediaPrivate::m_mCallbacks ={{ +const Matrix2D<media::Media::State, media::Media::Action, media::MediaTransitionFct> media::MediaPrivate::m_mCallbacks ={{ /* MUTE UNMUTE TERMINATE */ /* ACTIVE */ {{ MEDF::mute , MEDF::nothing , MEDF::terminate }}, /* MUTED */ {{ MEDF::nothing , MEDF::unmute , MEDF::terminate }}, @@ -39,22 +39,23 @@ const Matrix2D<Media::Media::State, Media::Media::Action, Media::MediaTransition }}; #undef MEDF -namespace Media { +namespace media { MediaPrivate::MediaPrivate(Media* parent) : - m_State(Media::Media::State::ACTIVE),m_pCall(nullptr),q_ptr(parent),m_Direction(Media::Direction::OUT) + m_State(media::Media::State::ACTIVE),m_pCall(nullptr),q_ptr(parent),m_Direction(Media::Direction::OUT) { } -Media::Media(Call* parent, const Direction dir) : QObject(parent), d_ptr(new MediaPrivate(this)) +media::Media::Media(Call* parent, const media::Media::Direction dir) : + QObject(parent), d_ptr(new MediaPrivate(this)) { Q_ASSERT(parent); d_ptr->m_pCall = parent; d_ptr->m_Direction = dir; } -Media::~Media() +media::Media::~Media() { delete d_ptr; } @@ -68,59 +69,59 @@ Media::~Media() * * @return if the operation has already failed */ -bool Media::Media::mute() +bool media::Media::mute() { return false; } -bool Media::Media::unmute() +bool media::Media::unmute() { return false; } -bool Media::Media::terminate() +bool media::Media::terminate() { return false; } -bool Media::MediaPrivate::mute() +bool media::MediaPrivate::mute() { return q_ptr->mute(); } -bool Media::MediaPrivate::unmute() +bool media::MediaPrivate::unmute() { return q_ptr->unmute(); } -bool Media::MediaPrivate::terminate() +bool media::MediaPrivate::terminate() { return q_ptr->terminate(); } -bool Media::MediaPrivate::nothing() +bool media::MediaPrivate::nothing() { return true; } -Call* Media::Media::call() const +Call* media::Media::call() const { return d_ptr->m_pCall; } -Media::Media::Direction Media::Media::direction() const +media::Media::Direction media::Media::direction() const { return d_ptr->m_Direction; } -Media::Media::State Media::Media::state() const +media::Media::State media::Media::state() const { return d_ptr->m_State; } -bool Media::Media::performAction(const Media::Media::Action action) +bool media::Media::performAction(const media::Media::Action action) { - const Media::Media::State s = d_ptr->m_State; + const media::Media::State s = d_ptr->m_State; //TODO implement a state machine const bool ret = (d_ptr->*(d_ptr->m_mCallbacks)[d_ptr->m_State][action])(); @@ -132,34 +133,34 @@ bool Media::Media::performAction(const Media::Media::Action action) return ret; } -Media::Media* operator<<(Media::Media* m, Media::Media::Action a) +media::Media* operator<<(media::Media* m, media::Media::Action a) { m->performAction(a); return m; } -void Media::MediaPrivate::muteConfirmed() +void media::MediaPrivate::muteConfirmed() { const auto ll = m_State; - m_State = Media::Media::State::MUTED; + m_State = media::Media::State::MUTED; emit q_ptr->stateChanged(m_State, ll); } -void Media::MediaPrivate::unmuteConfirmed() +void media::MediaPrivate::unmuteConfirmed() { const auto ll = m_State; switch(q_ptr->type()) { - case Media::Media::Type::AUDIO: - case Media::Media::Type::VIDEO: - case Media::Media::Type::FILE: - m_State = Media::Media::State::ACTIVE; + case media::Media::Type::AUDIO: + case media::Media::Type::VIDEO: + case media::Media::Type::FILE: + m_State = media::Media::State::ACTIVE; emit q_ptr->stateChanged(m_State, ll); break; - case Media::Media::Type::TEXT: - m_State = Media::Media::State::IDLE; + case media::Media::Type::TEXT: + m_State = media::Media::State::IDLE; emit q_ptr->stateChanged(m_State, ll); break; - case Media::Media::Type::COUNT__: + case media::Media::Type::COUNT__: break; }; } diff --git a/src/media/media.h b/src/media/media.h index 3570e50e3e3d82ae40cd68d1e6340869265ee3a5..5f4ef3e4d30a6d15be0298e5e8e8d5744d03e28c 100644 --- a/src/media/media.h +++ b/src/media/media.h @@ -24,11 +24,11 @@ class Call; class CallModelPrivate; -namespace Media { +namespace media { class MediaPrivate; } -namespace Media { +namespace media { class LIB_EXPORT Media : public QObject { @@ -76,7 +76,7 @@ public: Direction direction() const; //Getters - Media::Media::State state() const; + media::Media::State state() const; bool performAction(const Media::Action); //TODO add an abstract history getter with specialisation per media @@ -101,6 +101,6 @@ private: }; } -Q_DECLARE_METATYPE(Media::Media::Direction) +Q_DECLARE_METATYPE(media::Media::Direction) -Media::Media* operator<<(Media::Media* m, Media::Media::Action a); +media::Media* operator<<(media::Media* m, media::Media::Action a); diff --git a/src/media/recording.cpp b/src/media/recording.cpp index 96bea41157a01a9ea70540834758831da060fa76..24f4602d373e358740cea348e3041f823b6bcdca 100644 --- a/src/media/recording.cpp +++ b/src/media/recording.cpp @@ -17,7 +17,7 @@ ***************************************************************************/ #include "recording.h" -namespace Media { +namespace media { class RecordingPrivate { public: @@ -49,17 +49,17 @@ Recording::~Recording() } //Media:: ///Return this Recording type -Media::Recording::Type Media::Recording::type() const +media::Recording::Type media::Recording::type() const { return d_ptr->m_Type; } -Call* Media::Recording::call() const +Call* media::Recording::call() const { return d_ptr->m_pCall; } -void Media::Recording::setCall(Call* call) +void media::Recording::setCall(Call* call) { d_ptr->m_pCall = call; } diff --git a/src/media/recording.h b/src/media/recording.h index 8938dc8ab5393d18d1ed5c80a78f8f13fc90cfd4..201532c79f5af713c55662bcbb48fb717ea28832 100644 --- a/src/media/recording.h +++ b/src/media/recording.h @@ -25,7 +25,7 @@ class RecordingPlaybackManager; class Call; -namespace Media { +namespace media { class RecordingPrivate; diff --git a/src/media/recordingmodel.cpp b/src/media/recordingmodel.cpp index 5d072dc8ec0ff33a9b50498d7ff79b862f865f2a..aad7b269183387929a5b078db471d05ee175f413 100644 --- a/src/media/recordingmodel.cpp +++ b/src/media/recordingmodel.cpp @@ -47,7 +47,7 @@ struct RecordingNode final RecordingNode::Type m_Type ; int m_Index ; QString m_CatName ; - Media::Recording* m_pRec ; + media::Recording* m_pRec ; QVector<RecordingNode*> m_lChildren; RecordingNode* m_pParent ; @@ -57,7 +57,7 @@ class RecordingModelPrivate final : public QObject { Q_OBJECT public: - explicit RecordingModelPrivate(Media::RecordingModel* parent); + explicit RecordingModelPrivate(media::RecordingModel* parent); ~RecordingModelPrivate(); //Attributes @@ -69,11 +69,11 @@ public: //RecordingNode* m_pFiles ; //TODO uncomment when implemented in DRing - void forwardInsertion(const QMap<QString,QString>& message, ContactMethod* cm, Media::Media::Direction direction); + void forwardInsertion(const QMap<QString,QString>& message, ContactMethod* cm, media::Media::Direction direction); void updateUnreadCount(const int count); private: - Media::RecordingModel* q_ptr; + media::RecordingModel* q_ptr; }; RecordingNode::RecordingNode(RecordingNode::Type type) : @@ -88,7 +88,7 @@ RecordingNode::~RecordingNode() delete c; } -RecordingModelPrivate::RecordingModelPrivate(Media::RecordingModel* parent) : q_ptr(parent),m_pText(nullptr), +RecordingModelPrivate::RecordingModelPrivate(media::RecordingModel* parent) : q_ptr(parent),m_pText(nullptr), m_pAudioVideo(nullptr)/*,m_pFiles(nullptr)*/ { @@ -106,11 +106,11 @@ RecordingModelPrivate::~RecordingModelPrivate() delete m_pAudioVideo; } -void RecordingModelPrivate::forwardInsertion(const QMap<QString,QString>& message, ContactMethod* cm, Media::Media::Direction direction) +void RecordingModelPrivate::forwardInsertion(const QMap<QString,QString>& message, ContactMethod* cm, media::Media::Direction direction) { Q_UNUSED(message) Q_UNUSED(direction) - emit q_ptr->newTextMessage(static_cast<Media::TextRecording*>(sender()), cm); + emit q_ptr->newTextMessage(static_cast<media::TextRecording*>(sender()), cm); } void RecordingModelPrivate::updateUnreadCount(const int count) @@ -122,17 +122,17 @@ void RecordingModelPrivate::updateUnreadCount(const int count) emit q_ptr->unreadMessagesCountChanged(m_UnreadCount); } -Media::RecordingModel::~RecordingModel() +media::RecordingModel::~RecordingModel() { delete d_ptr; } -Media::RecordingModel::RecordingModel(QObject* parent) : QAbstractItemModel(parent), CollectionManagerInterface<Recording>(this), +media::RecordingModel::RecordingModel(QObject* parent) : QAbstractItemModel(parent), CollectionManagerInterface<Recording>(this), d_ptr(new RecordingModelPrivate(this)) { setObjectName("RecordingModel"); - d_ptr->m_pTextRecordingCollection = addCollection<LocalTextRecordingCollection>(); + d_ptr->m_pTextRecordingCollection = addCollection<LocalTextRecordingCollection>(LoadOptions::NONE); d_ptr->m_pTextRecordingCollection->listId([](const QList<CollectionInterface::Element>& e) { //TODO @@ -140,13 +140,13 @@ d_ptr(new RecordingModelPrivate(this)) }); } -Media::RecordingModel& Media::RecordingModel::instance() +media::RecordingModel& media::RecordingModel::instance() { static auto instance = new RecordingModel(QCoreApplication::instance()); return *instance; } -QHash<int,QByteArray> Media::RecordingModel::roleNames() const +QHash<int,QByteArray> media::RecordingModel::roleNames() const { static QHash<int, QByteArray> roles = QAbstractItemModel::roleNames(); /*static bool initRoles = false; @@ -157,7 +157,7 @@ QHash<int,QByteArray> Media::RecordingModel::roleNames() const } //Do nothing -bool Media::RecordingModel::setData( const QModelIndex& index, const QVariant &value, int role) +bool media::RecordingModel::setData( const QModelIndex& index, const QVariant &value, int role) { Q_UNUSED(index) Q_UNUSED(value) @@ -166,7 +166,7 @@ bool Media::RecordingModel::setData( const QModelIndex& index, const QVariant &v } ///Get bookmark model data RecordingNode::Type and Call::Role -QVariant Media::RecordingModel::data( const QModelIndex& index, int role) const +QVariant media::RecordingModel::data( const QModelIndex& index, int role) const { if (!index.isValid()) return QVariant(); @@ -182,7 +182,7 @@ QVariant Media::RecordingModel::data( const QModelIndex& index, int role) const } ///Get header data -QVariant Media::RecordingModel::headerData(int section, Qt::Orientation orientation, int role) const +QVariant media::RecordingModel::headerData(int section, Qt::Orientation orientation, int role) const { Q_UNUSED(section) if (orientation == Qt::Horizontal && role == Qt::DisplayRole) @@ -191,7 +191,7 @@ QVariant Media::RecordingModel::headerData(int section, Qt::Orientation orientat } ///Get the number of child of "parent" -int Media::RecordingModel::rowCount( const QModelIndex& parent ) const +int media::RecordingModel::rowCount( const QModelIndex& parent ) const { if (!parent.isValid()) return d_ptr->m_lCategories.size(); @@ -201,7 +201,7 @@ int Media::RecordingModel::rowCount( const QModelIndex& parent ) const } } -Qt::ItemFlags Media::RecordingModel::flags( const QModelIndex& index ) const +Qt::ItemFlags media::RecordingModel::flags( const QModelIndex& index ) const { if (!index.isValid()) return Qt::NoItemFlags; @@ -210,14 +210,14 @@ Qt::ItemFlags Media::RecordingModel::flags( const QModelIndex& index ) const } ///There is only 1 column -int Media::RecordingModel::columnCount ( const QModelIndex& parent) const +int media::RecordingModel::columnCount ( const QModelIndex& parent) const { Q_UNUSED(parent) return 1; } ///Get the bookmark parent -QModelIndex Media::RecordingModel::parent( const QModelIndex& idx) const +QModelIndex media::RecordingModel::parent( const QModelIndex& idx) const { if (!idx.isValid()) return QModelIndex(); @@ -236,7 +236,7 @@ QModelIndex Media::RecordingModel::parent( const QModelIndex& idx) const } //parent ///Get the index -QModelIndex Media::RecordingModel::index(int row, int column, const QModelIndex& parent) const +QModelIndex media::RecordingModel::index(int row, int column, const QModelIndex& parent) const { if (column || (!parent.isValid() && row >= d_ptr->m_lCategories.size())) return QModelIndex(); @@ -249,7 +249,7 @@ QModelIndex Media::RecordingModel::index(int row, int column, const QModelIndex& return createIndex(row,0,modelItem->m_lChildren[row]); } -bool Media::RecordingModel::addItemCallback(const Recording* item) +bool media::RecordingModel::addItemCallback(const Recording* item) { Q_UNUSED(item) @@ -305,13 +305,13 @@ bool Media::RecordingModel::addItemCallback(const Recording* item) return false; } -bool Media::RecordingModel::removeItemCallback(const Recording* item) +bool media::RecordingModel::removeItemCallback(const Recording* item) { Q_UNUSED(item) return false; } -bool Media::RecordingModel::clearAllCollections() const +bool media::RecordingModel::clearAllCollections() const { foreach (CollectionInterface* backend, collections(CollectionInterface::SupportedFeatures::CLEAR)) { backend->clear(); @@ -320,53 +320,53 @@ bool Media::RecordingModel::clearAllCollections() const } ///Deletes all recordings (which are possible to delete) and clears model -void Media::RecordingModel::clear() +void media::RecordingModel::clear() { beginResetModel(); clearAllCollections(); endResetModel(); } -void Media::RecordingModel::collectionAddedCallback(CollectionInterface* backend) +void media::RecordingModel::collectionAddedCallback(CollectionInterface* backend) { Q_UNUSED(backend) } ///Set where the call recordings will be saved -void Media::RecordingModel::setRecordPath(const QString& path) +void media::RecordingModel::setRecordPath(const QString& path) { ConfigurationManagerInterface& configurationManager = ConfigurationManager::instance(); configurationManager.setRecordPath(path); } ///Return the path where recordings are going to be saved -QString Media::RecordingModel::recordPath() const +QString media::RecordingModel::recordPath() const { ConfigurationManagerInterface& configurationManager = ConfigurationManager::instance(); return configurationManager.getRecordPath(); } ///are all calls recorded by default -bool Media::RecordingModel::isAlwaysRecording() const +bool media::RecordingModel::isAlwaysRecording() const { ConfigurationManagerInterface& configurationManager = ConfigurationManager::instance(); return configurationManager.getIsAlwaysRecording(); } ///Set if all calls needs to be recorded -void Media::RecordingModel::setAlwaysRecording(bool record) +void media::RecordingModel::setAlwaysRecording(bool record) { ConfigurationManagerInterface& configurationManager = ConfigurationManager::instance(); configurationManager.setIsAlwaysRecording ( record ); } -int Media::RecordingModel::unreadCount() const +int media::RecordingModel::unreadCount() const { return d_ptr->m_UnreadCount; } ///Create or load the recording associated with the ContactMethod cm -Media::TextRecording* Media::RecordingModel::createTextRecording(const ContactMethod* cm) +media::TextRecording* media::RecordingModel::createTextRecording(const ContactMethod* cm) { TextRecording* r = d_ptr->m_pTextRecordingCollection->createFor(cm); diff --git a/src/media/recordingmodel.h b/src/media/recordingmodel.h index 22d0e060bcc72dcb2483b79c6af374ca80d8e7f4..12ecca65306093c614f66c5a74acfa2e72913260 100644 --- a/src/media/recordingmodel.h +++ b/src/media/recordingmodel.h @@ -30,7 +30,7 @@ class RecordingModelPrivate; class ContactMethod; -namespace Media { +namespace media { class Recording; class TextRecording; class AVRecording; @@ -87,7 +87,7 @@ public: static RecordingModel& instance(); Q_SIGNALS: - void newTextMessage(::Media::TextRecording* t, ContactMethod* cm); + void newTextMessage(::media::TextRecording* t, ContactMethod* cm); void unreadMessagesCountChanged(int unreadCount); private: diff --git a/src/media/text.cpp b/src/media/text.cpp index 965985e7c48471a484599fa6438bcad63b4e256c..c6c2794b4c90c1976f57f447e34685d93a1c6831 100644 --- a/src/media/text.cpp +++ b/src/media/text.cpp @@ -59,10 +59,10 @@ class MediaTextPrivate { public: - MediaTextPrivate(Media::Text* parent); + MediaTextPrivate(media::Text* parent); //Attributes - Media::TextRecording* m_pRecording; + media::TextRecording* m_pRecording; bool m_HasChecked; QHash<QString,bool> m_hMimeTypes; QStringList m_lMimeTypes; @@ -71,7 +71,7 @@ public: void updateMimeList(const QMap<QString,QString>& payloads); private: - Media::Text* q_ptr; + media::Text* q_ptr; }; class ProfileChunk @@ -163,14 +163,14 @@ void IMConversationManagerPrivate::newMessage(const QString& callId, const QStri } } - Media::Text* media = call->firstMedia<Media::Text>(Media::Media::Direction::IN); + media::Text* media = call->firstMedia<media::Text>(media::Media::Direction::IN); if (!media) { - media = call->d_ptr->mediaFactory<Media::Text>(Media::Media::Direction::IN); + media = call->d_ptr->mediaFactory<media::Text>(media::Media::Direction::IN); } media->recording()->setCall(call); - media->recording()->d_ptr->insertNewMessage(message,call->peerContactMethod(),Media::Media::Direction::IN); + media->recording()->d_ptr->insertNewMessage(message,call->peerContactMethod(),media::Media::Direction::IN); media->d_ptr->updateMimeList(message); @@ -181,7 +181,7 @@ void IMConversationManagerPrivate::newAccountMessage(const QString& accountId, c { if (auto cm = PhoneDirectoryModel::instance().getNumber(from, AccountModel::instance().getById(accountId.toLatin1()))) { auto txtRecording = cm->textRecording(); - txtRecording->d_ptr->insertNewMessage(payloads, cm, Media::Media::Direction::IN); + txtRecording->d_ptr->insertNewMessage(payloads, cm, media::Media::Direction::IN); } } @@ -193,26 +193,26 @@ void IMConversationManagerPrivate::accountMessageStatusChanged(const QString& ac } } -MediaTextPrivate::MediaTextPrivate(Media::Text* parent) : q_ptr(parent),m_pRecording(nullptr),m_HasChecked(false) +MediaTextPrivate::MediaTextPrivate(media::Text* parent) : q_ptr(parent),m_pRecording(nullptr),m_HasChecked(false) { } -Media::Text::Text(Call* parent, const Media::Direction direction) : Media::Media(parent, direction), d_ptr(new MediaTextPrivate(this)) +media::Text::Text(Call* parent, const Media::Direction direction) : media::Media(parent, direction), d_ptr(new MediaTextPrivate(this)) { Q_ASSERT(parent); } -Media::Media::Type Media::Text::type() +media::Media::Type media::Text::type() { - return Media::Media::Type::TEXT; + return media::Media::Type::TEXT; } -Media::Text::~Text() +media::Text::~Text() { delete d_ptr; } -Media::TextRecording* Media::Text::recording() const +media::TextRecording* media::Text::recording() const { const bool wasChecked = d_ptr->m_HasChecked; d_ptr->m_HasChecked = true; @@ -239,12 +239,12 @@ Media::TextRecording* Media::Text::recording() const } -bool Media::Text::hasMimeType( const QString& mimeType ) const +bool media::Text::hasMimeType( const QString& mimeType ) const { return d_ptr->m_hMimeTypes.contains(mimeType); } -QStringList Media::Text::mimeTypes() const +QStringList media::Text::mimeTypes() const { return d_ptr->m_lMimeTypes; } @@ -291,7 +291,7 @@ void MediaTextPrivate::updateMimeList(const QMap<QString,QString>& payloads) * "text/enriched" : (RTF) The rich text format used by older applications (like WordPad and OS X TextEdit) * "text/html" : The format used by web browsers */ -void Media::Text::send(const QMap<QString,QString>& message, const bool isMixed) +void media::Text::send(const QMap<QString,QString>& message, const bool isMixed) { CallManagerInterface& callManager = CallManager::instance(); Q_NOREPLY callManager.sendTextMessage(call()->dringId(), message, isMixed); diff --git a/src/media/text.h b/src/media/text.h index 561e264923ce5bfb803cd7d2157f3acd4b7c6d16..c5f0efb31973384fb82f586b455b7149f2b0cf2b 100644 --- a/src/media/text.h +++ b/src/media/text.h @@ -26,11 +26,11 @@ class CallPrivate; class InstantMessagingModel; class IMConversationManagerPrivate; -namespace Media { +namespace media { class TextRecording; -class LIB_EXPORT Text : public Media::Media +class LIB_EXPORT Text : public media::Media { Q_OBJECT friend class ::CallPrivate; diff --git a/src/media/textrecording.cpp b/src/media/textrecording.cpp index 7c46e207441147b78caade28d6a062b7c4bf2e17..3361026fc2ed3b89c18b373ca528728883ee0108 100644 --- a/src/media/textrecording.cpp +++ b/src/media/textrecording.cpp @@ -154,15 +154,15 @@ Serializable::Peers* SerializableEntityManager::fromJson(const QJsonObject& json return p; } -Media::TextRecordingPrivate::TextRecordingPrivate(TextRecording* r) : q_ptr(r),m_pImModel(nullptr),m_pCurrentGroup(nullptr),m_UnreadCount(0) +media::TextRecordingPrivate::TextRecordingPrivate(TextRecording* r) : q_ptr(r),m_pImModel(nullptr),m_pCurrentGroup(nullptr),m_UnreadCount(0) { } -Media::TextRecording::TextRecording() : Recording(Recording::Type::TEXT), d_ptr(new TextRecordingPrivate(this)) +media::TextRecording::TextRecording() : Recording(Recording::Type::TEXT), d_ptr(new TextRecordingPrivate(this)) { } -Media::TextRecording::~TextRecording() +media::TextRecording::~TextRecording() { delete d_ptr; } @@ -171,7 +171,7 @@ Media::TextRecording::~TextRecording() * Updates the message status and potentially the message id, if a new status is set. * Returns true if the Message object was modified, false otherwise. */ -bool Media::TextRecordingPrivate::updateMessageStatus(Serializable::Message* m, TextRecording::Status newSatus) +bool media::TextRecordingPrivate::updateMessageStatus(Serializable::Message* m, TextRecording::Status newSatus) { bool modified = false; @@ -198,7 +198,7 @@ bool Media::TextRecordingPrivate::updateMessageStatus(Serializable::Message* m, return modified; } -void Media::TextRecordingPrivate::accountMessageStatusChanged(const uint64_t id, DRing::Account::MessageStates status) +void media::TextRecordingPrivate::accountMessageStatusChanged(const uint64_t id, DRing::Account::MessageStates status) { if (auto node = m_hPendingMessages.value(id, nullptr)) { if (updateMessageStatus(node->m_pMessage, static_cast<TextRecording::Status>(status))) { @@ -211,18 +211,18 @@ void Media::TextRecordingPrivate::accountMessageStatusChanged(const uint64_t id, } } -bool Media::TextRecording::hasMimeType(const QString& mimeType) const +bool media::TextRecording::hasMimeType(const QString& mimeType) const { return d_ptr->m_hMimeTypes.contains(mimeType); } -QStringList Media::TextRecording::mimeTypes() const +QStringList media::TextRecording::mimeTypes() const { return d_ptr->m_lMimeTypes; } ///Get the instant messaging model associated with this recording -QAbstractItemModel* Media::TextRecording::instantMessagingModel() const +QAbstractItemModel* media::TextRecording::instantMessagingModel() const { if (!d_ptr->m_pImModel) { d_ptr->m_pImModel = new InstantMessagingModel(const_cast<TextRecording*>(this)); @@ -232,7 +232,7 @@ QAbstractItemModel* Media::TextRecording::instantMessagingModel() const } ///Set all messages as read and then save the recording -void Media::TextRecording::setAllRead() +void media::TextRecording::setAllRead() { bool changed = false; for(int row = 0; row < d_ptr->m_lNodes.size(); ++row) { @@ -257,7 +257,7 @@ void Media::TextRecording::setAllRead() } } -QVector<ContactMethod*> Media::TextRecording::peers() const +QVector<ContactMethod*> media::TextRecording::peers() const { QVector<ContactMethod*> cms; @@ -291,7 +291,7 @@ public: { const QModelIndex srcIdx = sourceModel()->index(source_row, filterKeyColumn(), source_parent); - return srcIdx.data((int)Media::TextRecording::Role::HasText).toBool(); + return srcIdx.data((int)media::TextRecording::Role::HasText).toBool(); } }; @@ -299,7 +299,7 @@ public: * Subset of the instantMessagingModel() with only plain text and HTML * messages. This model can be displayed directly to the user. */ -QAbstractItemModel* Media::TextRecording::instantTextMessagingModel() const +QAbstractItemModel* media::TextRecording::instantTextMessagingModel() const { if (!d_ptr->m_pTextMessagesModel) { auto p = new TextProxyModel(const_cast<TextRecording*>(this)); @@ -321,7 +321,7 @@ public: { const QModelIndex srcIdx = sourceModel()->index(source_row, filterKeyColumn(), source_parent); - return !srcIdx.data((int)Media::TextRecording::Role::IsRead).toBool(); + return !srcIdx.data((int)media::TextRecording::Role::IsRead).toBool(); } }; @@ -329,7 +329,7 @@ public: * Subset of the instantTextMessagingModel() with only unread plain text and HTML * messages. This model can be used to get the number of unread messages. */ -QAbstractItemModel* Media::TextRecording::unreadInstantTextMessagingModel() const +QAbstractItemModel* media::TextRecording::unreadInstantTextMessagingModel() const { if (!d_ptr->m_pUnreadTextMessagesModel) { auto p = new UnreadProxyModel(instantTextMessagingModel()); @@ -341,20 +341,20 @@ QAbstractItemModel* Media::TextRecording::unreadInstantTextMessagingModel() cons } -bool Media::TextRecording::isEmpty() const +bool media::TextRecording::isEmpty() const { return !size(); } -int Media::TextRecording::size() const +int media::TextRecording::size() const { return d_ptr->m_lNodes.size(); } // Qt convention compat -int Media::TextRecording::count() const { return size(); } +int media::TextRecording::count() const { return size(); } -QHash<QByteArray,QByteArray> Media::TextRecordingPrivate::toJsons() const +QHash<QByteArray,QByteArray> media::TextRecordingPrivate::toJsons() const { QHash<QByteArray,QByteArray> ret; for (Serializable::Peers* p : m_lAssociatedPeers) { @@ -372,7 +372,7 @@ QHash<QByteArray,QByteArray> Media::TextRecordingPrivate::toJsons() const return ret; } -Media::TextRecording* Media::TextRecording::fromJson(const QList<QJsonObject>& items, const ContactMethod* cm, CollectionInterface* backend) +media::TextRecording* media::TextRecording::fromJson(const QList<QJsonObject>& items, const ContactMethod* cm, CollectionInterface* backend) { TextRecording* t = new TextRecording(); if (backend) @@ -448,7 +448,7 @@ Media::TextRecording* Media::TextRecording::fromJson(const QList<QJsonObject>& i return t; } -void Media::TextRecordingPrivate::insertNewMessage(const QMap<QString,QString>& message, ContactMethod* cm, Media::Media::Direction direction, uint64_t id) +void media::TextRecordingPrivate::insertNewMessage(const QMap<QString,QString>& message, ContactMethod* cm, media::Media::Direction direction, uint64_t id) { //Only create it if none was found on the disk if (!m_pCurrentGroup) { @@ -475,7 +475,7 @@ void Media::TextRecordingPrivate::insertNewMessage(const QMap<QString,QString>& m->authorSha1= cm->sha1() ; m->id = id; - if (direction == Media::Media::Direction::OUT) + if (direction == media::Media::Direction::OUT) m->isRead = true; // assume outgoing messages are read, since we're sending them static const int profileSize = QString(RingMimes::PROFILE_VCF).size(); @@ -560,10 +560,10 @@ void Serializable::Message::read (const QJsonObject &json) timestamp = json["timestamp" ].toInt ( ); authorSha1 = json["authorSha1"].toString ( ); isRead = json["isRead" ].toBool ( ); - direction = static_cast<Media::Media::Direction> ( json["direction"].toInt() ); + direction = static_cast<media::Media::Direction> ( json["direction"].toInt() ); type = static_cast<Serializable::Message::Type>( json["type" ].toInt() ); id = json["id" ].toVariant().value<uint64_t>( ); - deliveryStatus = static_cast<Media::TextRecording::Status>(json["deliveryStatus"].toInt()); + deliveryStatus = static_cast<media::TextRecording::Status>(json["deliveryStatus"].toInt()); QJsonArray a = json["payloads"].toArray(); for (int i = 0; i < a.size(); ++i) { @@ -751,7 +751,7 @@ void Serializable::Peers::write(QJsonObject &json) const ///Constructor -InstantMessagingModel::InstantMessagingModel(Media::TextRecording* recording) : QAbstractListModel(recording),m_pRecording(recording) +InstantMessagingModel::InstantMessagingModel(media::TextRecording* recording) : QAbstractListModel(recording),m_pRecording(recording) { } @@ -766,18 +766,18 @@ QHash<int,QByteArray> InstantMessagingModel::roleNames() const static bool initRoles = false; if (!initRoles) { initRoles = true; - roles.insert((int)Media::TextRecording::Role::Direction , "direction" ); - roles.insert((int)Media::TextRecording::Role::AuthorDisplayname , "authorDisplayname" ); - roles.insert((int)Media::TextRecording::Role::AuthorUri , "authorUri" ); - roles.insert((int)Media::TextRecording::Role::AuthorPresenceStatus, "authorPresenceStatus"); - roles.insert((int)Media::TextRecording::Role::Timestamp , "timestamp" ); - roles.insert((int)Media::TextRecording::Role::IsRead , "isRead" ); - roles.insert((int)Media::TextRecording::Role::FormattedDate , "formattedDate" ); - roles.insert((int)Media::TextRecording::Role::IsStatus , "isStatus" ); - roles.insert((int)Media::TextRecording::Role::DeliveryStatus , "deliveryStatus" ); - roles.insert((int)Media::TextRecording::Role::FormattedHtml , "formattedHtml" ); - roles.insert((int)Media::TextRecording::Role::LinkList , "linkList" ); - roles.insert((int)Media::TextRecording::Role::Id , "id" ); + roles.insert((int)media::TextRecording::Role::Direction , "direction" ); + roles.insert((int)media::TextRecording::Role::AuthorDisplayname , "authorDisplayname" ); + roles.insert((int)media::TextRecording::Role::AuthorUri , "authorUri" ); + roles.insert((int)media::TextRecording::Role::AuthorPresenceStatus, "authorPresenceStatus"); + roles.insert((int)media::TextRecording::Role::Timestamp , "timestamp" ); + roles.insert((int)media::TextRecording::Role::IsRead , "isRead" ); + roles.insert((int)media::TextRecording::Role::FormattedDate , "formattedDate" ); + roles.insert((int)media::TextRecording::Role::IsStatus , "isStatus" ); + roles.insert((int)media::TextRecording::Role::DeliveryStatus , "deliveryStatus" ); + roles.insert((int)media::TextRecording::Role::FormattedHtml , "formattedHtml" ); + roles.insert((int)media::TextRecording::Role::LinkList , "linkList" ); + roles.insert((int)media::TextRecording::Role::Id , "id" ); } return roles; } @@ -791,13 +791,13 @@ QVariant InstantMessagingModel::data( const QModelIndex& idx, int role) const case Qt::DisplayRole: return QVariant(n->m_pMessage->m_PlainText); case Qt::DecorationRole : - if (n->m_pMessage->direction == Media::Media::Direction::IN) + if (n->m_pMessage->direction == media::Media::Direction::IN) return GlobalInstances::pixmapManipulator().decorationRole(n->m_pContactMethod); else if (m_pRecording->call() && m_pRecording->call()->account() && m_pRecording->call()->account()->contactMethod()->contact()) { auto cm = m_pRecording->call()->account()->contactMethod(); return GlobalInstances::pixmapManipulator().decorationRole(cm); - } else if (n->m_pMessage->direction == Media::Media::Direction::OUT && n->m_pContactMethod->account()){ + } else if (n->m_pMessage->direction == media::Media::Direction::OUT && n->m_pContactMethod->account()){ return GlobalInstances::pixmapManipulator().decorationRole(n->m_pContactMethod->account()); } else { /* It's most likely an account that doesn't exist anymore @@ -806,45 +806,45 @@ QVariant InstantMessagingModel::data( const QModelIndex& idx, int role) const return GlobalInstances::pixmapManipulator().decorationRole((ContactMethod*)nullptr); } break; - case (int)Media::TextRecording::Role::Direction : + case (int)media::TextRecording::Role::Direction : return QVariant::fromValue(n->m_pMessage->direction); - case (int)Media::TextRecording::Role::AuthorDisplayname : + case (int)media::TextRecording::Role::AuthorDisplayname : case (int)Ring::Role::Name : - if (n->m_pMessage->direction == Media::Media::Direction::IN) + if (n->m_pMessage->direction == media::Media::Direction::IN) return n->m_pContactMethod->roleData(static_cast<int>(Ring::Role::Name)); else return tr("Me"); - case (int)Media::TextRecording::Role::AuthorUri : + case (int)media::TextRecording::Role::AuthorUri : case (int)Ring::Role::Number : return n->m_pContactMethod->uri(); - case (int)Media::TextRecording::Role::AuthorPresenceStatus : + case (int)media::TextRecording::Role::AuthorPresenceStatus : // Always consider "self" as present - if (n->m_pMessage->direction == Media::Media::Direction::OUT) + if (n->m_pMessage->direction == media::Media::Direction::OUT) return true; else return n->m_pContactMethod->contact() ? n->m_pContactMethod->contact()->isPresent() : n->m_pContactMethod->isPresent(); - case (int)Media::TextRecording::Role::Timestamp : + case (int)media::TextRecording::Role::Timestamp : return (uint)n->m_pMessage->timestamp; - case (int)Media::TextRecording::Role::IsRead : + case (int)media::TextRecording::Role::IsRead : return (int)n->m_pMessage->isRead; - case (int)Media::TextRecording::Role::FormattedDate : + case (int)media::TextRecording::Role::FormattedDate : return QDateTime::fromTime_t(n->m_pMessage->timestamp).toString(); - case (int)Media::TextRecording::Role::IsStatus : + case (int)media::TextRecording::Role::IsStatus : return n->m_pMessage->type == Serializable::Message::Type::STATUS; - case (int)Media::TextRecording::Role::HTML : + case (int)media::TextRecording::Role::HTML : return QVariant(n->m_pMessage->m_HTML); - case (int)Media::TextRecording::Role::HasText : + case (int)media::TextRecording::Role::HasText : return n->m_pMessage->m_HasText; - case (int)Media::TextRecording::Role::ContactMethod : + case (int)media::TextRecording::Role::ContactMethod : return QVariant::fromValue(n->m_pContactMethod); - case (int)Media::TextRecording::Role::DeliveryStatus : + case (int)media::TextRecording::Role::DeliveryStatus : return QVariant::fromValue(n->m_pMessage->deliveryStatus); - case (int)Media::TextRecording::Role::FormattedHtml : + case (int)media::TextRecording::Role::FormattedHtml : return QVariant::fromValue(n->m_pMessage->getFormattedHtml()); - case (int)Media::TextRecording::Role::LinkList : + case (int)media::TextRecording::Role::LinkList : return QVariant::fromValue(n->m_pMessage->m_LinkList); - case (int)Media::TextRecording::Role::Id : + case (int)media::TextRecording::Role::Id : return QVariant::fromValue(n->m_pMessage->id); default: break; @@ -878,7 +878,7 @@ bool InstantMessagingModel::setData(const QModelIndex& idx, const QVariant &valu ::TextMessageNode* n = m_pRecording->d_ptr->m_lNodes[idx.row()]; switch (role) { - case (int)Media::TextRecording::Role::IsRead : + case (int)media::TextRecording::Role::IsRead : if (n->m_pMessage->isRead != value.toBool()) { n->m_pMessage->isRead = value.toBool(); if (n->m_pMessage->m_HasText) { @@ -913,7 +913,7 @@ void InstantMessagingModel::addRowEnd() endInsertRows(); } -void Media::TextRecordingPrivate::clear() +void media::TextRecordingPrivate::clear() { m_pImModel->clear(); diff --git a/src/media/textrecording.h b/src/media/textrecording.h index 40dae9afcdbbef72a2b9ff8f3facc47c3e6e3ddb..acb970114366013cc82da8f68462107c53985bfd 100644 --- a/src/media/textrecording.h +++ b/src/media/textrecording.h @@ -31,7 +31,7 @@ class LocalTextRecordingEditor; class ContactMethod; class InstantMessagingModel; -namespace Media { +namespace media { class TextRecordingPrivate; class Text; @@ -99,7 +99,7 @@ public: void setAllRead(); Q_SIGNALS: - void messageInserted(const QMap<QString,QString>& message, ContactMethod* cm, Media::Media::Direction direction); + void messageInserted(const QMap<QString,QString>& message, ContactMethod* cm, media::Media::Direction direction); void unreadCountChange(int count); private: @@ -109,4 +109,4 @@ private: } -Q_DECLARE_METATYPE(Media::TextRecording::Status) +Q_DECLARE_METATYPE(media::TextRecording::Status) diff --git a/src/media/video.cpp b/src/media/video.cpp index 747ae7b31ac117c6a704a92b1d02919da8c4a125..9a851998be70ce2dab49559a6272cf7fd036b7f9 100644 --- a/src/media/video.cpp +++ b/src/media/video.cpp @@ -31,29 +31,29 @@ public: Video::SourceModel *m_pSourceModel = nullptr; }; -Media::Video::Video(Call* parent, const Media::Direction direction) : Media::Media(parent, direction), d_ptr(new MediaVideoPrivate()) +media::Video::Video(Call* parent, const Media::Direction direction) : media::Media(parent, direction), d_ptr(new MediaVideoPrivate()) { Q_ASSERT(parent); } -Media::Media::Type Media::Video::type() +media::Media::Type media::Video::type() { - return Media::Media::Type::VIDEO; + return media::Media::Type::VIDEO; } -bool Media::Video::mute() +bool media::Video::mute() { CallManagerInterface& callManager = CallManager::instance(); return callManager.muteLocalMedia(call()->dringId(),DRing::Media::Details::MEDIA_TYPE_VIDEO,true); } -bool Media::Video::unmute() +bool media::Video::unmute() { CallManagerInterface& callManager = CallManager::instance(); return callManager.muteLocalMedia(call()->dringId(),DRing::Media::Details::MEDIA_TYPE_VIDEO,false); } -Video::SourceModel* Media::Video::sourceModel() const +Video::SourceModel* media::Video::sourceModel() const { if (!d_ptr->m_pSourceModel) { d_ptr->m_pSourceModel = new ::Video::SourceModel(); @@ -62,7 +62,7 @@ Video::SourceModel* Media::Video::sourceModel() const return d_ptr->m_pSourceModel; } -Media::Video::~Video() +media::Video::~Video() { delete d_ptr; } diff --git a/src/media/video.h b/src/media/video.h index a388325c010b7f44e424bb617de143af1d0eeb9d..22109b19c2a29bb9e985c98dc202d3f4dd7f977e 100644 --- a/src/media/video.h +++ b/src/media/video.h @@ -29,9 +29,9 @@ class MediaVideoPrivate; class Call; class CallPrivate; -namespace Media { +namespace media { -class LIB_EXPORT Video : public Media::Media +class LIB_EXPORT Video : public media::Media { friend class ::CallPrivate; public: diff --git a/src/person.cpp b/src/person.cpp index 5058c701e69371958d7bdd668b46cccde1a1cd55..99c435f147da84d54992db6c4e9f4218670da2ea 100644 --- a/src/person.cpp +++ b/src/person.cpp @@ -559,23 +559,23 @@ bool Person::hasBeenCalled() const * some ContactMethod level caching need to be implemented and connected to new\ * recording signals. */ -bool Person::hasRecording(Media::Media::Type type, Media::Media::Direction direction) const +bool Person::hasRecording(media::Media::Type type, media::Media::Direction direction) const { Q_UNUSED(direction) //TODO implement switch (type) { - case Media::Media::Type::AUDIO: - case Media::Media::Type::VIDEO: + case media::Media::Type::AUDIO: + case media::Media::Type::VIDEO: return false; //TODO implement - case Media::Media::Type::TEXT: + case media::Media::Type::TEXT: foreach( ContactMethod* cm, phoneNumbers()) { if (cm->textRecording() && !cm->textRecording()->isEmpty()) return true; } return false; - case Media::Media::Type::FILE: - case Media::Media::Type::COUNT__: + case media::Media::Type::FILE: + case media::Media::Type::COUNT__: break; } diff --git a/src/person.h b/src/person.h index 96e2f7a2aae2a3731f1d98debd53b1fc90872d26..d8e565c77a0571c7d74dcac585f9f52493f6392a 100644 --- a/src/person.h +++ b/src/person.h @@ -158,7 +158,7 @@ public: bool isPlaceHolder () const; bool hasBeenCalled () const; - bool hasRecording(Media::Media::Type type, Media::Media::Direction direction) const; + bool hasRecording(media::Media::Type type, media::Media::Direction direction) const; //Setters void setContactMethods ( ContactMethods ); diff --git a/src/private/call_p.h b/src/private/call_p.h index b9ba3183736870c670c702a26a5edcd8138bb112..e66c53b0f897db41d90de276cffadc6e52782564 100644 --- a/src/private/call_p.h +++ b/src/private/call_p.h @@ -31,7 +31,6 @@ //Qt class QTimer; - //Ring class Account; class ContactMethod; @@ -42,7 +41,7 @@ class Certificate; class CallPrivate; typedef void (CallPrivate::*function)(); -namespace Media { +namespace media { class Media; class Recording; } @@ -178,11 +177,11 @@ public: */ static const TypedStateMachine< Call::LifeCycleState , Call::State > metaStateMap; - Matrix2D<Media::Media::Type, Media::Media::Direction, QList<Media::Media*>* > m_mMedias; + Matrix2D<media::Media::Type, media::Media::Direction, QList<media::Media*>* > m_mMedias; - Matrix2D<Media::Media::Type, Media::Media::Direction, QList<Media::Recording*>* > m_mRecordings; + Matrix2D<media::Media::Type, media::Media::Direction, QList<media::Recording*>* > m_mRecordings; - Matrix2D<Media::Media::Type, Media::Media::Direction, bool > m_mIsRecording; + Matrix2D<media::Media::Type, media::Media::Direction, bool > m_mIsRecording; static const Matrix1D<Call::LifeCycleState,function> m_mLifeCycleStateChanges; @@ -236,7 +235,7 @@ public: static MapStringString getCallDetailsCommon(const QString& callId); void peerHoldChanged(bool onPeerHold); template<typename T> - T* mediaFactory(Media::Media::Direction dir); + T* mediaFactory(media::Media::Direction dir); void updateOutgoingMedia(const MapStringString& details); //Static getters diff --git a/src/private/contactmethod_p.h b/src/private/contactmethod_p.h index 457f851175f474581d776a963674786982217cc2..c81eb4f1bf2435b892e450ea9345b6f7fe050c54 100644 --- a/src/private/contactmethod_p.h +++ b/src/private/contactmethod_p.h @@ -43,7 +43,7 @@ public: QByteArray m_Sha1 ; ContactMethod::Type m_Type ; QList<URI> m_lOtherURIs ; - Media::TextRecording* m_pTextRecording; + media::TextRecording* m_pTextRecording; Certificate* m_pCertificate; QString m_RegisteredName ; UsageStatistics m_UsageStats ; @@ -63,7 +63,7 @@ public: void registeredNameSet(const QString& registeredName); //Helpers - void setTextRecording(Media::TextRecording* r); + void setTextRecording(media::TextRecording* r); void setCertificate (Certificate*); void setRegisteredName(const QString& registeredName); diff --git a/src/private/imconversationmanagerprivate.h b/src/private/imconversationmanagerprivate.h index 395265b5517206f546a708ed8959c702e849ccd3..60d8dbbe6da4a8551dcee24a017bbe3417dfe7b0 100644 --- a/src/private/imconversationmanagerprivate.h +++ b/src/private/imconversationmanagerprivate.h @@ -24,7 +24,7 @@ class Account; class Call; class ContactMethod; -namespace Media { +namespace media { class Text; class TextRecording; } diff --git a/src/private/media_p.h b/src/private/media_p.h index 9beabcebaf9226d9929e51d47fcc8fc0beff13db..15ced94c42a4146c0aeaa63baf9446f164f07c73 100644 --- a/src/private/media_p.h +++ b/src/private/media_p.h @@ -21,19 +21,19 @@ #include "private/matrixutils.h" -namespace Media { +namespace media { class MediaPrivate; typedef bool (MediaPrivate::*MediaTransitionFct)(); class MediaPrivate { - friend class Media::Media; + friend class media::Media; public: MediaPrivate(Media* parent); - static const Matrix2D<Media::Media::State, Media::Media::Action, bool> m_mValidTransitions; - static const Matrix2D<Media::Media::State, Media::Media::Action, MediaTransitionFct> m_mCallbacks; + static const Matrix2D<media::Media::State, media::Media::Action, bool> m_mValidTransitions; + static const Matrix2D<media::Media::State, media::Media::Action, MediaTransitionFct> m_mCallbacks; //Actions bool mute (); @@ -47,9 +47,9 @@ public: private: //Attributes - Media::Media::State m_State; + media::Media::State m_State; Call* m_pCall; - Media::Media::Direction m_Direction; + media::Media::Direction m_Direction; Media* q_ptr; }; diff --git a/src/private/textrecording_p.h b/src/private/textrecording_p.h index 558beff13110e95e0e6347044b78f510563b20b2..a910b809086e8824f92bbc5aba548be3b4333f49 100644 --- a/src/private/textrecording_p.h +++ b/src/private/textrecording_p.h @@ -34,7 +34,7 @@ struct TextMessageNode; class InstantMessagingModel; class ContactMethod; -namespace Media { +namespace media { class TextRecording; } @@ -69,7 +69,7 @@ public: ///The author display name QString authorSha1; ///The direction - Media::Media::Direction direction ; + media::Media::Direction direction ; ///The message Type Type type ; ///If the message have been read @@ -79,7 +79,7 @@ public: //The token of the message uint64_t id ; //Delivery Status - Media::TextRecording::Status deliveryStatus; + media::TextRecording::Status deliveryStatus; static const QRegularExpression m_linkRegex; @@ -155,7 +155,7 @@ private: } //END Those classes are serializable to JSon -namespace Media { +namespace media { /** * The Media::Recording private class. This is where the reconstructed @@ -179,7 +179,7 @@ public: QHash<uint64_t, TextMessageNode*> m_hPendingMessages; //Helper - void insertNewMessage(const QMap<QString,QString>& message, ContactMethod* cm, Media::Media::Direction direction, uint64_t id = 0); + void insertNewMessage(const QMap<QString,QString>& message, ContactMethod* cm, media::Media::Direction direction, uint64_t id = 0); QHash<QByteArray,QByteArray> toJsons() const; void accountMessageStatusChanged(const uint64_t id, DRing::Account::MessageStates status); bool updateMessageStatus(Serializable::Message* m, TextRecording::Status status); @@ -235,7 +235,7 @@ class InstantMessagingModel final : public QAbstractListModel public: //Constructor - explicit InstantMessagingModel(Media::TextRecording*); + explicit InstantMessagingModel(media::TextRecording*); virtual ~InstantMessagingModel(); //Abstract model function @@ -248,7 +248,7 @@ public: void clear(); //Attributes - Media::TextRecording* m_pRecording; + media::TextRecording* m_pRecording; //Helper void addRowBegin(); diff --git a/src/private/useractions.h b/src/private/useractions.h index 09165cc60805d63bf47a22e2ee079f299865f686..ae832fbbabcc2370717be7333861059bb9c748d5 100644 --- a/src/private/useractions.h +++ b/src/private/useractions.h @@ -266,7 +266,7 @@ bool muteAudio(Call* call, bool state) qDebug() << "Error : Muting audio when no item selected. Should not happen."; return false; } - auto audioOut = call->firstMedia<Media::Audio>(Media::Media::Direction::OUT); + auto audioOut = call->firstMedia<media::Audio>(media::Media::Direction::OUT); if (!audioOut) { qDebug() << "Error : No audio media for this call"; return false; @@ -291,7 +291,7 @@ bool muteVideo(Call* call, bool state) qDebug() << "Error : Muting video when no item selected. Should not happen."; return false; } - auto videoOut = call->firstMedia<Media::Video>(Media::Media::Direction::OUT); + auto videoOut = call->firstMedia<media::Video>(media::Media::Direction::OUT); if (!videoOut) { qDebug() << "Error : No video media for this call"; return false; diff --git a/src/securityevaluationmodel.cpp b/src/securityevaluationmodel.cpp index 74973cf5888ef5dfca0e1ee1f9d7039895d00afe..2f5ff7ba5a5ef305edb936178883f07f0b3427ab 100644 --- a/src/securityevaluationmodel.cpp +++ b/src/securityevaluationmodel.cpp @@ -243,7 +243,7 @@ private: }; ///This model expect a certain size, get each sections size - constexpr static const short sizes[] = { + constexpr static const int sizes[] = { enum_class_size< Certificate :: Checks > (), enum_class_size< Certificate :: Checks > (), enum_class_size< SecurityEvaluationModel :: AccountSecurityChecks > (), @@ -270,7 +270,7 @@ private: }; -constexpr const short CombinaisonProxyModel::sizes[]; +constexpr const int CombinaisonProxyModel::sizes[]; ///Create a callback map for signals to avoid a large switch(){} in the code static const Matrix1D<SecurityEvaluationModel::Severity, void(SecurityEvaluationModel::*)()> m_lSignalMap = {{ diff --git a/src/typedefs.h b/src/typedefs.h index 116e5c8a3f18226155b7795df2ffd7cec52cd772..dd7c383d1755440076cc7d0ee9b6ba74604cfbb3 100644 --- a/src/typedefs.h +++ b/src/typedefs.h @@ -73,8 +73,12 @@ template<typename A> constexpr int enum_class_size() { #ifdef LRC_IMPORT #define LIB_EXPORT Q_DECL_IMPORT #else +#if defined(_MSC_VER) +#define LIB_EXPORT +#else #define LIB_EXPORT Q_DECL_EXPORT #endif +#endif //Doesn't work #if ((__GNUC_MINOR__ > 8) || (__GNUC_MINOR__ == 8)) @@ -175,7 +179,13 @@ private: uint m_Flags; }; +#ifdef _MSC_VER +#define DO_PRAGMA(x) /*do nothing*/ +#define __attribute__(A) /*do nothing*/ +#include <ciso646> +#else #define DO_PRAGMA(x) _Pragma (#x) +#endif // _MSC_VER //Globally disable the "-Wunused-function" warning for GCC //refs: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55578 diff --git a/src/useractionmodel.cpp b/src/useractionmodel.cpp index 96711008d4d34ea0e06813464ad819892f9d9624..5ba9ee1b5e61db63d6e42cf19d5f4f0bbd43a6bd 100644 --- a/src/useractionmodel.cpp +++ b/src/useractionmodel.cpp @@ -447,8 +447,8 @@ const Matrix1D< UAM::Action, bool(*)(const Person*)> UserActionModelPrivate::per { UAMA::BOOKMARK , nullptr }, { UAMA::VIEW_CHAT_HISTORY , P_CB { return p->hasRecording( - Media::Media::Type::TEXT, - Media::Media::Direction::OUT + media::Media::Type::TEXT, + media::Media::Direction::OUT ); }}, { UAMA::ADD_CONTACT_METHOD, nullptr }, @@ -705,20 +705,20 @@ void UserActionModelPrivate::updateCheckMask(int& ret, UserActionModel::Action a ret += c->state() == Call::State::HOLD? 100 : 1; break; case UserActionModel::Action::MUTE_AUDIO : { - auto a = c->firstMedia<Media::Audio>(Media::Media::Direction::OUT); - ret += a && a->state() == Media::Media::State::MUTED ? 100 : 1; + auto a = c->firstMedia<media::Audio>(media::Media::Direction::OUT); + ret += a && a->state() == media::Media::State::MUTED ? 100 : 1; } break; case UserActionModel::Action::MUTE_VIDEO : { - auto v = c->firstMedia<Media::Video>(Media::Media::Direction::OUT); - ret += v && v->state() == Media::Media::State::MUTED ? 100 : 1; + auto v = c->firstMedia<media::Video>(media::Media::Direction::OUT); + ret += v && v->state() == media::Media::State::MUTED ? 100 : 1; } break; case UserActionModel::Action::SERVER_TRANSFER : ret += c->state() == Call::State::TRANSFERRED? 100 : 1; break; case UserActionModel::Action::RECORD : - ret += c->isRecording(Media::Media::Type::AUDIO,Media::Media::Direction::OUT) ? 100 : 1; + ret += c->isRecording(media::Media::Type::AUDIO,media::Media::Direction::OUT) ? 100 : 1; break; case UserActionModel::Action::HANGUP : ret += 0; diff --git a/src/video/device.cpp b/src/video/device.cpp index 25070eda66850c10238009b8ba946b337714e2ee..790ee623e5418eebdfff26654877a4b17c4e57d5 100644 --- a/src/video/device.cpp +++ b/src/video/device.cpp @@ -85,7 +85,6 @@ d_ptr(new VideoDevicePrivate(this)) }); chan->d_ptr->m_lValidResolutions = validResolutions; } - Q_UNUSED(cap) } ///Destructor diff --git a/src/video/devicemodel.cpp b/src/video/devicemodel.cpp index ad02599c2b42ff0b3863bde9cd5f6ab2821f6043..17fde4fd013e2321b89baaa53ca1ac390e49a96d 100644 --- a/src/video/devicemodel.cpp +++ b/src/video/devicemodel.cpp @@ -137,7 +137,7 @@ void Video::DeviceModel::setActive(const QModelIndex& idx) emit currentIndexChanged(idx.row()); //If the only renderer is the preview, reload it - if (Video::PreviewManager::instance().isPreviewing() && VideoRendererManager::instance().size() == 1) { + if (Video::PreviewManager::instance().isPreviewing() && ::VideoRendererManager::instance().size() == 1) { Video::PreviewManager::instance().stopPreview(); Video::PreviewManager::instance().startPreview(); } diff --git a/src/video/previewmanager.cpp b/src/video/previewmanager.cpp index b7d373f2ffef1dd2493b31b0ef8eca073f028ea3..a9ada6cf8087f63c44874c2910a611fb2e30b852 100644 --- a/src/video/previewmanager.cpp +++ b/src/video/previewmanager.cpp @@ -29,23 +29,23 @@ Video::PreviewManager& Video::PreviewManager::instance() //Getters bool Video::PreviewManager::isPreviewing() { - return VideoRendererManager::instance().isPreviewing(); + return ::VideoRendererManager::instance().isPreviewing(); } Video::Renderer* Video::PreviewManager::previewRenderer() { - return VideoRendererManager::instance().previewRenderer(); + return ::VideoRendererManager::instance().previewRenderer(); } -Video::PreviewManager::PreviewManager() : QObject(&VideoRendererManager::instance()) +Video::PreviewManager::PreviewManager() : QObject(&::VideoRendererManager::instance()) { - connect(&VideoRendererManager::instance(), &VideoRendererManager::previewStateChanged, [this](bool startStop) { + connect(&::VideoRendererManager::instance(), &::VideoRendererManager::previewStateChanged, [this](bool startStop) { emit previewStateChanged(startStop); }); - connect(&VideoRendererManager::instance(), &VideoRendererManager::previewStarted , [this](Video::Renderer* renderer) { + connect(&::VideoRendererManager::instance(), &::VideoRendererManager::previewStarted , [this](Video::Renderer* renderer) { emit previewStarted(renderer); }); - connect(&VideoRendererManager::instance(), &VideoRendererManager::previewStopped , [this](Video::Renderer* renderer) { + connect(&::VideoRendererManager::instance(), &::VideoRendererManager::previewStopped , [this](Video::Renderer* renderer) { emit previewStopped(renderer); }); } @@ -57,10 +57,10 @@ Video::PreviewManager::~PreviewManager() void Video::PreviewManager::stopPreview() { - return VideoRendererManager::instance().stopPreview(); + return ::VideoRendererManager::instance().stopPreview(); } void Video::PreviewManager::startPreview() { - return VideoRendererManager::instance().startPreview(); + return ::VideoRendererManager::instance().startPreview(); }