mirror of
				https://github.com/ElvishArtisan/rivendell.git
				synced 2025-11-03 23:53:59 +01:00 
			
		
		
		
	* Consolidated the Metadata Wildcard definitions in the 'RDResolveNowNext()' function into the 'RDLogLine::resolveWildcards()' method. * Added 'recordMbId' and 'releaseMbId' fields to the cut XML data schema. * Added '%wm' ['MusicBrainz Recording ID'] and '%wr' ['MusicBrainz Release ID'] metadata wildcards.
		
			
				
	
	
		
			293 lines
		
	
	
		
			8.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			293 lines
		
	
	
		
			8.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
//   rdwavedata.h
 | 
						|
//
 | 
						|
//   A Container Class for Audio Meta Data.
 | 
						|
//
 | 
						|
//   (C) Copyright 2002-2020 Fred Gleason <fredg@paravelsystems.com>
 | 
						|
//
 | 
						|
//   This program is free software; you can redistribute it and/or modify
 | 
						|
//   it under the terms of the GNU Library General Public License 
 | 
						|
//   version 2 as published by the Free Software Foundation.
 | 
						|
//
 | 
						|
//   This program is distributed in the hope that it will be useful,
 | 
						|
//   but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
						|
//   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
						|
//   GNU General Public License for more details.
 | 
						|
//
 | 
						|
//   You should have received a copy of the GNU General Public
 | 
						|
//   License along with this program; if not, write to the Free Software
 | 
						|
//   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 | 
						|
//
 | 
						|
 | 
						|
#ifndef RDWAVEDATA_H
 | 
						|
#define RDWAVEDATA_H
 | 
						|
 | 
						|
#include <qstring.h>
 | 
						|
#include <qstringlist.h>
 | 
						|
#include <qdatetime.h>
 | 
						|
 | 
						|
#include <rdsettings.h>
 | 
						|
 | 
						|
