本文整理汇总了C++中Playlist::setFilename方法的典型用法代码示例。如果您正苦于以下问题:C++ Playlist::setFilename方法的具体用法?C++ Playlist::setFilename怎么用?C++ Playlist::setFilename使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Playlist
的用法示例。
在下文中一共展示了Playlist::setFilename方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: jack_session_callback_impl
void JackAudioDriver::jack_session_callback_impl(jack_session_event_t *event)
{
INFOLOG("jack session callback");
enum session_events{
SAVE_SESSION,
SAVE_AND_QUIT,
SAVE_TEMPLATE
};
Hydrogen* H = Hydrogen::get_instance();
Song* S = H->getSong();
Preferences* P = Preferences::get_instance();
EventQueue* EQ = EventQueue::get_instance();
jack_session_event_t *ev = (jack_session_event_t *) event;
QString jackSessionDirectory = (QString) ev->session_dir;
QString retval = P->getJackSessionApplicationPath() + " --jacksessionid " + ev->client_uuid;
/* Playlist mode */
Playlist* playlist = Playlist::get_instance();
if ( playlist->size() > 0 ) {
if ( playlist->getFilename().isEmpty() ) playlist->setFilename( Filesystem::untitled_playlist_file_name() );
QString FileName = baseName ( playlist->getFilename() );
FileName.replace ( QString(" "), QString("_") );
retval += " -p \"${SESSION_DIR}" + FileName + "\"";
/* Copy all songs to Session Directory and update playlist */
SongReader reader;
for ( uint i = 0; i < playlist->size(); ++i ) {
QString BaseName = baseName( playlist->get( i )->filePath );
QString newName = jackSessionDirectory + BaseName;
QString SongPath = reader.getPath( playlist->get( i )->filePath );
if ( SongPath != NULL && QFile::copy ( SongPath, newName ) ) {
/* Keep only filename on list for relative read */
playlist->get( i )->filePath = BaseName;
// playlist->get( i )->m_hScript;
} else {
/* Note - we leave old path in playlist */
ERRORLOG( "Can't copy " + playlist->get( i )->filePath + " to " + newName );
ev->flags = JackSessionSaveError;
}
}
/* Save updated playlist */
bool relativePaths = Preferences::get_instance()->isPlaylistUsingRelativeFilenames();
if ( Files::savePlaylistPath( jackSessionDirectory + FileName, playlist, relativePaths ) == NULL ) {
ev->flags = JackSessionSaveError;
}
/* Song Mode */
} else {
/* Valid Song is needed */
if ( S->get_filename().isEmpty() ) S->set_filename( Filesystem::untitled_song_file_name() );
QString FileName = baseName ( S->get_filename() );
FileName.replace ( QString(" "), QString("_") );
S->set_filename(jackSessionDirectory + FileName);
/* SongReader will look into SESSION DIR anyway */
retval += " -s \"" + FileName + "\"";
switch (ev->type) {
case JackSessionSave:
EQ->push_event(EVENT_JACK_SESSION, SAVE_SESSION);
break;
case JackSessionSaveAndQuit:
EQ->push_event(EVENT_JACK_SESSION, SAVE_SESSION);
EQ->push_event(EVENT_JACK_SESSION, SAVE_AND_QUIT);
break;
default:
ERRORLOG( "JackSession: Unknown event type" );
ev->flags = JackSessionSaveError;
}
}
ev->command_line = strdup( retval.toUtf8().constData() );
jack_session_reply (m_pClient, ev );
jack_session_event_free (ev);
}