Files
SMScripts/scripting/soundlib_demo.sp
2025-04-15 22:27:20 -04:00

118 lines
2.6 KiB
SourcePawn

// enforce semicolons after each code statement
#pragma semicolon 1
#include <sourcemod>
#include <soundlib>
#define VERSION "0.9"
/*****************************************************************
P L U G I N I N F O
*****************************************************************/
public Plugin:myinfo = {
name = "soundlib test",
author = "Berni",
description = "Plugin by Berni",
version = VERSION,
url = "http://forums.alliedmods.net"
}
/*****************************************************************
G L O B A L V A R S
*****************************************************************/
/*****************************************************************
F O R W A R D P U B L I C S
*****************************************************************/
public OnPluginStart() {
RegAdminCmd("sm_soundinfo", Command_SoundInfo, ADMFLAG_GENERIC);
}
/****************************************************************
C A L L B A C K F U N C T I O N S
****************************************************************/
public Action:Command_SoundInfo(client, args) {
decl String:path[PLATFORM_MAX_PATH];
GetCmdArg(1, path, sizeof(path));
new Handle:soundfile = OpenSoundFile(path);
if (soundfile == INVALID_HANDLE) {
PrintToServer("Invalid handle !");
return Plugin_Handled;
}
decl String:artist[64];
decl String:title[64];
decl String:album[64];
decl String:comment[64];
decl String:genre[64];
GetSoundArtist(soundfile, artist, sizeof(artist));
GetSoundTitle(soundfile, title, sizeof(title));
GetSoundAlbum(soundfile, album, sizeof(album));
GetSoundComment(soundfile, comment, sizeof(comment));
GetSoundGenre(soundfile, genre, sizeof(genre));
ReplyToCommand(client, "Song Info %s", path);
ReplyToCommand(client, "Sound Length: %d", GetSoundLength(soundfile));
ReplyToCommand(client, "Sound Length (float): %f", GetSoundLengthFloat(soundfile));
ReplyToCommand(client, "Birate: %d", GetSoundBitRate(soundfile));
ReplyToCommand(client, "Sampling Rate: %d", GetSoundSamplingRate(soundfile));
ReplyToCommand(client, "Artist: %s", artist);
ReplyToCommand(client, "Title: %s", title);
ReplyToCommand(client, "Num %d", GetSoundNum(soundfile));
ReplyToCommand(client, "Album: %s", album);
ReplyToCommand(client, "Year: %d",GetSoundYear(soundfile));
ReplyToCommand(client, "Comment: %s", comment);
ReplyToCommand(client, "Genre: %s", genre);
CloseHandle(soundfile);
return Plugin_Handled;
}
/*****************************************************************
P L U G I N F U N C T I O N S
*****************************************************************/