class RDWaveData
 | 
						|
{
 | 
						|
 public:
 | 
						|
  enum EndType {UnknownEnd='N',ColdEnd='C',FadeEnd='F'};
 | 
						|
  enum CartType {AudioType=0,MacroType=1};
 | 
						|
  enum UsageCode {UsageFeature=0,UsageOpen=1,UsageClose=2,UsageTheme=3,
 | 
						|
		  UsageBackground=4,UsagePromo=5,UsageLast=6};
 | 
						|
  RDWaveData();
 | 
						|
  bool metadataFound() const;
 | 
						|
  void setMetadataFound(bool state);
 | 
						|
  unsigned cartNumber() const;
 | 
						|
  void setCartNumber(unsigned cartnum);
 | 
						|
  int cutNumber() const;
 | 
						|
  void setCutNumber(int cutnum);
 | 
						|
  QString cutName() const;
 | 
						|
  void setCutName(const QString &str);
 | 
						|
  CartType cartType() const;
 | 
						|
  void setCartType(CartType type);
 | 
						|
  QString title() const;
 | 
						|
  void setTitle(const QString &str);
 | 
						|
  QString artist() const;
 | 
						|
  void setArtist(const QString &str);
 | 
						|
  QString album() const;
 | 
						|
  void setAlbum(const QString &str);
 | 
						|
  QString conductor() const;
 | 
						|
  void setConductor(const QString &str);
 | 
						|
  QString label() const;
 | 
						|
  void setLabel(const QString &str);
 | 
						|
  int releaseYear() const;
 | 
						|
  void setReleaseYear(int year);
 | 
						|
  QString client() const;
 | 
						|
  void setClient(const QString &str);
 | 
						|
  QString agency() const;
 | 
						|
  void setAgency(const QString &str);
 | 
						|
  QString composer() const;
 | 
						|
  void setComposer(const QString &str);
 | 
						|
  QString publisher() const;
 | 
						|
  void setPublisher(const QString &str);
 | 
						|
  QString songId() const;
 | 
						|
  void setSongId(const QString &str);
 | 
						|
  UsageCode usageCode() const;
 | 
						|
  void setUsageCode(UsageCode code);
 | 
						|
  QStringList schedCodes() const;
 | 
						|
  void setSchedCodes(const QStringList &codes);
 | 
						|
  QString licensingOrganization() const;
 | 
						|
  void setLicensingOrganization(const QString &str);
 | 
						|
  QString copyrightNotice() const;
 | 
						|
  void setCopyrightNotice(const QString &str);
 | 
						|
  QString cutId() const;
 | 
						|
  void setCutId(const QString &str);
 | 
						|
  QString classification() const;
 | 
						|
  void setClassification(const QString &str);
 | 
						|
  QString category() const;
 | 
						|
  void setCategory(const QString &str);
 | 
						|
  QString url() const;
 | 
						|
  void setUrl(const QString &str);
 | 
						|
  QString tagText() const;
 | 
						|
  void setTagText(const QString &str);
 | 
						|
  QString description() const;
 | 
						|
  void setDescription(const QString &str);
 | 
						|
  QString originator() const;
 | 
						|
  void setOriginator(const QString &str);
 | 
						|
  QString originatorReference() const;
 | 
						|
  void setOriginatorReference(const QString &str);
 | 
						|
  QString codingHistory() const;
 | 
						|
  void setCodingHistory(const QString &str);
 | 
						|
  QString userDefined() const;
 | 
						|
  void setUserDefined(const QString &str);
 | 
						|
  QString isrc() const;
 | 
						|
  void setIsrc(const QString &str);
 | 
						|
  QString isci() const;
 | 
						|
  void setIsci(const QString &str);
 | 
						|
  QString recordingMbId() const;
 | 
						|
  void setRecordingMbId(const QString &mbid);
 | 
						|
  QString releaseMbId() const;
 | 
						|
  void setReleaseMbId(const QString &mbid);
 | 
						|
  QString mcn() const;
 | 
						|
  void setMcn(const QString &str);
 | 
						|
  QString outCue() const;
 | 
						|
  void setOutCue(const QString &str);
 | 
						|
  RDWaveData::EndType endType() const;
 | 
						|
  void setEndType(RDWaveData::EndType type);
 | 
						|
  int forcedLength() const;
 | 
						|
  void setForcedLength(int msecs);
 | 
						|
  int averageLength() const;
 | 
						|
  void setAverageLength(int msecs);
 | 
						|
  int lengthDeviation() const;
 | 
						|
  void setLengthDeviation(int msecs);
 | 
						|
  int minimumTalkLength() const;
 | 
						|
  void setMinimumTalkLength(int msecs);
 | 
						|
  int maximumTalkLength() const;
 | 
						|
  void setMaximumTalkLength(int msecs);
 | 
						|
  int averageSegueLength() const;
 | 
						|
  void setAverageSegueLength(int msecs);
 | 
						|
  int averageHookLength() const;
 | 
						|
  void setAverageHookLength(int msecs);
 | 
						|
  int cutQuantity() const;
 | 
						|
  void setCutQuantity(int n);
 | 
						|
  int lastCutPlayed() const;
 | 
						|
  void setLastCutPlayed(int cutnum);
 | 
						|
  QDateTime lastPlayDatetime() const;
 | 
						|
  void setLastPlayDatetime(const QDateTime &dt);
 | 
						|
  int length() const;
 | 
						|
  void setLength(int msecs);
 | 
						|
  bool enforceLength() const;
 | 
						|
  void setEnforceLength(bool state);
 | 
						|
  bool asyncronous() const;
 | 
						|
  void setAsyncronous(bool state);
 | 
						|
  QString owner() const;
 | 
						|
  void setOwner(const QString &str);
 | 
						|
  QDateTime metadataDatetime() const;
 | 
						|
  void setMetadataDatetime(const QDateTime &dt);
 | 
						|
  bool dayOfWeek(int dow) const;
 | 
						|
  void setDayOfWeek(int dow,bool state);
 | 
						|
  int weight() const;
 | 
						|
  void setWeight(int weight);
 | 
						|
  bool evergreen() const;
 | 
						|
  void setEvergreen(bool state);
 | 
						|
  int talkStartPos() const;
 | 
						|
  void setTalkStartPos(int msec);
 | 
						|
  int talkEndPos() const;
 | 
						|
  void setTalkEndPos(int msec);
 | 
						|
  int segueStartPos() const;
 | 
						|
  void setSegueStartPos(int msec);
 | 
						|
  int segueEndPos() const;
 | 
						|
  void setSegueEndPos(int msec);
 | 
						|
  int segueGain() const;
 | 
						|
  void setSegueGain(int lvl);
 | 
						|
  int startPos() const;
 | 
						|
  void setStartPos(int msec);
 | 
						|
  int endPos() const;
 | 
						|
  void setEndPos(int msec);
 | 
						|
  int hookStartPos() const;
 | 
						|
  void setHookStartPos(int msec);
 | 
						|
  int hookEndPos() const;
 | 
						|
  void setHookEndPos(int msec);
 | 
						|
  int fadeUpPos() const;
 | 
						|
  void setFadeUpPos(int msec);
 | 
						|
  int fadeDownPos() const;
 | 
						|
  void setFadeDownPos(int msec);
 | 
						|
  int beatsPerMinute() const;
 | 
						|
  void setBeatsPerMinute(int bpm);
 | 
						|
  QString tmciSongId() const;
 | 
						|
  void setTmciSongId(const QString &str);
 | 
						|
  QDate originationDate() const;
 | 
						|
  void setOriginationDate(const QDate &date);
 | 
						|
  QTime originationTime() const;
 | 
						|
  void setOriginationTime(const QTime &time);
 | 
						|
  QDate startDate() const;
 | 
						|
  void setStartDate(const QDate &date);
 | 
						|
  QTime startTime() const;
 | 
						|
  void setStartTime(const QTime &time);
 | 
						|
  QDateTime startDateTime() const;
 | 
						|
  QDate endDate() const;
 | 
						|
  void setEndDate(const QDate &date);
 | 
						|
  QTime endTime() const;
 | 
						|
  void setEndTime(const QTime &time);
 | 
						|
  QDateTime endDateTime() const;
 | 
						|
  QTime daypartStartTime() const;
 | 
						|
  void setDaypartStartTime(const QTime &time);
 | 
						|
  QTime daypartEndTime() const;
 | 
						|
  void setDaypartEndTime(const QTime &time);
 | 
						|
  unsigned playCounter() const;
 | 
						|
  void setPlayCounter(unsigned count);
 | 
						|
  RDSettings audioSettings() const;
 | 
						|
  void setAudioSettings(const RDSettings &settings);
 | 
						|
  int playGain() const;
 | 
						|
  void setPlayGain(int lvl);
 | 
						|
  bool validateMarkers(int msec=-1);
 | 
						|
  bool validateDateTimes();
 | 
						|
  QString dump() const;
 | 
						|
  void clear();
 | 
						|
  static QString endTypeText(EndType type);
 | 
						|
  static QString cartTypeText(CartType type);
 | 
						|
  static QString usageText(UsageCode code);
 | 
						|
 | 
						|
 private:
 | 
						|
  bool data_metadata_found;
 | 
						|
  bool data_datetime_set;
 | 
						|
  unsigned data_cart_number;
 | 
						|
  CartType data_cart_type;
 | 
						|
  int data_cut_number;
 | 
						|
  QString data_cutname;
 | 
						|
  QString data_title;
 | 
						|
  QString data_artist;
 | 
						|
  QString data_album;
 | 
						|
  QString data_conductor;
 | 
						|
  QString data_song_id;
 | 
						|
  QString data_label;
 | 
						|
  int data_release_year;
 | 
						|
  QString data_client;
 | 
						|
  QString data_agency;
 | 
						|
  QString data_composer;
 | 
						|
  QString data_publisher;
 | 
						|
  UsageCode data_usage_code;
 | 
						|
  QStringList data_sched_codes;
 | 
						|
  QString data_licensing_organization;
 | 
						|
  QString data_copyright_notice;
 | 
						|
  QString data_user_defined;
 | 
						|
  QString data_cut_id;
 | 
						|
  QString data_classification;
 | 
						|
  QString data_category;
 | 
						|
  QString data_url;
 | 
						|
  QString data_tag_text;
 | 
						|
  QString data_description;
 | 
						|
  QString data_originator;
 | 
						|
  QString data_originator_reference;
 | 
						|
  QString data_coding_history;
 | 
						|
  QString data_isrc;
 | 
						|
  QString data_isci;
 | 
						|
  QString data_recording_mbid;
 | 
						|
  QString data_release_mbid;
 | 
						|
  QString data_mcn;
 | 
						|
  QString data_out_cue;
 | 
						|
  EndType data_end_type;
 | 
						|
 | 
						|
  int data_length;
 | 
						|
  int data_forced_length;
 | 
						|
  int data_average_length;
 | 
						|
  int data_length_deviation;
 | 
						|
  int data_minimum_talk_length;
 | 
						|
  int data_maximum_talk_length;
 | 
						|
  int data_average_segue_length;
 | 
						|
  int data_average_hook_length;
 | 
						|
  int data_cut_quantity;
 | 
						|
  int data_last_cut_played;
 | 
						|
  QDateTime data_last_play_datetime;
 | 
						|
  bool data_enforce_length;
 | 
						|
  bool data_asyncronous;
 | 
						|
  QString data_owner;
 | 
						|
  QDateTime data_metadata_datetime;
 | 
						|
 | 
						|
  bool data_evergreen;
 | 
						|
  bool data_day_of_week[7];
 | 
						|
  int data_weight;
 | 
						|
  int data_talk_start_pos;
 | 
						|
  int data_talk_end_pos;
 | 
						|
  int data_segue_start_pos;
 | 
						|
  int data_segue_end_pos;
 | 
						|
  int data_segue_gain;
 | 
						|
  int data_start_pos;
 | 
						|
  int data_end_pos;
 | 
						|
  int data_hook_start_pos;
 | 
						|
  int data_hook_end_pos;
 | 
						|
  int data_fade_up_pos;
 | 
						|
  int data_fade_down_pos;
 | 
						|
  int data_beats_per_minute;
 | 
						|
  QString data_tmci_song_id;
 | 
						|
  QDate data_origination_date;
 | 
						|
  QTime data_origination_time;
 | 
						|
  QDate data_start_date;
 | 
						|
  QTime data_start_time;
 | 
						|
  QDate data_end_date;
 | 
						|
  QTime data_end_time;
 | 
						|
  QTime data_daypart_start_time;
 | 
						|
  QTime data_daypart_end_time;
 | 
						|
  unsigned data_play_counter;
 | 
						|
  RDSettings data_settings;
 | 
						|
  int data_play_gain;
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
#endif  // RDWAVEDATA_H
 |